Fullnotes For Software Testing
Fullnotes For Software Testing
Planning
The purpose of the planning is to come up with a schedule, the scope, and resource
requirements for a release. A plan explains how the requirements will be met and by which
time. The planning phase is applicable for both development and testing activities. At the end
of this phase, both project plan and test plan documents are delivered.
Design
The purpose of the design phase is to figure out how to satisfy the requirements
enumerated in the system Requirements Specification document. The design phase produces a
representation that will be used by the following phase, the development phase. This
Unit – I Software Testing
representation should serve two purposes. First, from this representation, it should be possible
to verify that all the requirements are satisfied.
Development or coding
This development or coding phase comprises coding the programs in the chosen
programming language.
Testing
Testing is the process of exercising the software product in pre – defined ways to check
if the behavior is the same as expected behavior. By testing the product, an organization
identifies and removes as many defects as possible before shipping it out.
Once a product is tested, it is given to the customers who deploy it in their environments.
As the users start using the product in their environments, they may observe discrepancies
between the actual behavior of the product and what they were given to expect (either
discrepancies could end up as product defects, which need to be corrected). Maintenance is
made up of corrective maintenance (for example, fixing customer – reported problems),
adaptive maintenance (for example, making the software run on a new version of an operating
system or database), and preventive maintenance (for example, changing the application
program code to avoid a potential security hole in an operating system code).
Page 2 of 86
Unit – I Software Testing
Page 3 of 86
Unit – I Software Testing
Tasks or steps that need to be carried out in that phase along with
measurements that characterize the tasks.
Verification, which specifies methods of checking that the tasks have been
carried out correctly.
Exit criteria, which stipulate the conditions under which one can consider the
phase as done. Also included are the outputs for only the phase.
Page 4 of 86
Unit – I Software Testing
Overall business
requirements.
Software
requirements
Planning
High-level design
Low-level design
coding
Testing
Page 5 of 86
Unit – I Software Testing
Page 6 of 86
Unit – I Software Testing
This model enables incremental development which the product evolves, with
requirements getting added to it dynamically.
Page 7 of 86
Unit – I Software Testing
Testing
Page 8 of 86
Unit – I Software Testing
This is the basis for v model, which presents excellent advantages for verification and
validation. As shown in above figure. Along with the actual activities and retain the test
execution downstream, after the product is built.
Page 9 of 86
Unit – I Software Testing
Component
testing
Integration
testing Entry
System criteria
testing
Acceptance
testing
Exit criteria
They have been introduced just to denote that integration testing can start after two
components have been completed, and when all components are integrated and tested, the
next phase of testing that is, system testing can start.
Page 10 of 86
Unit – I Software Testing
Page 11 of 86
Unit – I Software Testing
1. STATIC TESTING
Static testing is a type which requires only the source code of the product, not the binaries
or executable.
The code works according to the functional requirement;
The code has been written in accordance with the design developed earlier in the
project life cycle;
The code for any functionality has been missed out;
The code handles error properly.
Static testing can be done by humans or with the help of specialized tools.
Page 12 of 86
Unit – I Software Testing
Desk checking
Normally done manually by the author, of the code, desk checking is a method to verify the
portions of the code for correctness. Such ,verification is done by comparing the code with the
design or specifications to make sure that the code does what it is supposed to do and
effectively. Whenever errors are found, the author applies the corrections for errors pm the
spot.
1. A developer is not the person to detect problems in his or her own code.
2. Developers generally prefer to write new code rather than do any, form of testing1!
3. This method is essentially person-dependent and thus may not work consistently across
all developers.
Code walkthrough
This methods and formal inspection(described in the nest section) are group-oriented
methods. In walkthrough, set of people look at the program code, and raise the questions for
the author.
Formal inspection
Code inspection-also called Fagan inspection (named after the original formulator)-is a
method, normally with high degree of formalism. The focus of this method is to detect all
faults, violations and other side-effects.
1. Demanding thorough preparation before an inspection/review;
2. Enlisting multiple diverse views;
3. Assigning specific roles to the multiple participants; and
4. Going sequentially through the code in a structured manner.
Page 13 of 86
Unit – I Software Testing
2. STRUCTURAL TESTING:
Structural testing takes into account the code, code structure, internal design, and
how they are coded. The fundamental difference between structural testing and static testing Is
that in structural testing tests are actually run by the computer on built product, whereas in
static testing, the product is tested by humans using the source code and not the executables
or binaries.
Structural testing can be further classified into unit/code functional testing, code
coverage, and code complexity testing.
Page 14 of 86
Unit – I Software Testing
1. Initially, the developer can perform certain obvious tests, knowing the input
variables and the corresponding expected output variables. By repeating these tests
for multiple values of input variables, the confidence level of the developer to go to
the next level increases.
2. For modules with complex logic or conditions, the developer can build a “debug
version” of the product.
3. Another approach to do the initial test is to run the product under a debugger or an
Integrated Development Environment (IDE).
1. Statement coverage.
2. Path coverage.
3. Condition coverage.
4. Function coverage.
Statement coverage:
Program constructs in the conventional programming language can be
classified as
Page 15 of 86
Unit – I Software Testing
Path coverage
In path coverage we split a program into a number of distinct paths. A program can start
from the beginning and take any of the paths to completion.
A
B-D-G
B-C-E-H
B-C-F-G
B-C-F-H
Condition coverage
In the above example even if we have covered all the paths possible it would not mean
that the program is fully tested.
Function coverage
This is a new addition to structural testing to identify how many program functions are
covered by test cases.
1. Functions are easier to identify in a program and hence it is easier to write test cases
to provide function coverage.
2. It function to achieve 100% function coverage than 100% coverage in any of the
earlier methods
3. Functions have a more logical mapping to requirements
4. Since functions are a means of realizing the importance of functions can be prioritized
based on the importance of the requirements they realize.
5. Functions coverage provides a natural transition to black box testing
Thus function coverage can help in improving the performance as well as quality of the product.
Page 16 of 86
Unit – I Software Testing
In previous sections we saw the different types of coverage that can be provided to test a
program.
1. Identify the predicates or decision points. (Boolean conditions and conditional statements)
2. Ensure that the predicates are simple
3. Combine all sequential statements into a single node
4. A simple predicate as simplified in (2) above edges emanating from this one node
5. The edges terminate at some node.
-- x - -
Page 17 of 86
Unit – II Software Testing
UNIT – II
2. BLACK-BOX TESTING
2.1 WHAT IS BLACK-BOX TESTING?
Black Box testing is done from customer’s view point.
The text engineer gives a set of inputs and expects outputs and is unaware of how those
inputs are transformed into outputs by the software.
Black box testing convenient to administer because they use the complete finished
product and do not require any knowledge of its construction.
Independent test laboratories can administer black box tests to ensure functionality and
compatibility.
These testing require a functional knowledge of the product to be tested.
Page 18 of 86
Unit – II Software Testing
Test scenarios and data are prepare the test construction phase of the test life cycle, the
software is design phase.
Once the code is ready for delivered for testing, test execute can be done.
All the test scenarios develop the construction phase are executed
Requirement based testing deals with the validating the requirements given in the
software requirements specification (SRS).
All explicit and implicit requirements are collected as ”test requirements specification”
(TRS)
Page 19 of 86
Unit – II Software Testing
Page 20 of 86
Unit – II Software Testing
Use key
123-456 to
Only key number 123-456
Lock Lock-
BR-03 can be used to lock and H Component
Use key 003
unlock
123-456 to
Unlock
The test conditions column lists the different ways of testing the requirements.
The test cases IDs column can used to complete the mapping between test cases and
requirements.
The following combinations are possible between the requirements and test cases.
-One to one
-One to many
-Many to one
-Many to many
-One to none
Page 21 of 86
Unit – II Software Testing
The requirement traceability matrix provides a various test metrics. They are
Requirements addressed priority wise
Number of test cases requirements.
Total number of test cases prepared
Once the test cases are executed, the results in metrics are
Total number of test cases passed.
Total number of test cases failed.
Total number of defects in requirements.
Number of requirements completed.
Number of requirements pending
Page 22 of 86
Unit – II Software Testing
Case: 2 after inserting two buffers and still having free buffers
Case: 4 no free buffers and new buffer coming in. first needs freeing
Page 23 of 86
Unit – II Software Testing
Internal data structures like arrays, stacks and queues need to be checked for boundary
or limit conditions; when they are linked lists used as internal structures, the behavior of the list
at the beginning and end have to be tested thoroughly.
Boundary values and decision tables help identify the test cases that are most likely to
uncover defects. A generalization of both these concepts is the concept of equivalence classes.
A decision table lists the various decision variables, the conditions assumed by each of decision
variables. Let us take a simple example of calculation of standard deduction on taxable income.
The example is meant to illustrate the use of decision tables and not to be construed as tax
advice or a realistic tax scenario in any specific country.
1. The first factor that determines the standard deduction in the filing status. The basic
standard deduction for the various filling status are
Single $4,750
Married, filling a joint return $9,500
Married, filling a separate return $7,000
2. If a married couple is filling separate returns and one spouse is not taking standard
deduction, the other spouse also is not eligible for standard deduction.
3. An additional $1000 is allowed as standard deduction. If either the filer is 65 years or
older or the spouse is 65 years or older cable when the filling status is “Married” and
filling “joint”.
4. An additional $1000 is allowed as standard deduction. If either the filer is blind or
the spouse is blind.
From the above description, it is clear that the calculation of a standard deduction depends
on the following factors.
Page 24 of 86
Unit – II Software Testing
Page 25 of 86
Unit – II Software Testing
The set of input value generate one single expected output is called a partition. When
the behavior of the software is the same for set values, then the set is termed as an
equivalence class or a partition.
A Life insurance company has basic premium of $0.50 for all ages. Based on the age group
, an additional monthly premium has to be paid.
AGE GROUP ADDITIONAL PREMIUM
Under 35 $1.65
35-59 $2.87
60+ 0$6.00
Based on the equivalence partitioning technique, the equivalence partitions that based on age
are given below.
Below 35 years of age. (valid input)
Between 35 and 59 years of age(valid input)
Above 60 years of age(valid input)
Negative age. (invalid)
Age as any three-digit number. (valid)
Age as 0. (invalid)
2.4.6 State based testing:
Page 26 of 86
Unit – II Software Testing
+ or
1 2 3 4 5
Digit digit
Decimal point
blank blank
digit 6
It covers all manuals, user guides, installation guides, setup guides, read me file and
online help provide with a software help.
User documentation testing has two objectives.
To check if what is stated in document available in the product.
To check if what there in the product is explain correctly in the document.
Some benefits of user documentation testing are,
Page 27 of 86
Unit – II Software Testing
It is highlighting problems.
Ensures consistency of documentation and product.
Results in less difficult support calls.
New programmers and testers documentation to learn external functionality.
Customers need less training.
2.4.9 Domain testing:
Black box testing perform test without looking at the program code but looking at the
specification.
Domain testing can be consider as the next level of testing.
Thus the domain testing can be consider as an extension of black box testing.
The test engineers performing this type of testing are selected because have a in-depth
knowledge of the business domain.
WHITE-BOX
TESTING
BLACK-BOX
TESTING
DOMAIN
TESTING
Page 28 of 86
Unit – II Software Testing
Domain testing is ability to design and execute test cases relate to people who will buy
and use the software. It helps in understanding the problems they are trying to solve and the
ways in which they are using the software to solve them. If a tester does not understand the
system or the business processes, it would be very difficult for him or her to use, let alone test,
the application without the aid of test scripts and cases. Domain testing exploits the tester’s
domain knowledge to test the suitability of the product to what the users do on a typical day.
2. INTEGRATION TESTING
Testing that interact between module and other system.
It defines as the set of integrations among components.
This test is a both type of testing and phase of testing.
Component 1
Page 29 of 86
Unit – II Software Testing
Component 1
Page 30 of 86
Unit – II Software Testing
4 1-2-5
5 1-3-6
6 1-3-6-(3-7)
7 (1-2-5)-(1-3-6-(3-7))
8 1-4-8
9 (1-2-5)-(1-3-6-(3-7))-(1-4-8)
Component 8
Page 31 of 86
Unit – II Software Testing
One difference between top down and bottom up integration is the arrows are two-way
arrows. The arrows from top to bottom indicate interaction or control flow. The arrows from bottom to
top indicate integration approach or integration path.
Page 32 of 86
Unit – II Software Testing
Bi-directional integration
Component 1
The connectivity is stubs and drivers. Drivers are used to provide upstream connectivity,
Stubs provide downstream connectivity.
This approach is also called as “sandwich integration”.
An area where this approach comes in handy is when migrating from a two-tier to a
three-tier environment.
Page 33 of 86
Unit – II Software Testing
Page 34 of 86
Unit – II Software Testing
Story line: It develops a story line combine of various activities of product by an end
user.
Life cycle: Consider an object of different transition that happen to the object.
Deployment stories from customer: Develop a scenario from customer deployment
details and create a set of activities by various users in implementation.
Business verticals: It likes a pharmaceuticals, software houses and government
organization.
Battle ground: Effective scenarios will have a combination of current customer
implementation.
Page 35 of 86
Unit – II Software Testing
QUERY
CASH RESPONSE
Page 36 of 86
Unit – II Software Testing
-- x - -
Page 37 of 86
Unit – III Software Testing
UNIT – III
SYSTEM AND ACCEPTANCE TESTING
2. Scalability testing :That requires enormous amount of resource of to find out the
maximum capability of system parameters.
4. Stress testing: Evaluate a system beyond the limits of the specified requirements or
system resources (such as disk space, memory processor, utilization) to ensure the
system does not break down unexpectedly.
Page 38 of 86
Unit – III Software Testing
5. Interoperability testing: This testing is done to ensure that to or more products can
exchange information, use the information and work closely.
6. Localization testing: Testing conducted to verify that the localized product works in
different language.
The definition of system testing keep changing covering wider and more high-level aspects
depending on the context. Global perspective
Test phase
System testing is performed on the basis of the return test cases according to
information collected from details architectural/design documents, module specifications, and
system requirements, specifications, system test cases are created after looking at component
and integration test cases and are also at the same time designed to include the functionality
that tests the system together.
Page 39 of 86
Unit – III Software Testing
The system testing phase helps in switching focus of the product development team
towards customers and their use of the product. System testing is done for the following
reasons.
1. Provide independent perspective in testing
2. Bring in customer perspective in testing
3. Provide a “fresh” pair of eyes” to discover defect not found earlier by testing
4. Test product behavior in a holistic, complete and realistic environment
5. Test both functional and non-functional, aspects of the product
6. Build confidence in the product
7. Analysed and reduce the risk of releasing of the product
8. Ensure all requirements are met and ready the product for acceptance testing
Page 40 of 86
Unit – III Software Testing
Page 41 of 86
Unit – III Software Testing
There are multiple ways system functional testing is performed. There are also many
ways product level test cases derived for functional testing. Some of the common techniques
are given below
1. Design/architecture verification.
2. Business vertical testing
3. Development testing
4. Beta testing
5. Certification, standards, and testing for compliance
Page 42 of 86
Unit – III Software Testing
Page 43 of 86
Unit – III Software Testing
2. Not all the customer in the list need to agree to the start date and end date of the beta
program,
3. Sending some documents for reading in advance and training the customer on product
usage
4. “beta testing entry criteria” the customer and the product development groups of the
vendor together prepare seta of entry/exit criteria for beta testing
5. Sending the beta product to the customer and enable them to carry out their own
testing
6. Collecting the feedback periodically from the customers and prioritizing the defects for
fixing
7. Responding to customer feedback with product fixes or documentation changers and
closing
8. Analyzing and concluding whether the beta program met the exit criteria
9. Communicate the progress and action items to customer and formally closing the beta
program
10. Incorporating the appropriate changes in the product
Page 44 of 86
Unit – III Software Testing
OFAC and patriot act this act requires the transaction of the banking applications be
audited for misuse of funds for terrorism
Page 45 of 86
Unit – III Software Testing
The following are some examples of basic assumptions that can be made about resources
and configuration.
1. The CPU can be fully utilized as long as it can freed
2. The available memory can be completely used by product as long as the memory
relinquished
3. The cost adding cup or memory is not that expensive as it was earlier
4. More disk space or the complete i/o band width can be used for the product as long as
they are available
5. The customer gets the maximum return on investment(ROI)only if the resources such as
cpu , disk, memory and network are optimally used
Page 46 of 86
Unit – III Software Testing
Page 47 of 86
Unit – III Software Testing
Failure rate
Stress point
\The following guidelines can be used to select the tests for stress testing.
1. Repetitive tests
Executing repeated tests ensures that all times the code works as expected.
There are some operations that are repeatedly executed by the customer.
2. Concurrency
Concurrent tests ensure that the code is exercised in multiple paths and
simultaneously. The operations that are used by multiple users are selected and
performed concurrently for stress testing.
3. Magnitude
This refers to the amount to lead to be applied to the product to stress the
system. It can be a single operation being executed for a large volume of users or mix of
operations distributed over different users.
Page 48 of 86
Unit – III Software Testing
4. Random variation
As explained earlier, stress testing depends on increase/decrease variable load.
Tests that stress the system with random inputs at random instances and random
magnitude are selected and executed as part of stress testing.
Page 49 of 86
Unit – III Software Testing
Page 50 of 86
Unit – IV Software Testing
UNIT-IV
PERFORMANCE TESTING
4.1 INTRODUCTION
The testing performed to evaluate the response time, throughput, and utilization of the
system, to execute its required functions in compared with different versions of the same
product or a different competitive product is called performance testing.
throughput
Saturation point
user load
Page 51 of 86
Unit – IV Software Testing
A3
Page 52 of 86
Unit – IV Software Testing
Page 53 of 86
Unit – IV Software Testing
Page 54 of 86
Unit – IV Software Testing
Page 55 of 86
Unit – IV Software Testing
3.) Removing the noise and re-plotting and re-calculating the mean and standard
division.
4.) In terms of catching and other technologies implemented in the product, the
data coming from the cache need to be differentiated from the data that get
processed by the product and presented.
5.) Differentiating the performance data when the resource is available completely
as against when some background activities were going on.
The process of removing some unwanted values in a set is called noise removal. The
majority of the sever-client, internet and database application store the data in a local high
speed buffer. Once the data sets organized the analysis performance data is carried out to
conclude the following,
1.) Whether performance of the product is consist when tests are executed multiple
times.
2.) What performance can be expected for what type of configuration resource
3.) What parameters impact performance and how they can be used to derive
better performance
4.) What is the effect scenarios involving several mix of operations for the
performance factors
5.) What is the effect of product technologies such as caching on performance
improvement
6.) Up to what load are the performance numbers acceptable and whether
performance of the product meets the criteria of “graceful degradation.”
7.) What is the optimum throughput/response time of the product for a set of
factors such as load, resource, and parameters
8.) What performance requirement are met and how the performance looks when
compared to the previous version or the expectation set earlier or the
competition
9.) Sometime high-end configuration may not be available for performance testing.
Page 56 of 86
Unit – IV Software Testing
Page 57 of 86
Unit – IV Software Testing
Minimum required configuration denotes that with anything less than this configuration
,the product may not even work .a typical configuration denotes the under that configuration
the product will work fine for meeting the performance require ments .a special configuration
denotes that capacity planning was done considering all future requirements.
There are two techniques that play a major role in capacity planning .they are load
balancing and high availability .load balancing ensures that the multiple machines available are
used equally to service the transactions this ensures that by adding more machines ,more load
can be handled by the product.
Page 58 of 86
Unit – IV Software Testing
Page 59 of 86
Unit – IV Software Testing
4.6 CHALLENGES
Performance testing is not a very well understood topic in the testing community. The
availability of skills is a major problem facing performance testing .as discussed at several places
of this chapter, product knowledge, knowledge of competition, tools usage, automation
process, knowledge on statics, and analytical skills are needed to do performance testing.
Performance testing requires a large number and amount of resources such as hardware,
software, effort, time, tools and people. Performance test results need to reflect real _life
environment and expectations. Selecting the right tool for the performance testing is another
challenge. Interfacing with different teams that include a set of customers is yet another
challenge in performance testing. Lack of seriousness on performance tests by the
management and development team is another challenge .once all functionalities are working
fine in a product, it is assumed that the product is ready to ship.
Page 60 of 86
Unit – IV Software Testing
REGRESSING TESTING
4.1 WHAT IS REGRESSION TESTING
Regression testing is done to ensure that enhancements or defect fixes made to the
software works properly and does not affect the existing functionality.
Software undergoes constant changes. Such changes are necessitated because of
defects to be fixed, enhancements to existing functionality, or new functionality to be added.
Anytime such changes are made, it is important to ensure that.
1. The changes or additions work as designed
2. The changes or additions do not break something that is already working and should
continue to work.
Regression testing is designed to address the above two purpose.
Page 61 of 86
Unit – IV Software Testing
test cycles to find out if the software delivered is as good as or better than the builds received
in the past. As testing involves large amount of resources (hardware, software, and people), a
quick testing is needed to assess the quality of build and changes to software initially a few test
engineers with very few machines do regression testing. Regression testing is done whenever
such a requirement arises
A reasonable amount of initial testing is already carried out.
A good number of defects have been fixed.
Defect fixes that can produce side-effects are taken care of.
Regression testing may also be performed periodically, as a pro-active measure. Regression
testing can be performed irrespective of which test phase the product is in.
Types
Regression testing
Regular regression –final
regressi on
When?
What? Why?
Defects creep in due to When set of defect fixes
Select re-testing to
changes arrive after formal test is
ensure defect fixes
Defect fixes may cause complete
exist function to fail
Page 62 of 86
Unit – IV Software Testing
CM
15%
OTHERS
CODING 5%
20%
REQUIREMENTS
15%
DESIGN
20%
Page 63 of 86
Unit – IV Software Testing
Defects in the product can get introduced not only by the code, but also by the build scripts
that are used for compiling and linking the program. Smoke testing enables the uncovering of
such errors introduced by (also) the build procedures.
Page 64 of 86
Unit – IV Software Testing
Priority-0
10%
Priority-1
25%
Priority-2
65%
Prioity-2 These test cases deliver moderate project value. They are executed as part
of the testing cycle and selected for regression testing on a need basis.
Page 65 of 86
Unit – IV Software Testing
Page 66 of 86
Unit – IV Software Testing
Legend
P0 priority = 0 Methodology for Selecting Test Cases
P1 priority = 1
P2 priority = 2
C Very few
All
C subset
Critically
impact
P0 c P0 P0
P1 P1
P1 c
P2 c P2 c
P2 c
4.4.5 Resetting the Test Cases for Regression Testing
Page 67 of 86
Unit – IV Software Testing
Resetting test cases reduces the risk involved in testing defect fixes by making the testers go
through all the test cases and selecting appropriate test cases based on the impact of those
defect fixes. Resetting of test cases is not expected to be done often, and it needs to be done
with the following considerations in mind.
When there is a major change in the product.
When there is a change in the build procedure which affects the product.
Large release cycle where some test cases were not executed for a long time.
When the product is in the final regression test cycle with a few selected test cases.
Where there is a situation, that the expected results of the test cases could be quite
different from the previous cycles.
The test cases relating to defect fixes and production problems need to be evaluated
release after release. In case they are found to be working fine, they can be reset.
Whenever existing application functionality is removed, the related test cases can be
reset.
Test cases that consistently produce a positive result can be removed.
Test cases relating to a few negative test conditions (not producing any defects) can be
removed.
Page 68 of 86
Unit – IV Software Testing
If not satisfied with the workaround, then it should be considered as a fail system test
cycle but may be considered as a pass for regression test cycle.
-- x - -
Page 69 of 86
Unit – V Software Testing
UNIT - V
TEST MANAGEMENT EXECUTION, AND REPORTING
5.1TEST PLANNING
5.1.1 Preparing a Test Plan
Testing- like any project- should be driven by a plan. The test plan acts as the anchor for
the execution, tracking and reporting of the entire testing project and covers.
What needs to be tested
How the testing is going to be performance.
What resources needed for testing
The time lines by which the testing activities performed
Risk that may be faced in all of the above, with appropriate mitigation and contingency
plans.
The following factor drives the choice and prioritization of features to be tested.
Features that are new and critical for the release
Features whose failures can be catastrophic
Features that are expected to be complex to test
Page 70 of 86
Unit – V Software Testing
Features which are extensions of earlier features that have been defect
prone.
Page 71 of 86
Unit – V Software Testing
The clearly list he responsibilities for various functions to various to that every
one knows how his or her work fits into the entire project
Complement each other, ensuring no one steps on an others toes, and
supplement each other, so that no task is left unassigned
Page 72 of 86
Unit – V Software Testing
Size estimation quantifies the actual amount of testing that needs to be done. Several
factors contribute size estimate of a testing project.
Size of the product under test :
This obviously determines the amount of testing that needs to be done. Some of measure
of product under test is as follows
Lines of code [LOC]
A function point[FP]
Size estimate is expressed in terms of any of the following:
1. Number of test cases
2. Number of test scenarios
3. Number of configurations to be tested
The other factors that drive the effort estimate are as follows.
Productivity data
Reuse opportunities
Robustness of process
Page 73 of 86
Unit – V Software Testing
Hiring
Training
Acquisition of hardware/software required for training
Availability of translated message files for testing.
Some of the internal dependencies could be,
Completing the test specification
Coding/scripting the tests
Executing the tests.
Risk Risk
identification qualification
Page 74 of 86
Unit – V Software Testing
Risk identification consists of identifying the possible risks that may hit a project.
Although there could potentially be many risks that hit a project, the risk identification step
should focus on those risks that are more likely to happen. The flowing are some of the
common ways to identify risks in testing.
Use of checklist: Over time an organization may find new gleanings on testing that can
be captured in the form of a checklist.
Use of organizational history and metrics: When an organizational collects and analyzes
the various metrics, the information can provide valuable insights into what possible
risks can hit a project
Informal networks across the industry: The informal networking across the industry can
help identifying risks that other organizations.
Risk quantification deals with expressing the risk in numerical terms. There are two
components to the quantification of risk. One is probability of the risk happening and other is
the impact of the risk, if the risk happens.
The Risk mitigation deals with identifying alternative strategies to combat a risk event,
should that risk materialize. The following are some of the common risks encountered in testing
projects and their characteristics:
Unclear requirements
Schedule dependence
Insufficient time for testing
“Show stopper “defects
Availability of skilled and motivated people for testing
Inability to get test automation tool
Page 75 of 86
Unit – V Software Testing
Page 76 of 86
Unit – V Software Testing
Page 77 of 86
Unit – V Software Testing
1. The purpose of the test: This list what feature or part the test is intended for. The test
case should follow the naming conventions that are consistent with the feature/ module
being tested.
2. Items being tested, along with their version/release numbers as appropriate.
3. Environment that needs to be set up for running the test case.
4. Input data to be used for the test case.
5. Steps to be followed to execute the test.
6. The expected results that are considered to be “correct result”
7. A step to compare the actual results produced with the expected results
8. Any relationship between this test and other tests.
Page 78 of 86
Unit – V Software Testing
case is a manual test case, then test case writing maps to writing detailed step-by-step
instructions for executing the test and validating the results. The test cases should also have
change history documentation, which specifies
1. What was the change;
2. Why the change was necessitated;
3. Who made the change;
4. When was the change;
5. A brief description of how the change has been implement;
6. Other files affected by the change.
Page 79 of 86
Unit – V Software Testing
Page 80 of 86
Unit – V Software Testing
The tests that were planned to be run but could not be run
Modifications to tests from what was in the original test specification
Additional tests that were run
Difference in effort and time taken between what was planned and what was
executed
Any other deviations from plan
Summary of results should include
Tests that failed, with any root cause descriptions
Severity of impact of the defects uncovered by the tests
Comprehensive assessment and recommendation for release should include
“fit for release” assessment
Recommendation of release
5.4.1 Recommending Product Release
Based on the test summary report, an organization can take a decision on whether to
release the product or not.
Page 81 of 86
Unit – V Software Testing
identify ehat
to measure
refine transform
measurements measurements
and metrics to metrics
decide
take actions
operational
and follow up
requirements
perform
metrics
analysis
Page 82 of 86
Unit – V Software Testing
TYPES OF METRICS
Metrics can be classified as product metrics and process metrics. Product metrics can be
further classified into
1. Project metrics
2. Progress metrics
3. Productivity metrics
Process Product
metrics metrics
trend Introduced
Closed defects distribution
Weighted and reopened
defects trend defects rate
Page 83 of 86
Unit – V Software Testing
Effort distribution
Testing defect
Development
metrics
defect metrics
PROJECT METRICS
A typical project starts with requirements gathering and ends with product release. All
phases that fall between these points need to be planned and tracked. In the planning cycle,
the scope of the project is finalized. The project scope gets translated to size estimates, which
specify the quantum to work to be done. This size estimate gets translated to effort estimate
for each phase and activities by using the available productivity data available. This initial effort
is called baselined effort.
The project progresses and if the scope of the project changes or if the available
productivity numbers are not correct, then the effort estimates are re-evaluated again and this
re-evaluated effort estimate is called revised effort.
The basic measurements that are very natural, simple to capture and form the inputs to
the metrics in this section are
1. The different activities and the initial baselined effort and schedule for each of the activities
2. The actual effort and time taken for the activities; this is entered as and when
The activities take place.
Page 84 of 86
Unit – V Software Testing
3. The revised estimate of effort and schedule these are re-calculated at appropriate times in
the project life.
PROGRESS METRICS
Defects get detected by the testing team and get fixed by the development team. Defect
metrics are further classified into test defect metrics and development defect metrics .
Page 85 of 86
Unit – V Software Testing
PRODUCTIVITY METRICS
Productivity metrics combine several measurements and parameters with effort spent on
the product. They help in finding out the capability of the team as well as for other purpose
such as
2. Finding out how well the team is progressing, understanding the reasons for variations in
results.
3. Estimating the number of defects that can be found
4. Estimating release date and quality
5. Estimating the cost involved in the release.
RELEASE METRICS
Page 86 of 86