Week 13
Week 13
Development
Testing
Regression
Instructors: Abir Das and Jibesh Patra
System Department of Computer Science and Engineering
Test Plans Indian Institute of Technology, Kharagpur
LMS
QES {abir, jibesh}@cse.iitkgp.ac.in
Module 44
1 Fundamentals
Fundamentals
Verification &
Validation
2 Verification & Validation
Black Box Testing Black Box Testing
White Box Testing White Box Testing
Development
Testing
Regression 3 Development
System Testing
Test Plans Regression
LMS
QES
System
4 Test Plans
LMS
QES
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
◦ Un-manned satellite-launching rocket in 1996
Test Plans ◦ Self-destructed 37 seconds after launch
LMS
QES
◦ Conversion from 64-bit floating point to 16-bit signed
integer value had caused an exception (re-used from
Ariane 4)
▷ The floating point number was larger than 32767
▷ Efficiency considerations had led to the disabling of
the exception handler
Source:
CS20202:11Software
of the most costly software errors in history
Engineering 3
Why Test?
Module 44
• Input test data to the program
Fundamentals
• Observe the output
Verification & • Check if the program behaved as expected
Validation
Black Box Testing • If the program does not behave as expected:
White Box Testing
Test Plans
LMS
QES
Module 44
• Consider int proc1(int x, int y)
Fundamentals
• Assuming a 64 bit computer
Verification & ◦ Input space = 2128
Validation
Black Box Testing • Assuming it takes 10secs to key-in an integer pair
White Box Testing
Development
◦ It would take about a billion years to enter all possible
Testing values!
Regression
System ◦ Automatic testing has its own problems!
Test Plans
LMS
QES
Module 44
• Consumes largest effort among all phases
◦ Largest manpower among all other development roles
Fundamentals
Verification &
◦ Implies more job opportunities
Validation
Black Box Testing
• About 50% development effort
White Box Testing
◦ But 10% of development time?
Development
Testing ◦ How?
Regression
System • Testing is getting more complex and sophisticated every
Test Plans year
LMS
QES
◦ Larger and more complex programs
◦ Newer programming paradigms
Module 44
• Testing Activities
◦ Test Suite Design
Fundamentals
Verification &
◦ Run test cases and observe results to detect failures.
Validation ◦ Debug to locate errors
Black Box Testing
White Box Testing ◦ Correct errors
Development
Testing
• Error, Faults, and Failures
Regression
System
◦ A failure is a manifestation of an error (also defect or
Test Plans bug)
LMS
QES
◦ Mere presence of an error may not lead to a failure
Module 44
• Errors that escape a fault detection technique:
◦ Can not be detected by further applications of that
Fundamentals
Verification &
technique
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44
• Types of faults possible in a program
• Some types can be ruled out
◦ Concurrency related-problems in a sequential program
Fundamentals
◦ Consider a singleton in multi-thread
Verification & #include <iostream>
Validation using namespace std;
Black Box Testing class Printer { /* THIS IS A SINGLETON PRINTER -- ONLY ONE INSTANCE */
White Box Testing bool blackAndWhite_, bothSided_;
Printer(bool bw = false, bool bs = false) : blackAndWhite_(bw), bothSided_(bs)
Development
{ cout << "Printer constructed" << endl; }
Testing
static Printer *myPrinter_; // Pointer to the Singleton Printer
Regression public:
System ~Printer() { cout << "Printer destructed" << endl; }
static const Printer& printer(bool bw = false, bool bs = false) {
Test Plans
if (!myPrinter_) // What happens on multi-thread?
LMS
myPrinter_ = new Printer(bw, bs);
QES
return *myPrinter_;
}
void print(int nP) const { cout << "Printing " << nP << " pages" << endl; }
};
Printer *Printer::myPrinter_ = 0;
int main() {
Printer::printer().print(10);
Printer::printer().print(20);
delete &Printer::printer();
return 0;
}
CS20202: Software Engineering 12
Fault Model
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
• Hardware Fault-Model
Test Plans
LMS
◦ Simple:
QES
▷ Stuck-at 0
▷ Stuck-at 1
▷ Open circuit
▷ Short circuit
◦ Simple ways to test the presence of each
◦ Hardware testing is fault-based testing
CS20202: Software Engineering 13
Test Cases and Test Suites
Test Plans
◦ I is the data to be input to the system
LMS ◦ S is the state of the system at which the data will be
QES
input
◦ O is the expected output of the system (called Golden)
Development
Testing
Regression
System
Test Plans
LMS
QES
Source:
CS20202: Software
Software Testing
Engineering 15
Design of Test Cases
Module 44
• Consider following example
◦ Find the maximum of two integers x and y
Fundamentals
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
◦ Black-box testing (Zero Knowledge)
Regression
System
Test Plans
LMS
QES
Module 44
Black Box Testing
White Box Testing
• Impossible to write a test
• Does not address the
Fundamentals case for every possible set
question of whether or
Verification & of inputs and outputs
Validation not a program matches
Black Box Testing
White Box Testing
• Some code parts may the specification
Development not be reachable
Testing
• Does not tell you if all
Regression
System
of the functionality has
Test Plans been implemented
LMS • Does not tell if ex-
QES • Does not discover miss-
tra functionality has been
ing program logic
implemented.
Module 44
• Black-box testing is a method of software testing that
examines the functionality of an application without peering
Fundamentals
into its internal structures or workings
Verification &
Validation • This method of test can be applied virtually to every level
Black Box Testing
White Box Testing of software testing
Development ◦ unit
Testing
Regression ◦ integration
System
◦ system and
Test Plans
LMS ◦ acceptance
QES
• Test cases are designed using only functional specification
of the software
◦ Without any knowledge of the internal structure of the
software
• For this reason, black-box testing is also known as
functional testing or specification-based testing
CS20202: Software Engineering 20
White-Box Testing
Module 44
• White-box testing is a method of software testing that tests
internal structures or workings of an application, as opposed
Fundamentals
to its functionality
Verification &
Validation
Black Box Testing
• In white-box testing an internal perspective of the system,
White Box Testing as well as programming skills, are used to design test cases
Development
Testing
• Designing white-box test cases
Regression
System ◦ Requires knowledge about the internal structure of
Test Plans software
LMS
QES • White-box testing is also called structural testing
Module 44
• Grey-box testing is a combination of white-box testing and
black-box testing
Fundamentals
Verification &
• The aim of this testing is to search for the defects if any
Validation
Black Box Testing
due to improper structure or improper usage of applications
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44
There are several significant approaches to design black box
test cases including
• Equivalence class partitioning
Fundamentals • Boundary value analysis
Verification & • State Transition Testing
Validation
Black Box Testing • Decision Table Testing
White Box Testing
• Graph-Based Testing
Development
Testing
• Error Guessing Technique
Regression
System Other approaches include:
Test Plans • Fuzzing Technique
LMS
QES
• All Pair Testing
• Orthogonal Array Testing
• and so on
Source: Black Box Testing Techniques with Examples
Verification &
• Partitioning is done such that
Validation
Black Box Testing
◦ Program behaves in similar ways to every input value
White Box Testing
belonging to an equivalence class
Development
Testing
◦ Test the code with just one representative value from
Regression
System
each equivalence class – As good as testing using any
Test Plans other values from the equivalence classes
LMS
QES
Test Plans
LMS
QES
Verification &
• Programmers often fail to see
Validation
Black Box Testing
◦ Special processing required at the boundaries of
White Box Testing
equivalence classes
Development
Testing • Programmers may improperly use < instead of ≤
Regression
System • Boundary value analysis
Test Plans
LMS
◦ Select test cases at the boundaries of equivalence classes
QES
• For a function that computes the square root of an integer
in the range of 1 and 5000
◦ Test cases must include the values: { 0, 1, 5000, 5001 }
• QES program reads (a, b, c) and solves: ax 2 + bx + c = 0
◦ a = 0 is a boundary. Check if this test works well
◦ b ∗ b − 4 ∗ a ∗ c = 0 is a boundary. Check for the test 28
CS20202: Software Engineering
Black-Box Testing:
State Transition Testing
Module 44 • This technique usually considers the state, outputs, and
inputs of a system during a specific period
Fundamentals
• Based on the type of software that is tested, it checks for
Verification & the behavioral changes of a system in a particular state or
Validation
Black Box Testing
another state while maintaining the same inputs
White Box Testing
• The test cases for this technique are created by checking
Development
Testing the sequence of transitions and state or events among the
Regression
System
inputs
Test Plans • The whole set of test cases will have the traversal of the
LMS
QES expected output values and all states
Source: Black Box Testing Techniques with Examples
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Testcase # Password for Trial State
Trial 1 Trial 2 Trial 3 Golden
(1) Correct X X Access
(2) Wrong Correct X Access
(3) Wrong Wrong Correct Access
(4) Wrong Wrong Wrong Locked
Source: Black Box Testing Techniques with Examples
Development
Testing
Regression
System
Test Plans
LMS
QES
Development
Testing
Regression
System
Test Plans
LMS
QES
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44 • Coverage-based
◦ Design test cases to cover certain program elements
Fundamentals • Fault-based
Verification & ◦ Design test cases to expose some category of faults
Validation
Black Box Testing • There exist several popular white-box testing methodologies
White Box Testing
Verification &
executed (or covered)
Validation ◦ Example: statement coverage, path coverage, etc.
Black Box Testing
White Box Testing
• Idea behind fault-based testing
Development
Testing ◦ Design test cases that focus on discovering certain types
Regression
System
of faults
Test Plans ◦ Example: Mutation testing
LMS
QES
Module 44
• Stronger and Weaker Testing: Test cases are a super-set of a weaker testing
◦ A stronger testing covers at least all the elements of the elements covered
by a weaker testing
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
• Complimentary Testing
Regression
System
Test Plans
LMS
QES
Verification & • Observe that a statement behaves properly for one i/p
Validation ◦ No guarantee that it will behave correctly for all i/p values
Black Box Testing
White Box Testing
• Line Coverage
◦ Most tools (like gcov, lcov) actually compute the coverage for the source lines
Development ◦ So it multiple statements are written in a single line, the coverage data may be inaccurate. For
Testing example, there are two statements in the following line that will be counted as one only
Regression x = 5; y = 6;
System
Test Plans ◦ While the above may be okay, conditional statements should be placed in separate lines for proper
LMS
statement coverage. For example, for
QES if (x > y) max = x;
max = y;
we would never now if the statement max = x; has actually been executed or not
◦ Single statement in every source line is a common coding guideline
Test Plans • By choosing the test set { (x=3,y=3), (x=4,y=3), (x=3,y=4) }, all
LMS
statements are executed at least once
QES
• Note that { (x=4,y=3) } or { (x=3,y=4) } itself will cover all lines due the
the iterations of the while loop. However, it is customary to keep the
analysis simple (mostly through a single flow) and include all of them in the
test suite
Module 44 • Example:
0: int f1(int x, int y) {
1: while (x != y) {
2: if (x > y)
3: x = x - y;
Fundamentals 4: else y = y - x;
Verification & 5: }
Validation 6: return x;
7: }
Black Box Testing
White Box Testing
Verification &
digit_high == 1 || digit_low == -1
Validation
Black Box Testing
White Box Testing
• Branch adequacy criterion can be satisfied by varying only
Development
Testing
digit low
Regression
System ◦ The faulty sub-expression might not be tested
Test Plans ◦ Even though we test both outcomes of the branch
LMS
QES
Verification &
statements
Validation
Black Box Testing
▷ Are given true and false values
White Box Testing
◦ Condition testing
Development
Testing ▷ Stronger testing than branch testing
Regression
System ◦ Branch testing
Test Plans
LMS
▷ Stronger than statement coverage testing
QES
Development
Testing
Regression
System
Test Plans
LMS
QES
• Tests 4 & 8 demonstrate that ‘kettle’ can independently affect the outcome
• Tests 6 & 8 demonstrate that ‘mug’ can independently affect the outcome
• Tests 7 & 8 demonstrate that ‘coffee’ can independently affect the outcome
Test Plans
LMS
QES
Test Plans
• MC/DC vs. MCC
LMS ◦ MCC testing is characterized as number of tests = 2C . In coffee example we have 3 conditions
QES (kettle, cup and coffee) therefore tests = 23 = 8
◦ MC/DC requires significantly fewer tests (C + 1). In coffee example we have 3 conditions,
therefore 3 + 1 = 4
◦ In a real-world setting, most aerospace projects would include some decisions with 16 conditions
or more. So the reduction would be from 21 6 = 65,536 to 16 + 1 = 17. That is, 65,519/65,536
= 99.97%
Development
• A path through a program:
Testing
◦ A node and edge sequence from the starting node to a terminal node of the control flow graph
Regression
System
◦ There may be several terminal nodes for program
Test Plans • Any path through the program that introduces at least one new edge is a
LMS Linearly Independent Path (LIP).
QES
• A set of paths are linearly independent if none of them can be created by
combining the others in some way.
◦ It is straight forward to identify linearly independent paths of simple programs; but not so for
complicated programs
Development
Testing CFG LIP
Regression
System
Test Plans
LMS
QES
Test Plans
LMS
QES
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Note that, {(x = 0)} covers lines {1, 2, 3, 4} while {(x = 1)} covers only lines {1, 2, 4}.
So with {(x = 0)}, we get 100% statement coverage. But then, did we check for the jump from
line 2 to 4 for the false condition? This condition did not get tested. So we need {(x = 0), (x
= 1)} for 100% branch coverage and it obviously leads to 100% statement coverage.
How do we get 100% branch coverage for:
1: if (true)
2: x = x + 1;
3: y = 5;
CS20202: Software Engineering 61
White Box Testing:
Mutation Testing
• Insert faults into a program:
Module 44
◦ Check whether the tests pick them up
◦ Either validate or invalidate the tests
Development
◦ Remaining defects:
S −s
Testing N−n =n∗
s
Regression
System
• Example:
Test Plans ◦ 100 errors were introduced
LMS ◦ 90 of these errors were found during testing
◦ 50 other errors were also found
QES
◦ Remaining errors:
100 − 90
50 ∗ =6
90
• The kind of seeded errors should match closely with existing errors
◦ However, it is difficult to predict the types of errors that exist
Test Plans
LMS
QES
Development
Testing
Regression
System
Test Plans
LMS
QES
• Define/use of variables
Variable Defined at node Used at node
x 1 2, 3
y 1 2, 4
a 3, 4 5
Source: Data Flow Testing
CS20202: Software Engineering 66
Data Object Categories
Module 44 • (d) Defined, Created, Initialized. An object (like variable) is defined when it:
◦ appears in a data declaration
◦ is assigned a new value
Fundamentals ◦ is a file that has been opened
Verification &
◦ is dynamically allocated
Validation ◦ ...
Black Box Testing • (k) Killed, Undefined, Released
White Box Testing
Development
• (u) Used:
Testing ◦ (c) Used in a calculation
Regression ◦ (p) Used in a predicate
System
◦ An object is used when it is part of a computation or a predicate
Test Plans ▷ A variable is used for a computation (c) when it appears on the RHS (sometimes even the
LMS LHS in case of array indices) of an assignment statement
QES ▷ A variable is used in a predicate (p) when it appears directly in that predicate
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44
Development involves a number of processes:
• Design & Coding (discussed in Modules 2 & 4)
Fundamentals • Debugging
Verification & • Issue / Bug Tracking
Validation
Black Box Testing
White Box Testing
• Testing
Development • Documentation
Testing
Regression • Release (discussed as a part of Maintenance)
System
Module 44
• The aim of testing is to identify all defects in a software product
• However, in practice even after thorough testing, one cannot guarantee that
the software is error-free
Fundamentals • The input data domain of most software products is very large
Verification &
◦ It is not practical to test the software exhaustively with each input
Validation • Testing however exposes many errors
Black Box Testing
White Box Testing ◦ Testing provides a practical way of reducing defects in a system
Development
◦ Increases the users’ confidence in the system
Testing • Testing
Regression
System
◦ Is a continual process
Test Plans
◦ Needs significant automation (especially to repeats tests already done
LMS
when new stuff is added). Usually achieved through
QES ▷ Regression Testing
◦ Has to happen at all phases and all levels of abstraction – both for
development and for maintenance
• Software products are tested at three levels
◦ Unit testing
◦ Integration testing
◦ System testing
CS20202: Software Engineering 70
Regression Testing
Module 44
• Regression1 testing is re-running functional and non-functional tests to ensure
that previously developed and tested software still performs after a change
◦ If not, that would be called a regression
◦ The software Regresses
Fundamentals
• Regression testing
Verification &
Validation ◦ Is usually done through auotmated processes after each change to the
Black Box Testing system after each bug fix
White Box Testing ◦ Ensures that no new bug has been introduced due to the change or the bug
Development fix – the new system’s performance is at least as good as the old system
Testing ◦ Is always used during incremental system development
Regression
System • Regression test is:
Test Plans ◦ Required before every code check-in (no regression, that is)
LMS ◦ Used at every level for every kind of test
QES ◦ Most powerful tool for quality control for software development and
maintenance
1
a return to a former or less developed state
CS20202: Software Engineering 71
Regression Testing:
Positive & Negative Test Cases
Module 44
Execution Outcome
Type of Test Successful Unsuccessful
Fundamentals
Positive Case PASS FAIL
Verification &
Validation (Success)
Black Box Testing
White Box Testing
Negative Case FAIL PASS
Development (Failure)
Testing
Regression
System Regression outcome is typically shown by:
Test Plans
LMS # of PASS cases
QES ∗ 100%
# of PASS + FAIL (total) cases
Verification &
• Regression Testing can be carried out using the following strategies:
Validation ◦ Retest All
Black Box Testing ▷ Needed for all version major / minor releases
White Box Testing
◦ Regression Test Selection
Development ▷ Test cases which have frequent defects
Testing ▷ Functionalities which are more visible to the users
Regression ▷ Test cases which verify core features of the product
System ▷ Test cases of Functionalities which has undergone more and recent changes
▷ All Integration Test Cases & all Complex Test Cases
Test Plans ▷ Boundary value test cases
LMS ▷ Samples of Successful test cases & Failure test cases
QES
◦ Prioritization of Test Cases
▷ Depending on business impact, critical & frequently used functionalities
▷ General prioritization: Beneficial on subsequent versions
▷ Version-specific prioritization: Beneficial for a particular version of the software
◦ Hybrid
▷ This technique is a hybrid of regression test selection and test case prioritization
Module 44
• Retesting means testing the functionality or bug again to ensure the code is
fixed
◦ If it is not fixed, defect needs to be re-opened
◦ If fixed, defect is closed
Fundamentals
• Regression testing means testing your software application when it undergoes
Verification & a code change to ensure that the new code has not affected other parts of the
Validation
Black Box Testing
software.
White Box Testing
Regression Testing Retesting
Development
Confirms that a recent program or code change has Confirms that the test cases that failed in the final
Testing
not adversely affected existing features execution are passing after the defects are fixed
Regression
Ensures that new code changes do not have any side Is done on the basis of the Defect fixes
System
effects to existing functionalities
Test Plans Defect verification is not in scope Defect verification is in scope
LMS
May be carried out parallel with Re-testing Must be carried out before regression testing
QES
May be automated Cannot automate the test cases for Retesting
Manual Testing is expensive
Generic testing Planned testing
Done for passed test cases Done only for failed test cases
Checks for unexpected side-effects Makes sure that the original fault has been corrected
Done for any mandatory modification or changes in an Executes a defect with the same data and the same
existing project environment with different inputs with a new build
Test cases for can be obtained from the functional Test cases for retesting cannot be obtained before
specification, user tutorials and manuals, and defect start testing
reports in regards to corrected problems
Source:
CS20202:Difference
Software Between Retesting and Regression Testing
Engineering 75
Regression Test Suite
Module 44
• To repeat old tests and runs
• Test Case with Golden
Fundamentals ◦ Unit Tests
Verification &
Validation
◦ API / Application Tests
Black Box Testing ◦ Directed Tests, Corner Cases, Customer Tests
White Box Testing
Development
◦ Random & Huge Tests
Testing ◦ Performance Tests
Regression
System ▷ Time
Test Plans
LMS
▷ Resources: Low Memory Tests
QES
◦ Coverage Tests
◦ ...
• Folder Structure
◦ Uniformity names of test case files: Critical for
automation scripts
• Run script
CS20202: Software Engineering 76
Unit Testing
Module 44
• During unit testing, modules are tested in isolation
◦ If all modules were to be tested together, it may not be easy to determine
which module has the error
Fundamentals
Verification &
• Unit testing reduces debugging effort several folds
Validation ◦ Programmers carry out unit testing immediately after they complete the
Black Box Testing coding of a module
White Box Testing
Development
• Unit testing drives development in Test-Driven Development (TDD)
Testing
Regression
System
Test Plans
LMS
QES
Module 44
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44
• For a class attach a (test) unit (typically JUnit in Java or CPPUnit in C++))
that tests the class
Fundamentals
• D Language provides specific support for unit testing
Verification &
• Unit testing is a main feature of D
Validation • Unit testing in D
Black Box Testing
White Box Testing ◦ Unit tests can be added to a class - they are run upon program start-up
Development
◦ Aids in verifying that class implementations weren’t inadvertently broken
Testing
◦ Unit tests is a part of the code for a class
Regression ◦ Creating tests is a part of the development process
System
Test Plans
LMS
QES
Module 44
• After different modules of a system have been coded and unit tested:
◦ Modules are integrated in steps according to an integration plan
Fundamentals
◦ Partially integrated system is tested at each integration step
Verification &
• System Testing
Validation ◦ Validate a fully developed system against its requirements
Black Box Testing
White Box Testing
• Develop the integration plan by examining the structure chart:
Development
◦ Big bang approach
Testing ◦ Top-down approach
Regression ◦ Bottom-up approach
System
◦ Mixed approach
Test Plans
LMS
QES
Module 44
• Big Bang is the simplest integration testing approach
◦ All the modules are simply put together and tested
◦ This technique is used only for very small systems
◦ If an error is found:
Fundamentals ▷ It is very difficult to localize the error
Verification & ▷ The error may potentially belong to any of the modules being
Validation integrated
Black Box Testing
White Box Testing
◦ Debugging errors found during big bang integration testing are very
expensive to fix
Development
Testing
• Bottom-up Integration Testing Integrate and test the bottom level modules
Regression first. A disadvantage of bottom-up testing:
System
◦ when the system is made up of a large number of small subsystems
Test Plans ◦ This extreme case corresponds to the big bang approach.
LMS
QES
• Top-down Integration Testing Top-down integration testing starts with the
main routine
◦ and one or two subordinate routines in the system
◦ After the top-level ’skeleton’ has been tested
▷ immediate subordinate modules of the ’skeleton’ are combined with it
and tested
• Mixed Integration Testing Mixed (or sandwiched) integration testing
◦ Uses both top-down and bottom-up testing approaches
◦ Most common approach
CS20202: Software Engineering 82
Integration Testing
Module 44
• In top-down approach
◦ testing waits till all top-level modules are coded and unit tested
• In bottom-up approach
Fundamentals ◦ testing can start only after bottom level modules are ready
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES
Module 44
Fundamentals
Verification &
Validation
Black Box Testing
White Box Testing
Development
Testing
Regression
System
Test Plans
LMS
QES