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.
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 ratings0% 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.
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
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
The Software Test Engineer's Handbook, 2nd Edition: A Study Guide for the ISTQB Test Analyst and Technical Test Analyst Advanced Level Certificates 2012