Documente Academic
Documente Profesional
Documente Cultură
Test Process. 2
What is Verification & Validation?
Test Process. 3
Verification Strategies
3. Requirements Review.
4. Design Review.
5. Code Walkthrough.
6. Code Inspections.
Test Process. 4
Validation Strategies
3. Unit Testing.
4. Integration Testing.
5. System Testing.
6. Performance Testing.
7. Alpha Testing.
8. User Acceptance Testing (UAT).
9. Installation Testing.
10.Beta Testing.
Test Process. 5
Verification Strategies…in detail
Test Process. 6
Validation Strategies…in detail
Test Process. 7
Validation Strategies…in detail
Test Process. 8
Establishing a Software Testing Methodology.
Test Process. 9
Type of Development Project
Type Characteristics Test Tactic
Traditional •Uses a system development •Test at end of each
System methodology. task/step/phase.
Development •User knows requirements. •Verify that specs match
•Development determines structure. need.
•Test function and structure.
Requirements Phase
• Determine the test strategy.
• Determine adequacy of requirements.
• Generate functional test conditions.
Design Phase
• Determine consistency of design with requirements.
• Determine adequacy of design.
• Generate structural and functional test conditions.
Test Process. 11
When Testing should occur..?
Test Phase
• Determine adequacy of the test plan.
• Test application system.
Installation Phase
• Place tested system into production.
Maintenance Phase
• Modify and retest.
Test Process. 12
Types of Testing.
Test Process. 13
Structural Testing.
Test Process. 14
Structural Testing.
Test Process. 15
Functional Testing.
Test Process. 16
Functional Testing.
Parallel Old systems and new system are Old and new system
run and the results compared to can reconcile.
detect unplanned differences.
Test Process. 17
Test Phases.
Requirements Design
Review Review
Code Code
Inspection Walkthrough
Unit Integration
Testing Testing
Performance System
Testing Testing
Beta Installation
Testing Testing
Test Process. 18
Test Phases and Definitions
1. Requirements Review.
2. Design Review.
3. Code Review.
Test Process. 19
Test Phases and Definitions
Unit Testing
Goal of Unit testing is to uncover defects using formal techniques
like Boundary Value Analysis (BVA), Equivalence Partitioning,
and Error Guessing. Defects and deviations in Date formats,
Special requirements in input conditions (for example Text
box where only numeric or alphabets should be entered),
selection based on Combo Box’s, List Box’s, Option buttons,
Check Box’s would be identified during the Unit Testing
phase.
Integration Testing
Integration testing is a systematic technique for constructing the
program structure while at the same time conducting tests to
uncover errors associated with interfacing. The objective is to
take unit tested components and build a program structure
that has been dictated by design.
Usually, the following methods of Integration testing are followed:
1. Top-down Integration approach.
2. Bottom-up Integration approach.
Test Process. 20
Test Phases and Definitions
Top-down Integration
Top-down integration testing is an incremental approach to
construction of program structure. Modules are integrated by
moving downward through the control hierarchy, beginning
with the main control module. Modules subordinate to the
main control module are incorporated into the structure in
either a depth-first or breadth-first manner.
The Integration process is performed in a series of five steps:
4. The main control module is used as a test driver and stubs are
substituted for all components directly subordinate to the main
control module.
5. Depending on the integration approach selected subordinate
stubs are replaced one at a time with actual components.
6. Tests are conducted as each component is integrated.
7. On completion of each set of tests, another stub is replaced
with the real component.
8. Regression testing may be conducted to ensure that new
errors have not been introduced.
Test Process. 21
Test Phases and Definitions
Bottom-up Integration
Button-up integration testing begins construction and testing with
atomic modules (i.e. components at the lowest levels in the
program structure). Because components are integrated from
the button up, processing required for components
subordinate to a given level is always available and the need
for stubs is eliminated.
A Bottom-up integration strategy may be implemented with the
following steps:
4. Low level components are combined into clusters that perform
a specific software sub function.
5. A driver is written to coordinate test case input and output.
6. The cluster is tested.
7. Drivers are removed and clusters are combined moving
upward in the program structure.
Test Process. 22
Test Phases and Definitions
System Testing
System testing is a series of different tests whose primary
purpose is to fully exercise the computer based system.
Although each test has a different purpose, all work to verify
that system elements have been properly integrated and
perform allocated functions.
The following tests can be categorized under System testing:
4. Recovery Testing.
5. Security Testing.
6. Stress Testing.
7. Performance Testing.
Recovery Testing
Recovery testing is a system test that focuses the software to fall
in a variety of ways and verifies that recovery is properly
performed. If recovery is automatic, reinitialization,
checkpointing mechanisms, data recovery and restart are
evaluated for correctness. If recovery requires human
intervention, the mean-time-to-repair (MTTR) is evaluated to
determine whether it is within acceptable limits.
Test Process. 23
Test Phases and Definitions
Security Testing
Security testing attempts to verify that protection mechanisms
built into a system will, in fact, protect it from improper
penetration. During Security testing, password cracking,
unauthorized entry into the software, network security are all
taken into consideration.
Stress Testing
Stress testing executes a system in a manner that demands
resources in abnormal quantity, frequency, or volume. The
following types of tests may be conducted during stress
testing:
6. Special tests may be designed that generate ten interrupts per
second, when one or two is the average rate.
7. Input data rates may be increases by an order of magnitude to
determine how input functions will respond.
8. Test Cases that require maximum memory or other resources.
9. Test Cases that may cause excessive hunting for disk-
resident data.
10. Test Cases that my cause thrashing in a virtual operating
Test Process. 24
system.
Test Phases and Definitions
Performance Testing
Performance tests are coupled with stress testing and usually
require both hardware and software instrumentation.
Regression Testing
Regression testing is the re-execution of some subset of tests
that have already been conducted to ensure that changes
have not propagated unintended side affects.
Regression may be conducted manually, by re-executing a
subset of al test cases or using automated capture/playback
tools.
The Regression test suit contains three different classes of test
cases:
• A representative sample of tests that will exercise all software
functions.
• Additional tests that focus on software functions that are likely
to be affected by the change.
• Tests that focus on the software components that have been
changed.
Test Process. 25
Test Phases and Definitions
Alpha Testing
The Alpha testing is conducted at the developer sites and in a
controlled environment by the end-user of the software.
Beta Testing
The Beta testing is conducted at one or more customer sites by
the end-user of the software. The beta test is a live application
of the software in an environment that cannot be controlled by
the developer.
Test Process. 26
Metrics.
Metrics are the most important responsibility of the Test Team.
Metrics allow for deeper understanding of the performance of
the application and its behavior. The fine tuning of the
application can be enhanced only with metrics. In a typical QA
process, there are many metrics which provide information.
The following can be regarded as the fundamental metric:
Test Process. 27
Metrics.
Functional or Test Coverage Metric. It can be used to measure
test coverage prior to software delivery. It provides a measure
of the percentage of the software tested at any point during
testing.
It is calculated as follows:
Function Test Coverage = FE/FT
Where,
FE is the number of test requirements that are covered by test
cases that were executed against the software
FT is the total number of test requirements
Test Process. 29
Metrics.
Reliability Metrics
Reliability is calculated as follows:
Reliability = 1 - Number of errors (actual or predicted)/Total
number of lines of executable code
This reliability value is calculated for the number of errors during
a specified time interval.
Three other metrics can be calculated during extended testing or
after the system is in production. They are:
Test Design
Test Analysis
Test Execution
Test Process. 32
Test Analysis
Analysis is the key factor which drives in any planning. During the
analysis, the analyst understands the following:
Test Process. 33
Test Analysis
During Test Analysis the required documents will be carefully studied by
the Test Personnel, and the final Analysis Report is documented.
Test Process. 34
Test Design
The right wing of the butterfly represents the act of designing and
implementing the test cases needed to verify the design artifact as
replicated in the implementation. Like test analysis, it is a relatively
large piece of work. Unlike test analysis, however, the focus of test
design is not to assimilate information created by others, but rather
to implement procedures, techniques, and data sets that achieve the
test’s objective(s).
The outputs of the test analysis phase are the foundation for test
design. Each requirement or design construct has had at least one
technique (a measurement, demonstration, or analysis) identified
during test analysis that will validate or verify that requirement. The
tester must now implement the intended technique.
Software test design, as a discipline, is an exercise in the prevention,
detection, and elimination of bugs in software. Preventing bugs is
the primary goal of software testing. Diligent and competent test
design prevents bugs from ever reaching the implementation stage.
Test design, with its attendant test analysis foundation, is therefore
the premiere weapon in the arsenal of developers and testers for
limiting the cost associated with finding and fixing bugs.
Test Process. 35
Test Design
During Test Design, basing on the Analysis Report the test personnel
would develop the following:
Test Plan.
Test Approach.
Test Case documents.
Performance Test Parameters.
Performance Test Plan.
Test Process. 36
Test Execution
Any test case should adhere to the following principals:
Test Process. 37
Test Execution
During the Test Execution phase, keeping the Project and the Test
schedule, the test cases designed would be executed. The following
documents will be handled during the test execution phase:
Test Process. 38
Defect Tracking Process.
The Tester/Developer
finds the Bug.
The concerned
The concerned Developer is
informed
Developer is informed
The Developer
The fixes
Developer fixes the
the
Defectz
Defectz
The Developer
The Developer changes
changes the If
If the Defect
the Defect re-occurs,
re-occurs, the
status changes to “Re-Open”
Status to “Resolved”
the Status to “Resolved” the status changes to
“Re-Open”
The Tester
The Tester Re-Tests and
Re-Tests and
changes Status to “Closed”
changes Status to
“Closed”
Test Process. 39
Defect Classification.
Test Process. 40
Defect Priority.
The priority level describes the time for resolution of the defect. The
priority level would be classified as follows:
Test Process. 41
Deliverables.
The Deliverables from the Test team would include the following:
Test Plan.
Defect Reports.
Metric Reports.
Test Process. 42
Test Process. 43