19ecs463 Module 3 STM
19ecs463 Module 3 STM
Validation Activities
Module 3 : Validation Activities
Unit validation testing
Integration testing
Function testing
System testing
Accepting testing
Regression Testing: Objectives of regression testing
Regression testing types
Regression testing techniques
2
Verification Testing
4
Validation Testing
▪ The process of evaluating software during the development process or at the end
of the development process to determine whether it satisfies specified business
requirements.
▪ Validation Testing ensures that the product actually meets the client's needs. It
can also be defined as to demonstrate that the product fulfills its intended use
when deployed on appropriate environment.
▪ Are we building the right product?
Activities involved
• Unit Testing
• Integration Testing
• System Testing
• User Acceptance Testing 5
Validation Testing - Workflow
6
Differences between verification and validation testing
Verification Validation
We check whether we are developing the right We check whether the developed product is
product or not. right.
Verification is also known as static testing. Validation is also known as dynamic testing.
Verification includes different methods like Validation includes testing like functional
Inspections, Reviews, and Walkthroughs. testing, system testing, integration, and User
acceptance testing.
Quality assurance comes under verification Quality control comes under validation testing. 7
testing.
Differences between verification and validation testing
Verification Validation
The execution of code does not happen in the In validation testing, the execution of code
verification testing. happens.
In verification testing, we can find the bugs In the validation testing, we can find those
early in the development phase of the bugs, which are not caught in the verification
product. process.
Verification testing is executed by the Validation testing is executed by the testing
Quality assurance team to make sure that the team to test the application.
product is developed according to customers'
requirements.
Verification is done before the validation After verification testing, validation testing
testing. takes place.
In this type of testing, we can verify that the In this type of testing, we can validate that
inputs follow the outputs or not. the user accepts the product or not.
8
V & V Activities
9
Stubs and Drivers
10
Stubs and Drivers - Example
11
Stub
13
UNIT VALIDATION TESTING
14
Driver Example
15
Driver Example
16
Driver Example
17
Drivers
▪ Driver can be defi ned as a software module which invoke a module under test and
provide test inputs, control and monitor execution, and report test results
19
STUB
▪ stub can be defi ned as a piece of software that works similar to a unit which is
referenced by the unit being tested
20
STUB
21
Drivers & Stubs
overheads also.
22
Integration Testing & Its Reasons for Performing
▪ Integration is the activity of combining the modules together
▪ Data types and their valid ranges may mismatch between the modules.
23
Three approaches for integration testing
24
DECOMPOSITION-BASED INTEGRATION
▪ The nodes on the last level in the tree are leaf nodes
▪ integrate all the modules together and then test it. (Non Incremental)
▪ Another method is to integrate the modules one by one and test them incrementally.
▪ Based on these methods, integration testing methods are classified into two categories:
▪ (b) incremental.
▪
25
DECOMPOSITION-BASED INTEGRATION
26
Non-Incremental Integration Testing : Big-Bang integration testing
▪ Big bang integration testing is a testing approach where all components or modules
are integrated and tested as a single unit. This is done after all modules have been
completed and before any system-level testing is performed.
Drawbacks
▪ It is difficult to localize the errors since the exact location of bugs cannot be found
easily.
▪ 27
Non-Incremental Integration Testing : Big-Bang integration testing
28
Incremental Integration Testing
29
Incremental Integration Testing Advantages
30
Types of Incremental Integration Testing
Incremental Integration Testing Is Divided Into Two Categories.
▪ 4. Pair-wise Integration
▪ 5. Path-based Integration
31
Top-down Integration Testing
▪ Start with the top or initial module in the software.
▪ Substitute the stubs for all the subordinate modules of top module. Test the top module.
▪ After testing the top module, stubs are replaced one at a time with the actual modules for
integration.
▪ Start with the high-level modules and move downward through the design hierarchy
32
Top-down Integration Testing : Depth first integration
▪ Modules subordinate to the top module are integrated in the following two
ways:
33
Top-down Integration Testing : Depth first integration
34
Top-down Integration Testing : Breadth first integration
▪ All modules directly subordinate at each level, moving across the design
hierarchy horizontally, are integrated fi rst
Drawbacks
35
Top-down Integration Testing : Breadth first integration
36
Bottom-up Integration Testing
▪ Begins with the modules at the lowest level in the software structure.
▪ After testing these modules, they are integrated and tested moving from bottom to top
level
▪ Test the module selected in step 1 with the driver designed in step 2.
▪ Whenever, the actual modules are available, replace stubs and drivers with the actual
one and test again. 37
Bottom-up Integration Testing
38
Comparison Between Top Down & Bottom Up
39
CALL GRAPH-BASED INTEGRATION
▪ Directed edge from one node to another means one module has
called another module.
40
CALL GRAPH-BASED INTEGRATION
▪ Refine the functional decomposition tree into a form of module calling graph,
41
CALL GRAPH-BASED INTEGRATION
42
CALL GRAPH-BASED INTEGRATION
43
Pair-wise Integration
▪ Pairs 1–10 and 1–11. The resulting set will be the total test sessions which will
▪ The number of test sessions is 19 which is equal to the number of edges in the
call graph
44
Pair-wise Integration
45
Neighbourhood Integration
▪ The neighbourhood of a node, can be defi ned as the set of nodes that are one
46
Pair-wise Integration
47
Pair-wise Integration
48
PATH-BASED INTEGRATION
▪ control is being transferred after calling the module are also source nodes.
▪ Module execution path ( MEP) path consisting of a set of executable statements within a
module like in a flow graph.
▪ Message control from one unit is transferred to another unit, then a message
49
PATH-BASED INTEGRATION
▪ MM-path graph It is a extended flow graph where nodes are MEPs and edges
are messages.
50
PATH-BASED INTEGRATION
51
PATH-BASED INTEGRATION
52
PATH-BASED INTEGRATION
53
FUNCTION TESTING
▪ functionality of the system specification is tested
54
FUNCTION TESTING
▪ It measure the quality of the functional components of the system.
▪ test leader defines the scope, schedule, and deliverables for the function test
cycle.
▪ test plan (document) and a test schedule (work plan) often undergo several
revisions
55
FUNCTION TESTING
▪ Requirements need to be itemized under an appropriate functional partition.
56
FUNCTION TESTING
57
System Testing
58
System Testing
59
System Testing
60
Recovery Testing
61
Testers should work on the following areas during recovery testing:
▪ Testers must ensure that all transactions have been reconstructed correctly
and that all devices are in proper states.
▪ Maximum load
62
Security Testing
▪ customers data has to be secured ensure that their functionality is properly implemented
▪ Internet users (personal data/information)is not secure the system loses its accountability.
▪ effects of security breaches could be extensive and can cause loss of information, corruption o
information, misinformation, privacy violations, denial of service, etc.
63
Security Testing
Many different tasks are performed to manage software security risks, including
64
Elements of security testing
65
Performance testing
▪ How many concurrent users are expected for each target system server
▪ large dataset require signifi cant disk space and processor power
66
Performance testing
67
Load Testing
▪ there is high probability that the system will fail when put under maximum
load.
▪ When many users work simultaneously on a web server, the server responds
slow.
68
Stress Testing
▪ system is put under loads beyond the limits so that the system breaks.
▪ Thus, stress testing tries to break the system under test by overwhelming its
resources in order to fi nd the circumstances under which it will crash.
▪ In real-time systems, the entire threshold values and system limits must be
noted carefully.
69
Stress Testing: The areas that may be stressed in a system are
▪ Input transactions
Disk space
▪ Output
▪ Communications
70
Usability Testing
71
Usability Testing Characteristics
▪ Response time It should not be so high that the user is frustrated or move
to some other option
▪ Error messages For every exception in the system, there must be an error
Message
73
Acceptance testing: formal testing
74
Acceptance Testing process
▪ The Process completes when the customer and the developer has no further problems.
▪ A well-defi ned acceptance test plan must be created or reviewed by the customer.
▪ The development team and the customer should work together and
▪ Schedule adequate time for the customer to examine and review the product.
75
Acceptance testing: Entry & Exit Criteria
Exit Criteria
76
Types of Acceptance Testing
77
Acceptance testing: ALPHA TESTING
▪ The product is complete and usable in a test environment, but not necessarily
bug-free.
78
Acceptance testing: Entry & Exit Criteria to Alpha
▪ Beta-versions are made available to the open public to increase the feedback
80
Entry & Exit Criteria to Beta
▪ There are no fatal errors which can affect the functionality of the software.
▪ Don’t expect to release new builds to beta testers more than once every two
weeks.
▪ adding a feature during the beta process, the clock goes back and you need
another 3–4 releases.
82
Regression testing
83
Regression testing
84
OBJECTIVES OF REGRESSION TESTING
▪ validate that the system does not have any related bugs.
▪ check the influence of changes in one part on other parts of the program.
85
REGRESSION TESTING TYPES
Bug-Fix regression
86
Regression Testing Techniques: Three
▪ Regression test selection technique : It selects subset of the existing test suite.
▪ Tests with the highest priority are executed earlier rather than those with lower priority.
▪ (a) General Test Case Prioritization prioritize the test cases in T that will be useful
over a succession of subsequent modifi ed versions of P, without any knowledge of the
modified version.
87
Regression Testing Techniques: Three
(b) Version-Specifi c Test Case Prioritization We prioritize the test cases in T, with the
88
Selective Retest Technique (SRT)
It analyses the relationship between the test cases and the software elements they cover.
89
Selective Retest Technique (SRT)
90
Selective Retest Technique (SRT)
91
Problems involved SRT
92
Strategy for Test Case Selection: Selection Criteria Based on Code
Test criterion. Provides a decision procedure for selecting the test cases
potential failures can only be detected if the parts of code that can cause faults
are executed
93
Regression Test Selection Techniques
Minimization techniques attempt to select minimal sets of test cases from T that yield
coverage of modifi ed or affected portions of P.
Datafl ow techniques select test cases that exercise data interactions that have been affected
by modifi cations.
Safe techniques Most regression test selection techniques are not designed to be safe.
Techniques that are not safe can fail
Ad hoc/Random techniques When time constraints .no test selection tool is available
Another simple approach is to randomly select a predetermined number of test cases from T.
Retest-all technique The retest-all technique simply reuses all existing test cases.
94
Evaluating Regression Test Selection Techniques
Precision It measures the extent to which M omits tests that are nonmodification-revealing.
Suppose T contains n tests that are non-modifi cationrevealing for P and P1, and suppose M
omits m of these tests.
The precision of M relative to P, P 1, and T is given by
95
Evaluating Regression Test Selection Techniques
▪ both space and time effi ciency depends on the size of the test suite
96