0% found this document useful (0 votes)
4 views

STLC

The document outlines the syllabus for the Software Testing and Automation course (CCS366) at KGiSL Institute of Technology, detailing the foundations of software testing, the Software Testing Life Cycle (STLC), and key concepts such as verification and validation. It emphasizes the importance of structured testing processes to uncover bugs early in development, ensuring software reliability and safety. Additionally, it covers various testing methodologies, program correctness, and the distinction between reliability and safety in software systems.

Uploaded by

jayashree.s
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

STLC

The document outlines the syllabus for the Software Testing and Automation course (CCS366) at KGiSL Institute of Technology, detailing the foundations of software testing, the Software Testing Life Cycle (STLC), and key concepts such as verification and validation. It emphasizes the importance of structured testing processes to uncover bugs early in development, ensuring software reliability and safety. Additionally, it covers various testing methodologies, program correctness, and the distinction between reliability and safety in software systems.

Uploaded by

jayashree.s
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

KGiSL Institute of Technology

(Approved by AICTE, New Delhi; Affiliated to Anna University, Chennai)


Recognized by UGC, Accredited by NBA (IT)
365, KGiSL Campus, Thudiyalur Road, Saravanampatti, Coimbatore – 641035.

Department of Computer Science and Engineering

Name of the Faculty : Ms. A.Suganthi

Subject Name & Code : CCS366/ Software Testing and Automation

Branch & Department : Computer Science and Engineering

Year & Semester : III / VI

Academic Year :2024-25


Syllabus
UNIT I FOUNDATIONS OF SOFTWARE TESTING
Why do we test Software?, Black-Box Testing and White-Box
Testing, Software Testing Life Cycle, V-model of Software Testing,
Program Correctness and Verification, Reliability versus Safety,
Failures, Errors and Faults (Defects), Software Testing Principles,
Program Inspections, Stages of Testing: Unit Testing, Integration
Testing, System Testing
Course Outcome

CO1: Understand the basic concepts of software testing and the


need for software testing K2 LEVEL

CCS366/STA/III CSE/VI SEM/KG-KiTE


Software Testing Life Cycle
• Software testing as a process, like SDLC, there is need for a well-
defined series of steps to ensure successful software testing.
• The testing process divided into a well-defined sequence of steps
is termed as software testing life cycle (STLC).
• More number of bugs will be uncovered(saving time and effort)
• The major contribution of STLC is to involve the testers at early
stages of development. This has a significant benefit in the project
schedule and cost.

CCS366/STA/III CSE/VI SEM/KG-KiTE


Software Testing Life Cycle

CCS366/STA/III CSE/VI SEM/KG-KiTE


STLC
• Test Planning
• Test Design
• Test Execution

CCS366/STA/III CSE/VI SEM/KG-KiTE


STLC
• Test Planning

Activities during test planning: Activities are performed after analysis


• Defining the test strategy. • Develop a test case format.
• Estimate the number of test cases, their • Develop test case plans according to
duration, and cost. every phase of SDLC.
• Plan the resources like the manpower to • Identify test cases to be automated (if
test, tools required, documents required. applicable).
• Identifying areas of risks. • Prioritize the test cases according to
• Defining the test completion criteria. their importance and criticality.
• Identification of methodologies, • Define areas of stress and performance
techniques, and tools for various test cases. testing.
• Identifying reporting procedures, bug • Plan the test cycles required for
classification, databases for testing, bug regression testing.
severity levels, and project metrics.
CCS366/STA/III CSE/VI SEM/KG-KiTE
STLC
Test Design

(1) Determining the test objectives and their prioritization


Preparing list of items to be tested
Mapping items to test cases
Selection of test case design techniques(Black-box or white-box)
CCS366/STA/III CSE/VI SEM/KG-KiTE
STLC
Test Design
(2)Creating test cases and test data
(3)Setting up the test environment and supporting tools
(4)Creating test procedure specification

CCS366/STA/III CSE/VI SEM/KG-KiTE


STLC
• Test Execution

CCS366/STA/III CSE/VI SEM/KG-KiTE


Verification & Validation
• Verification refers to the set of activities that ensures correct
implementation of functions in a software. Check on every sub-task to
ensure that the developer are working in the right direction.
• Validation is a very general term to test the software as a whole in
conformance with customer expectations.
• After the sub-tasks have been completed and merged, the entire task is
checked to ensure the required task goals have been achieved. This is
validation.
• Verification is ‘Are we building the product right?’
• Validation is ‘Are we building the right product?’

CCS366/STA/III CSE/VI SEM/KG-KiTE


• Text execution
• Post-Execution/Test Review
Understanding the bug
Reproducing the bug
Analysing the nature and cause of the bug

• Finally,
Reliability analysis
Coverage analysis
Overall defect analysis

CCS366/STA/III CSE/VI SEM/KG-KiTE


Testing Life Cycle Model
• Verification and validation (V&V) are the building blocks of a testing
process.
• V&V can be best understood when these are modeled in the testing
process. This model is known as the Testing Life Cycle Model.
• V-Testing Life Cycle Model

CCS366/STA/III CSE/VI SEM/KG-KiTE


V-Testing Life Cycle Model
• As the development team attempts to implement the software, the testing
team concurrently starts checking the software.

CCS366/STA/III CSE/VI SEM/KG-KiTE


Program Correctness and
Verification
• The focus of software testing is to run the candidate program on
selected input data and check whether the program behaves correctly
with respect to its specification.
• The behavior of the program can be analyzed only if we know what is
a correct behavior; hence the study of correctness is an integral part
of software testing
• The study of program correctness leads to analyze candidate
programs at arbitrary levels of granularity.
• Hence the skills that we develop as we try to prove program
correctness enable us to be better/more effective testers.

CCS366/STA/III CSE/VI SEM/KG-KiTE


Program Correctness
a) Partial Correctness
• A program is partially correct if, whenever it terminates, the output
meets the required specification. However, it does not guarantee
termination.
b) Total Correctness
• A program is totally correct if it is both partially correct and
guaranteed to terminate.
c) Functional Correctness
• This means the program produces the correct output for every valid
input as specified in its requirements.
CCS366/STA/III CSE/VI SEM/KG-KiTE
Program Verification
• Program verification is the process of proving or ensuring that a program
adheres to its specification
a) Formal Verification
• Formal verification uses mathematical proofs to ensure program
correctness. Techniques include:
• Hoare Logic: Uses preconditions and post conditions to prove
correctness.
• Model Checking: Verifies program properties by exploring all possible
states.
• Theorem Proving: Uses logic-based proof assistants to prove
correctness.
CCS366/STA/III CSE/VI SEM/KG-KiTE
Program Verification
b) Testing and Debugging
• Verification is also done through software testing, which includes:
• Unit Testing: Testing individual components.
• Integration Testing: Ensuring multiple components work together.
• System Testing: Evaluating the complete system.
• Regression Testing: Checking that new changes don’t introduce errors.
c) Code Reviews and Static Analysis
• Static Analysis: Examining code without executing it to find potential
errors.
• Peer Reviews: Manual checking of code by developers.
CCS366/STA/III CSE/VI SEM/KG-KiTE
Reliability versus Safety
• Reliability refers to the ability of a software system to perform its
intended function consistently and correctly over time and under
expected conditions.
• Key Aspects of Reliability To test reliability
Consistency  Load Testing
Fault Tolerance  Stress Testing
Mean Time Between Failures (MTBF)  Endurance Testing
Scalability  Regression Testing

CCS366/STA/III CSE/VI SEM/KG-KiTE


Reliability versus Safety
• Safety in software testing refers to the ability of a system to prevent
harm to people, the environment, or assets in case of failures.

• Key Aspects of Safety To test the Safety:


Hazard Analysis  Failure Mode and Effects Analysis
Fail-Safe Mechanisms (FMEA)
 Fault Injection Testing
Redundancy & Backup
 Safety-Critical Test Cases
Compliance with Safety Standards
 Boundary Testing

CCS366/STA/III CSE/VI SEM/KG-KiTE

You might also like