Different Types of Testing
•Static V/s Dynamic Testing
• Development V/s Independent Testing
• Black v/s White box Testing
• Automated v/s Manual
• Sanity, smoke & Acceptance Testing
• Regression Testing
• Exploratory and Monkey Testing
• Debugging v/s Bugging
Dynamic V/s Static testing
Dynamic testing is the testing that involves testing, running and using the software whereas
Static testing is testing something that’s not running i.e. examining and reviewing it.
For example: Inspecting a car without running is the static testing while test driving a car is the dynamic testing.
For example: Inspecting a car without running is the static testing while test driving a car is the dynamic testing.
Dynamic testing-When we run the Software.
Static testing-When system is not running.
Development V/s Independent Testing
Development Testing denotes the aspect the aspects of test design and implementation most appropriate for the team developers to undertake. In most cases test execution initially occurs with the developer testing group who designed and implemented the test, but it is a good practice for the developer to create their tests in such a way so as to make them available to independent testing groups for execution.
Independent testing denotes the test design and implementation most appropriately performed by someone who is independent from the team of developers. In most cases test execution initially occurs with the independent testing group that design and implement the test, but the independent tester should create their testes to make them available to the developer testing groups for execution.
Development Testing denotes the aspect the aspects of test design and implementation most appropriate for the team developers to undertake. In most cases test execution initially occurs with the developer testing group who designed and implemented the test, but it is a good practice for the developer to create their tests in such a way so as to make them available to independent testing groups for execution.
Independent testing denotes the test design and implementation most appropriately performed by someone who is independent from the team of developers. In most cases test execution initially occurs with the independent testing group that design and implement the test, but the independent tester should create their testes to make them available to the developer testing groups for execution.
Development testing - In which developer himself test the software.
Independent Testing-Group of people and they are concerned with the development part.
Black Box Vs White Box Testing
Black box testing also knows as Behavioral testing is a software testing technique in which the internal workings of the item being tested are not known to tester.
For example, When black box testing is applied to software engineering, the tester would only know the “legal “inputs and what the expected outputs should be, but not how the program actually arrives at those outputs. It is because of this, black box testing can be considered as the testing with respects to the specifications, and no other knowledge of program is necessary.
Black box testing attempts to finds errors in the following categories:-
- Incorrect or missing functions.
- Interface errors.
- Errors in data structures or external database access.
- Initialization and termination errors.
Black box testing treats the software as a "black box"—without any knowledge of internal implementation. Black box testing methods include:
Equivalence Partitioning
Boundary Value Analysis
All-Pairs Testing
Fuzz Testing
Model-Based Testing
Traceability Matrix
Exploratory Testing
Specification-Based Testing.
Equivalence Partitioning
Boundary Value Analysis
All-Pairs Testing
Fuzz Testing
Model-Based Testing
Traceability Matrix
Exploratory Testing
Specification-Based Testing.
White box testing
White box testing is when the tester has access to the internal data structures and algorithms including the code that implement these.
Types of white box testing
The following types of white box testing exist:
· API testing (application programming interface) - testing of the application using public and private APIs
· Code coverage - creating tests to satisfy some criteria of code coverage (e.g., the test designer can create tests to cause all statements in the program to be executed at least once)
· Fault injection methods - improving the coverage of a test by introducing faults to test code paths
· Mutation testing methods
· Static testing - White box testing includes all static testing
Test coverage
White box testing methods can also be used to evaluate the completeness of a test suite that was created with black box testing methods. This allows the software team to examine parts of a system that are rarely tested and ensures that the most important function points have been tested.
Two common forms of code coverage are:
· Function coverage, which reports on functions executed
· Statement coverage, which reports on the number of lines executed to complete the test
They both return code coverage metric, measured as a percentage.
Testing levels
Unit testing
Integration testing
System integration testing
Regression testing
Acceptance testing
Alpha testing
Beta testing
Regression testing
Regression means testing “again n again”.
Regression testing focuses on finding defects after a major code change has occurred. Specifically, it seeks to uncover software regressions, or old bugs that have come back
Links to other posts