Structural testing is a type of software testing which uses the internal design of the software for testing or in other words the software testing which is performed by the team which knows the development phase of the software, is known as structural testing.
Structural testing is basically related to the internal design and implementation of the software i.e. it involves the development team members in the testing team. It basically tests different aspects of the software according to its types. Structural testing is just the opposite of behavioral testing.
Types of Structural Testing:
There are 4 types of Structural Testing:
Control Flow Testing:
Control flow testing is a type of structural testing that uses the programs’s control flow as a model. The entire code, design and structure of the software have to be known for this type of testing. Often this type of testing is used by the developers to test their own code and implementation. This method is used to test the logic of the code so that required result can be obtained.
Data Flow Testing:
It uses the control flow graph to explore the unreasonable things that can happen to data.
The detection of data flow anomalies are based on the associations between values and variables. Without being initialized usage of variables. Initialized variables are not used once.
Slice Based Testing:
It was originally proposed by Weiser and Gallagher for the software maintenance. It is useful for software debugging, software maintenance, program understanding and quantification of functional cohesion. It divides the program into different slices and tests that slice which can majorly affect the entire software.
Mutation Testing is a type of Software Testing that is performed to design new software tests and also evaluate the quality of already existing software tests. Mutation testing is related to modification a program in small ways. It focuses to help the tester develop effective tests or locate weaknesses in the test data used for the program.
Advantages of Structural Testing:
- It provides thorough testing of the software.
- It helps in finding out defects at an early stage.
- It helps in elimination of dead code.
- It is not time consuming as it is mostly automated.
Disadvantages of Structural Testing:
- It requires knowledge of the code to perform test.
- It requires training in the tool used for testing.
- Sometimes it is expensive.
Structural Testing Tools:
- Software Engineering | Differences between Sanity Testing and Smoke Testing
- Software Engineering | Comparison between Regression Testing and Re-Testing
- Difference between Software Testing and Embedded Testing
- Software Testing | Static Testing
- Software Testing | Security Testing
- Software Testing | Portability Testing
- Beta Testing | Software Testing
- Software Testing | Configuration Testing
- Software Testing | Use Case Testing
- Software Testing | Functional Testing
- Software Testing | Penetration Testing
- Unit Testing | Software Testing
- Performance Testing | Software Testing
- Software Testing | Endurance Testing
- Software Testing | Non-functional Testing
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.