Describe software review and formal technical review (FTR).Software reviews works as a filter for the software process. It helps to uncover errors and defects in software. Software reviews enhance the quality of software. Software reviews refine software, including requirements and design models, code, and testing data.
A formal technical review (FTR) is a software quality control activity. In this activity, software developer and other team members are involved. The objectives of an FTR are:
- Uncover the errors.
- Verify that the software under technical review meets its requirements.
- To ensure that the software must follow the predefined standards.
- To make projects more manageable.
The FTR includes walkthroughs and inspections. Each FTR is conducted as a normal meeting. FTR will be successful only if it is properly planned, and executed.
What are the attributes of good test case?The following are the attributes of good test case.
- A good test has a high probability of finding an error. To find the maximum error, the tester and developer should have complete understanding of the software and attempt to check all the conditions that how the software might fail.
- A good test is not redundant. Every test should have a different purpose from other, otherwise tester will repeat the testing process for same condition.
- A good test should be neither too simple nor too complex. In general, each test should be executed separately. If we combine more than one test into one test case, it might be very difficult to execute. Sometimes we can combine tests but it may hide some errors.
Describe cyclomatic complexity with example.Cyclomatic complexity is a software metric that measure the logical strength of the program. It was developed by Thomas J. McCabe. Cyclomatic complexity is calculated by using the control flow graph of the program. In the flow graph, nodes are represented by circle. Areas bounded by edges and nodes are called regions. When counting regions, we also include the area outside the graph as a region.
Complexity is computed in one of three ways:
The total number of regions of the flow graph.
By using the formula defined as:
V(G) = E - N + 2
Cyclomatic complexity, V(G), for a flow graph, G, is also defined as
V(G) = P + 1 ,where P is the number of predicate nodes contained in the flow graph G.
Note: Nodes that contain a condition is called a predicate node and is characterized by two or more edges originating from it.
Find out the Cyclomatic complexity V(G) of the given flow graph.In the above flow graph there are total 9 nodes, 11 edges, and 4 regions.
1. The flow graph has four regions.
2. V(G) = 11 edges- 9 nodes + 2 = 4.
3. V(G) = 3 predicate nodes + 1 = 4.
Describe Condition testing in brief.Condition testing works on logical conditions contained in a program module. A simple condition is a Boolean variable or a relational expression. A relational expression takes the form
Where E1 and E2 are arithmetic expressions and is one of the following: <, ≤, =, ≠ (not equal to), >, or ≥. A compound condition is created by using two or more simple conditions, Boolean operators, and parentheses. Conditional error is generated if Boolean variable, relational operator or Boolean operator is incorrectly used.
The purpose of condition testing is to detect errors in the conditions of a program.
Explain Structure-based testing techniques.- Structure-based testing techniques are also termed as white-box testing techniques.
- These are dynamic techniques.
- They use the internal structure of the software to derive test cases.
- They are usually termed as 'white-box' or 'glass-box' techniques
- They need you to have knowledge of how the software is implemented and how it works.
Explain component testing.- Component testing is also termed as unit, module or program testing.
- It looks for defects in the software and verifies its functioning.
- It can be done in isolation from rest of the system depending on the context of the development life cycle and the system.
- Mostly stubs and drivers are used to replace the missing software and simulate the interface between the software components in a simple manner.
- The stub is called from the software component to be tested while a driver calls a component to be tested.
What are decision tables? Whyy do we use them?- Decision tables are specification-based techniques which are more focused on business logic or business rules.
- A decision table is useful in dealing with combinations of things like inputs.
- This technique is sometimes also called as 'cause-effect' table as there exists an associated logic diagramming technique called 'cause-effect graphing' which is at times used to help derive the decision table.
- The techniques of equivalence partitioning and boundary value analysis are usually applied to specific situations or inputs.
Explain exploratory testing.- In exploratory testing approach testers are involved in minimum planning and maximum test execution.
- The planning includes creation of a test charter, a short declaration of the scope of a short time-boxed test effort, the objectives and possible approaches to be used.
- The test design and test execution are performed parallelly without any formal documentation of test conditions, test cases or test scripts. However, this does not imply that other more formal testing techniques will not be used.
Differentiate between re-testing and regression testingRegressions Testing:
- It means testing new bugfixes to ensure that they don’t cause problems to occur involving problems fixed earlier.
- The process here involves running a suite of tests.
- It means testing a single defect that was just fixed. Only one test is performed here.
- The target is to ensure that the defect that was just fixed was actually fixed properly.