A test design technique basically helps us to select a good set of tests from the total number of all possible tests for a given system. There are many different types of software testing technique, each with its own strengths and weaknesses. Each individual technique is good at finding particular types of defect and relatively poor at finding other types. [Read more…]
Test analysis: identifying test conditions
- Test analysis is the process of looking at something that can be used to derive test information. This basis for the tests is called the test basis. [Read more…]
How to choose that which technique is best? This is the wrong question!
Each technique is good in its own way in finding out the certain kind of defect, and not as good for finding out the other kind of defects. For example, one of the benefits of structure-based techniques is that they can find out the defects or things in the code that aren’t supposed to be there, such as ‘Trojan horses’ or other malicious code.
However, if there are parts of the specification that are missing from the code, only specification-based techniques will find that, structure-based techniques can only test what is there. [Read more…]
Condition Coverage in testing is closely related to decision coverage but has better sensitivity to the control flow.
- However, full condition coverage does not guarantee full decision coverage.
- Condition coverage reports the true or false outcome of each condition.
- Condition coverage measures the conditions independently of each other.
Other control-flow code-coverage measures include linear code sequence and jump (LCSAJ) coverage, multiple condition coverage (also known as condition combination coverage) and condition determination coverage (also known as multiple condition decision coverage or modified condition decision coverage, MCDC). This technique requires the coverage of all conditions that can affect or determine the decision outcome.
Branch coverage is also known as Decision coverage or all-edges coverage. It covers both the true and false conditions unlikely the statement coverage.
- A branch is the outcome of a decision, so branch coverage simply measures which decision outcomes have been tested. This sounds great because it takes a more in-depth view of the source code than simple statement coverage
- A decision is an IF statement, a loop control statement (e.g. DO-WHILE or REPEAT-UNTIL), or a CASE statement, where there are two or more outcomes from the statement. With an IF statement, the exit can either be TRUE or FALSE, depending on the value of the logical condition that comes after IF.
The statement coverage is also known as line coverage or segment coverage. The statement coverage covers only the true conditions.
- Through statement coverage we can identify the statements executed and where the code is not executed because of blockage.
- In this process each and every line of code needs to be checked and executed
There are many types of test coverage. Test coverage can be used in any level of the testing. Test coverage can be measured based on a number of different structural elements in a system or component. Coverage can be measured at component testing level, integration-testing level or at system- or acceptance-testing levels. [Read more…]
Coverage measurement of code is best done by using tools and there are a number of such tools on the market. These tools can help in:
- Increasing the quality and productivity of testing.
- Increasing quality by ensuring that more structural aspects are tested, so defects on those structural paths can be found.
- Increasing productivity and efficiency by highlighting tests that may be redundant, i.e. testing the same structure with different data (as there is possibility of finding the defects by testing the same structure with different data).
- To know whether we have enough testing in place
- To maintain the test quality over the life cycle of a project
- To know how well our tests actually test our code
The answer of the question is that test coverage can be used in any level of the testing. Test coverage can be measured based on a number of different structural elements in a system or component. [Read more…]