Software Testing Principles and Techniques
29 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is the primary goal of software testing?

  • To enhance the user experience
  • To find errors prior to delivery (correct)
  • To meet design specifications
  • To show the absence of errors
  • Exhaustive testing is possible in software development.

    False

    Name one of the characteristics that define a good test.

    High probability of finding an error

    The principle that states 80% of errors come from 20% of a program is known as the ________ principle.

    <p>pareto</p> Signup and view all the answers

    Match the roles of the testers to their characteristics:

    <p>Developer = Understands the system, tests gently, driven by delivery Independent Tester = Learns the system, attempts to break it, driven by quality</p> Signup and view all the answers

    What should all tests reflect according to general testing principles?

    <p>Customer requirements</p> Signup and view all the answers

    Independent testers are typically biased towards meeting delivery deadlines.

    <p>False</p> Signup and view all the answers

    What is one aspect of testability that ensures testing can be automated?

    <p>Controllability</p> Signup and view all the answers

    Which of the following best describes Black Box Testing?

    <p>Evaluating inputs and outputs without internal knowledge</p> Signup and view all the answers

    Black Box Testing requires knowledge of the internal workings of the software.

    <p>False</p> Signup and view all the answers

    What is Equivalence Partitioning in Black Box Testing?

    <p>It is a technique that divides input values into valid and invalid partitions to select representative values for testing.</p> Signup and view all the answers

    The methods used in Black Box Testing include __________, Boundary Value Analysis, and Cause Effect Graphing.

    <p>Equivalence Partitioning</p> Signup and view all the answers

    Which method is NOT a part of Black Box Testing?

    <p>Branch And Decision Coverage</p> Signup and view all the answers

    Match the following testing techniques with their categories:

    <p>Equivalence Partitioning = Black Box Testing Statement Coverage = White Box Testing Boundary Value Analysis = Black Box Testing Path Coverage = White Box Testing</p> Signup and view all the answers

    What is another name for White Box Testing?

    <p>Glass Box Testing</p> Signup and view all the answers

    What do we mean by 'Stability' in the context of test case design?

    <p>Stability refers to having few changes requested during testing.</p> Signup and view all the answers

    White Box Testing guarantees that all independent paths within a module have been exercised at least twice.

    <p>False</p> Signup and view all the answers

    White Box Testing focuses solely on the outputs of a software system.

    <p>False</p> Signup and view all the answers

    Who proposed the Basis Path Testing technique?

    <p>Tom Macabe</p> Signup and view all the answers

    White Box Testing uses the __________ structure of procedural design to derive test cases.

    <p>control</p> Signup and view all the answers

    Match the following aspects of White Box Testing with their descriptions:

    <p>Independent Paths = Paths executed during testing Logical Decisions = True and false sides exercised Loops = Boundaries and operational bounds exercised Internal Data Structures = Validity checks performed</p> Signup and view all the answers

    What does Boundary Value Analysis focus on in testing?

    <p>Input values at and around boundaries</p> Signup and view all the answers

    White Box Testing can guarantee a 100% correct program.

    <p>False</p> Signup and view all the answers

    What is the main purpose of Black Box Testing?

    <p>To test the functionality of the program without considering the internal structure.</p> Signup and view all the answers

    In Cause-Effect Graphing, identifying the cases is referred to as the ______.

    <p>input conditions</p> Signup and view all the answers

    Match the following testing types with their characteristics:

    <p>Black Box Testing = Focus on external functionality White Box Testing = Examine internal logical paths Boundary Value Analysis = Test at value boundaries Exhaustive Testing = Test all possible paths</p> Signup and view all the answers

    Which of the following statements is true regarding Exhaustive Testing?

    <p>The number of paths can be as high as $10^{14}$.</p> Signup and view all the answers

    Selective Testing involves testing all possible paths through the program.

    <p>False</p> Signup and view all the answers

    What combines attributes of both Black Box and White Box testing?

    <p>An integrated testing approach</p> Signup and view all the answers

    Study Notes

    Software Testing Techniques

    • Software testing is the process of exercising a program to find errors before it's released to users.
    • The goal of testing is to identify defects and ensure the software functions correctly according to specifications.
    • Testing focuses on discovering errors, but it cannot prove the absence of errors.
    • A good tester should approach testing with the mindset of trying to break the software.
    • Developers often have a preconceived notion that their software is perfect.
    • Software testing needs minimal effort and time.
    • Testing should be planned before the testing process begins.
    • The Pareto principle applies to software testing, with about 80% of errors originating from 20% of the program's paths.
    • Exhaustive testing is impossible; the number of possible paths through code is too large.
    • Testing should ideally be performed by a third-party independent tester, to ensure unbiased testing.

    Software Development Process

    • The software development process transforms an abstract concept into a tangible product.
    • Testing is an integral part of the process, aiming to break the software to identify issues.

    Software Testing Objectives

    • Identifying various error cases.
    • Minimizing testing effort and duration.
    • Confirming that software functions match specifications.

    Who Tests the Software?

    • Developers understand the system but test gently, focusing on delivering the software.
    • Independent testers have a different perspective and aim to actively break the system to find errors.
    • Independent testers are driven by quality, not delivery.

    What is a Good Test?

    • A good test has a high probability of finding an error.
    • A good test is not redundant. Each test should have a distinct purpose.
    • It's neither too simple, nor too complex.

    What Testing Shows

    • Testing reveals errors.
    • Testing verifies adherence to requirements.
    • Testing assesses performance.
    • Testing demonstrates the quality of the software.

    Testability

    • Operability: The software runs correctly during testing.
    • Observability: Results of tests are easily visible.
    • Controllability: Testing can be automated and optimized efficiently.
    • Decomposability: Testing can be focused on specific areas.
    • Simplicity: Simplifying complex architectures and logics for easier testing.
    • Stability: Minimizing changes during testing.
    • Understandability: The design of the software is easily understood.

    Test Case Design

    • Designing test cases is as challenging as designing the software itself, requiring a specific approach.
    • Testing methods have evolved, aiming for a systematic approach that covers various aspects of the system, and guarantees the probability of error detection.

    Software Testing Methods

    • White-box methods focus on the internal structure of the software.
    • Black-box methods focus on the input and output of the software without looking at its internal structure.
    • The two methods can be combined for a more thorough approach.

    Black-Box Testing (Functional Testing)

    • Focuses on input and output, ignoring internal program details.
    • Examples include:
      • Equivalence Partitioning
      • Boundary Value Analysis
      • Cause-Effect Graphing

    Black-Box Testing – Methods

    • Equivalence Partitioning: Dividing input values into valid and invalid partitions for representative testing.
    • Boundary Value Analysis: Analyzing inputs around boundary values (critical values) to discover errors.
    • Cause-Effect Graphing: Visual representation of causes and effects helps in test case development.

    Black-Box Testing

    • Derived test cases must satisfy two essential criteria.
      • Reduce the number of additional test cases needed, based on reasonable testing practices
      • Identify classes of errors, rather than specific errors from individual test cases.

    White-Box Testing (Structural Testing)

    • Focuses on internal structure of the software.
    • Examples include:
      • Coverage testing (Statement coverage, Branch coverage, Path coverage)

    White-Box Testing

    • Close examination of the program logic and procedural details.
    • Test cases are designed to exercise specific conditions and control structures.
    • Status of the program is checked at various points to check expected output.

    White Box Testing (Continued)

    • Exhaustive Testing is not achievable for all paths within a program because the possible paths are too large.
    • This requires selective testing instead for effective software testing.

    White-Box Testing - Types of Testing

    • Statement coverage: Ensure every line of code is executed at least once.
    • Branch or decision coverage: Make sure each decision (if-then-else, conditional) is examined for both its true and false cases.
    • Path coverage: Guarantees execution of every possible path in the software.

    Is White-Box Testing Enough for 100% Correct Software

    • No. Exhaustive testing of all possible program paths is not feasible.

    Exhaustive testing

    • Trying all possible paths in a program to ensure its correct behavior.
    • Not possible for most software because the number of potential program paths are practically too numerous to check.

    Selective Testing

    • Choosing a subset of test paths to thoroughly verify important parts of the software, based on a suitable strategy.

    Black Box Testing - Overview

    • Focuses on the software's functions without assessing internal structure.
    • Purposefully testing function input/output for defects, considering how the system reacts and the quality of output given the input.

    White Box Testing - Overview

    • Assess internal structures, procedural detail, and the logic within the software.
    • Testing various points to confirm the actual process aligns with the expected outcomes.

    Basis Path Testing

    • White-box testing technique developed by Tom McCabe.
    • Measures logical complexity of the program for test cases.
    • Test cases ensure execution of every statement at least once.

    White-Box Testing Goal

    • Ensure all statements and conditions within the software have been executed at least once.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Software Testing Techniques PDF

    Description

    Test your knowledge about the fundamentals of software testing with this quiz. Covering key concepts such as Black Box Testing, Equivalence Partitioning, and the characteristics of effective tests, this quiz will enhance your understanding of the testing landscape. Perfect for software development students and professionals.

    More Like This

    Use Quizgecko on...
    Browser
    Browser