1. Define software testing?
Software testing is a critical
element of software quality assurance and represents the ultimate review of
specification, design, and coding.
2. What are the objectives of testing?
i. Testing is a process of
executing a program with the intend of finding an error.
ii. A good test case is one that
has high probability of finding an undiscovered error.
iii. A successful test is one that
uncovers as an-yet undiscovered error.
3. What are the testing principles the software engineer
must apply while performing the software testing?
i. All tests should be traceable to
customer requirements.
ii. Tests should be planned long
before testing begins.
iii. The pareto principle can be
applied to software testing-80% of all errors uncovered during testing will
likely be traceable to 20% of all program modules.
iv. Testing should begin “in the
small” and progress toward testing “in the large”. v. Exhaustive testing is not
possible.
vi. To be most effective, an
independent third party should conduct testing.
4. What are the two levels of testing?
i. Component testing - Individual
components are tested. Tests are derived from developer’s experience.
ii. System Testing - The group of
components are integrated to create a system or sub-system is done. These tests
are based on the system specification.
5. What are the various testing activities?
i. Test planning
ii. Test case design
iii. Test execution
iv. Data collection
v. Effective evaluation
6. Write short note on black box testing.
The black box testing is also
called as behavioral testing. This method fully focus on the functional requirements of the software. Tests are derived that fully exercise all functional requirements.
7. What is equivalence partitioning?
Equivalence partitioning is a black
box technique that divides the input domain into classes of data. From this
data test cases can be derived. Equivalence class represents a set of valid or
invalid states for input conditions.
8. What is a boundary value analysis?
A boundary value analysis is a
testing technique in which the elements at the edge of the domain are selected
and tested. It is a test case design technique that complements equivalence
partitioning technique.
9. What are the reasons behind to perform white box testing?
There are three main reasons behind
performing the white box testing.
1. Programmers may
have some incorrect assumptions while designing or implementing some functions.
2. Certain assumptions on flow of control and
data may lead programmer to make design errors. To uncover the errors on
logical path, white box testing is must.
3. There may be
certain typographical errors that remain undetected even after syntax and type
checking mechanisms. Such errors can be uncovered during white box testing.
10. What is cyclomatic complexity?
Cyclomatic complexity is software
metric that gives the quantitative Measure of logical complexity of the program.
11. How to compute the cyclomatic complexity?
The cyclomatic complexity can be
computed by any one of the following ways.
1.
The numbers of regions of the flow graph correspond to the cyclomatic
complexity.
2.
Cyclomatic complexity (G), for the flow graph G, is defined as: V(G)=E-N+2, E
-- number of flow graph edges, N -- number of flow graph nodes
3. V(G) = P+1
Where P is the number of predicate nodes contained in the flow graph.
12. Distinguish between verification and validation.
Verification refers to the set of
activities that ensure that software correctly implements a specific function.Validation refers to a different
set of activities that ensure that the software that has been built is
traceable to the customer requirements.
13. What are the various testing strategies for conventional
software?
i. Unit testing
ii. Integration testing.
iii. Validation testing.
iv. System testing.
14. Write about drivers and stubs.
Drivers and stub software need to
be developed to test incompatible software.The “driver” is a program that accepts the test data and
prints the relevant results.The “stub” is a subprogram that uses the module interfaces
and performs the minimal data manipulation if required.
15. What are the approaches of integration testing?
The integration testing can be
carried out using two approaches.
1. The non-incremental testing.
2. Incremental testing.
16. What are the advantages and disadvantages of big-bang?
Advantage:
This approach is
simple.
Disadvantages:
It is hard to
debug.
It is not easy to
isolate errors while testing.
In this approach
it is not easy to validate test results.
17. What are the benefits of smoke testing?
* Integration risk is minimized.
* The quality of the end-product is
improved.
* Error diagnosis and correction
are simplified.
* Assessment of program is easy.
18. What are the conditions exists after performing
validation testing?
* The function or performance
characteristics are according to the specifications and are accepted.
* The requirement specifications
are derived and the deficiency list is created.
19. Distinguish between alpha and beta testing
Alpha and beta testing are the
types of acceptance testing.
Alpha
test : The alpha testing is attesting in which the version of complete
software is tested by the customer under the supervision of developer. This
testing is performed at developer’s site.
Beta
test : The beta testing is a testing in which the version of the software
is tested by the customer without the developer being present. This testing is
performed at customer’s site.
20. What are the various types of system testing?
1. Recovery testing – is intended
to check the system’s ability to recover from failures.
2. Security testing – verifies that
system protection mechanism prevent improper penetration or data
alteration.
3. Stress testing – Determines
break point of a system to establish maximum service level.
4.Performance testing – evaluates
the run time performance of the software, especially
real-time software.
21. Define debugging.
Debugging is defined as the process
of removal of defect. It occurs as a consequence of successful testing.
22. What are the common approaches in debugging?
Brute force method:
The memory dumps and run-time tracks are
examined and program with write statements is loaded to obtain clues to error
causes.
Back tracking method:
The source code is
examined by looking backwards from symptom to potential causes of errors.
Cause elimination method:
This method uses
binary partitioning to reduce the number of locations where errors can exists
23. What is meant by structural testing?
In structural testing derivation of
test cases is according to program structure. Hence knowledge of the program is
used to identify additional test cases.
24. What is meant by regression testing?
Regression
testing is used to check for defects propagated to other modules by changes
made to existing program. Thus, regression testing is used to reduce the side
effects of the changes. 25. What is meant by unit testing?
The
unit testing focuses verification effort on the smallest unit of software
design, the software component or module.
No comments:
Post a Comment