0% found this document useful (0 votes)
13 views

Lect 3 Testing Process

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Lect 3 Testing Process

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

SOFTWARE TESTING

Instructor: Mehwish
OUTLINE
• Software Testing
• Fundamentals of Test Process
• Psychology of Testing
• General Principles of Testing
• Ethical Guidelines
Software Testing
• Institute of Electrical and Electronic Engineers (IEEE 83a)
standard defines testing as—
– “the process of exercising or evaluating a system or system component
by manual or automated means to verify that it satisfies specified
requirements.”
• Another definition of testing states that—
– “testing is the process of analyzing a system to detect the difference
between existing and required conditions and to evaluate the features
of the system.”
• To sum up, software testing is the act of
– “verifying if the software behavior is as expected.”
• It is important to note that while these phases are
sequential, they are also iterative in nature.
• For example,
– during test execution, there may be a need to go back to test
design to introduce more test cases or test data before the test
execution process is resumed.
• Alternatively,
– during exit criteria evaluation, it can be decided to execute some
more tests before the application is considered fit for release.
• Hence, all phases interact and might transition from one to
the other based on the needs of the project.
Fundamental Test Process
Fundamental Test Process
• Phases are:
1. Test Planning and Control
2. Test Analysis and Design
3. Test Implementation and Execution
4. Evaluating Exit Criteria and Reporting
5. Test Closure
1:Test Planning and Control
• Ensure the goals and objectives of the customers,
stakeholders, and project are understood.
• Evaluate the risks of the system to be addressed by
testing.
• Specify the objective of testing, and determine the
scope and risk.
• Identify the resource requirements, schedule test
analysis, and design tasks.
• Plan for test implementation, execution, and
evaluation, and also determine the exit criteria for
testing.
• Also need to plan for test controls,
– which will help in measuring the progress against the plan,
and in taking corrective actions as and when required.
• Identify the design of the test environment and
identify the required infrastructure and tools.
– This includes testing and support tools such as
spreadsheets, word processors, project planning tools, and
non-IT tools and equipment.
2. Test Analysis and Design
• The Test Analysis and Design phase involves a review
of the test basis and the identification of test
conditions.
• Review of the test basis includes a review of product
requirements, architecture, design specifications,
and interfaces between the products.
– It also includes examining the specifications for
the software being tested.
• All these artifacts are called “test basis” as these are
used as a basis for defining what and how you should
test.
• The designing of black-box tests can begin before the
code is developed.
• The test conditions provide a high-level list of area of
interest in testing.
• In testing, use the test techniques to define the test
conditions.
3. Test Implementation and
Execution
• The test conditions designed are taken and set up as
tests.
– The test environment is also set up before executing the
tests.
• Implementation includes
– prioritizing the test cases, using techniques and test
approach, and creating test suites from test cases for
efficient test execution.
• Execution is running the test suites and individual test
cases, following the pre-defined test procedures.
• At the end of the execution of each test case
– log the outcome and record the identities and versions of
the software under test, test tools, and test ware.
• Need to know
– what tests are used against which version of the
software, report defects against specific versions,
and maintain the test log to provide an audit trail.
• For differences between actual and expected results,
report discrepancies as incidents.
• Re-execute previously failed tests to confirm a fix is
working. This is also known as confirmation testing
or re-testing.
• Test that the fix did not introduce defects in
unchanged areas of the software and that fixing a
defect did not uncover other defects. This is called
regression testing.
4. Evaluating Exit Criteria and
Reporting
• After the end of test execution, the evaluate phase
begins.
• In this phase, measure the results of test execution
against the test objectives and broadcast the test
summary report to stakeholders.
• Return to test execution if the test objectives have
not been met and some more testing needs to be
conducted.
• Then, prepare the test summary report, which is a
document summarizing testing activities and results.
• The test summary report also contains an evaluation
of the corresponding test items against the exit
criteria.
5. Test Closure
• In this phase, perform a check that
– all deliverables have been accepted and signed off,
– archive the test ware,
– close the environment,
– analyze lessons learned,
– and use the information to improve the test maturity.
The Psychology Of Testing
The Psychology Of Testing
• The degree of independence is vital in performing
effective testing.
• The quality, and effectiveness of testing increase with
an increase in the degree of independence.
• What independence in the context of testing
means??
The mindset of Developer vs. Tester
• The Developer always thinks that there are no defects in
the code as it was carefully developed.
• Developers may misinterpret the business requirement,
hence assume that the code is functioning the way it is
supposed to.
• Testers have to think like a destroyer.
– They always think that there are defects in code, waiting to be
uncovered.
• Testers view requirements from the end-user’s point of
view and hence are able to identify user-related defects.
Linking the Gap
• To make any software testing successful, there should not
be any difference between the teams involved in building
the software.
• The following considerations can help bridge the gap
between Developers and Testers:
– Both teams share a common goal, which is the betterment of the
system under test.
– Testers should ensure they are raising the defect against the system and
not individuals.
– Both should try and reach a common understanding of defects.
– Any incorrect understanding of requirements should be discussed and
resolved. Business Analysts can be approached to assist in such
situations.
THE END
Thanks

You might also like