TA Lecture-1 (Introduction To Software Testing)
TA Lecture-1 (Introduction To Software Testing)
TA Lecture-1 (Introduction To Software Testing)
• Practically, inputs are more than two and size is also more than 8
bits. We have also not considered invalid inputs where so many
combinations are possible.
• Loss of time
• Injury or death
Software Testing Terms
• Error
• Mistake
• Bug
• Fault
• Failure
• Test
• Test Case
• Test Suite
• Verification
• Validation
Error, Mistake, Bug, Fault and Failure
• People make errors. A good synonym is mistake. This may be
a syntax error or misunderstanding of specifications.
Sometimes, there are logical errors.
• When developers make mistakes while coding, we call these
mistakes “bugs”.
• A fault is the representation of an error, where representation
is the mode of expression, such as narrative text, data flow
diagrams, ER diagrams, source code etc. Defect is a good
synonym for fault.
• A failure occurs when a fault executes. A particular fault may
cause different failures, depending on how it has been
exercised.
Test, Test Case and Test Suite
• Test and Test case terms are used interchangeably. In practice, both
are same and are treated as synonyms. Test case describes an input
description and an expected output description.
Test Case ID
Section-I Section-II
(Before Execution) (After Execution)
Purpose : Execution History:
Pre condition: (If any) Result:
Inputs: If fails, any possible reason (Optional)
Expected Outputs: Any other observation:
Post conditions: Any suggestion:
Written by: Run by:
Date: Date:
• The set of test cases is called a test suite. Hence any combination of
test cases may generate a test suite.
Verification and Validation
• Verification: The process of proving the programs correctness.
– Verification answers the question: Am I building the product right?
Verification Validation
Product meets the given Product meets the customer
requirements or not? needs or not?
Requirements Analysis 3%
Specification 3%
Design 5%
Coding 7%
15%
Testing
(should be > 50%)
It is taken as the
Relationship It is taken as the successor
predecessor
• Identifying any potential risks or issues that may impact the testing
process.
2. Test Planning
• Identifying the testing objectives and scope.
• Developing a test strategy: selecting the testing methods and
techniques that will be used.
• Identifying the testing environment and resources needed.
• Identifying the test cases that will be executed and the test
data that will be used.
• Estimating the time and cost required for testing.
• Identifying the test deliverables and milestones.
• Assigning roles and responsibilities to the testing team.
• Reviewing and approving the test plan.
3. Test Designing & Development
• Identifying the test cases that will be developed.
• Writing test cases that are clear, concise, and easy to understand.
• Creating test data and test scenarios that will be used in the test
cases.
• Identifying the expected results for each test case.
• Reviewing and validating the test cases.
• Updating the requirement traceability matrix (RTM) to map
requirements to test cases.
• Types:
1. Specification Based Technique
2. Structure Based Technique
3. Experience Based Technique
4. Test Environment Setup
• Test environment setup is a vital part of the STLC.
• This is independent activity and can be started along with test case
development.
• Any defects or issues that are found during test execution are
logged in a defect tracking system.
• Any defects that are identified during test execution are retested to
ensure that they have been fixed correctly.
• All defects that were identified during testing are tracked and
managed until they are resolved.
• The test environment is cleaned up, and all test data and test
artifacts are archived.