Software Engineering Lec10
Software Engineering Lec10
Software Testing
Topics covered
l Introduction
l Validation vs verification
l Software testing model
l Development testing
l Release testing
l Requirements-based testing
l Scenario testing
l Performance testing
l User testing
l Conclusion
Software Testing
l Software Testing is intended to
• Show that a program does what it is intended to do and
• Discover program defects before it is put into use
l The testing process has tow goals
• To demonstrate to the developer and the customer that the
software meets requirements (Validation Testing )
• To discover situations in which the behavior of the software is
incorrect, undesirable or does not conform to its specification
(Defect testing)
• Example : System crashes, unwanted interactions with other
systems, incorrect computations and data corruptions
Validation & Verification
l Testing is part of a broader process of software verification and
validation
l Barry Boehm, a pioneer of software engineering, succinctly the
difference between validation and verification
• Validation : Are we building the right product?
• Verification: Are we building the product right ?
l Verification vs Validation
• The aim of verification is to check that the software meets its stated
functional and non-functional requirements
• The aim of validation is to ensure that the software meets the
customer’s expectations
l Software testing, verification and validation process may involve
software inspections and reviews
l Inspections and reviews analyze and check the system requirements,
design models, the source code and even proposed system tests
Test Cases
l Test cases
• These are specifications of the inputs to the test and the expected
output from the system plus a statement of what is being tested
l Testing is expensive and time consuming, it is important that
we choose effective unit test case
• Test cases should show the component that you are testing and
what it is supposed to do
• If there are defects in the component, these should be revealed
by test cases
l Example
• if the test scenario is “Validate the Admin login functionality” –
This would yield in 3 test cases (or conditions) –
• Login (successful),
• Login-unsuccessful when incorrect username is entered,
• Login-unsuccessful when incorrect password is entered.
• Each test case would in turn have steps to address how we can check a
particular test condition is satisfied or not.
Model of software testing process