White Box Testing: Testing With A View Of The Software CodeAny time new software is developed, it needs to go through software testing process to determine is it is error free and ready to be marketed. There are different types of tests performed to determine the quality and functionality of software. Software testing engineers use black box testing and white box testing. Each of these tests have their own separate purpose, with black box testing being used for the exterior phase of the software and white box testing for the interior. White box testing consists of synonyms known as structural testing, clear box testing, glass box testing and open box testing. The engineer must have explicit knowledge of how the internal software works in order to select the test data and know which tests to perform. White box testing is different than black box testing in that the usage and familiarity of programming codes to examine the outputs is used. The test can only be accurate if the software testing engineer knows how the program should work. Only then can he determine if the program is doing something that it shouldn't be doing. It will only successfully work if all visible codes can be read. If any part of the test was omitted, the test cannot be successful. White box testing involves a few different types of software tests such as unit testing, static and dynamic analysis, statement coverage, branch coverage, security testing and mutation testing, with each test having its own purpose. Unit testing involves the testing of each individual unit one at a time. The uniting testing phase usually comes at the beginning of the development, as each unit is complete. This is often used with scaffolding software, which is developed by the implementation team that initiated the software. One unit may need to be built and tested before the next one is tested. Static and dynamic analysis involves first reading the code to see if it is defective in any way and then running the code to determine the final output. Statement coverage is when every code is run consecutively so every statement of the application is executed, and to make sure they are executed in the manner designed with no side effects. Branch coverage allows the engineer to see if the codes all continue to function correctly when they are branched out away from each other. For the software to run correctly, the application cannot be written in one continuous code, so the coverage moniters if there are any changes in functionality when the code begins to branch off separately. Security testing is done to determine if the software has good security from outside sources such as hackers and crackers. A highly qualified technician can only perform this test. When a bug is found within a code, the code needs to be changed or modified to eliminate the bug. The mutation test will help to determine which code was modified and which code can be help the application function more effectively. |