Software Testing Chapter 6
31 Questions
1 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 intent of program testing?

  • To improve the program's design
  • To verify the code quality
  • To showcase the program to stakeholders
  • To discover program defects before use (correct)
  • What distinguishes validation testing from defect testing?

  • Validation testing is only done after deployment, while defect testing is pre-deployment.
  • Validation testing uses expected use cases, while defect testing uses obscure test cases. (correct)
  • Validation testing assesses design integrity, while defect testing focuses on functionality.
  • Validation testing checks for incorrect behavior, while defect testing checks for compliance.
  • Which of the following is NOT a goal of program testing?

  • To improve user experience (correct)
  • To uncover defects in the software
  • To demonstrate the software's compliance with requirements
  • To ensure the software can handle unexpected situations
  • What must be tested for custom software according to the testing goals?

    <p>At least one test for every requirement in the requirements document</p> Signup and view all the answers

    What does defect testing primarily focus on?

    <p>Detecting undesirable system behavior</p> Signup and view all the answers

    Which technique is included in the verification and validation process along with testing?

    <p>Static validation techniques</p> Signup and view all the answers

    What aspect does program testing aim to reveal about software performance?

    <p>It reveals the presence of errors but NOT their absence.</p> Signup and view all the answers

    What is a key outcome expected from successful validation testing?

    <p>A demonstration of operation as intended</p> Signup and view all the answers

    What is the primary goal of defect testing?

    <p>To discover faults or defects in the software.</p> Signup and view all the answers

    What does verification assess in software development?

    <p>If the product is built correctly according to specifications.</p> Signup and view all the answers

    Which type of fault occurs during the execution of a program?

    <p>Runtime Faults</p> Signup and view all the answers

    Why might some users have low expectations for certain software types?

    <p>Because of historical performance and reliability.</p> Signup and view all the answers

    What is a significant disadvantage of testing during the software development process?

    <p>It may hide other errors that are present.</p> Signup and view all the answers

    Which of the following activities can software inspections NOT be applied to?

    <p>System execution testing</p> Signup and view all the answers

    What is the main purpose of a test case?

    <p>To provide a specific set of instructions to test a software aspect</p> Signup and view all the answers

    What is the primary purpose of validation in software testing?

    <p>To ensure the software operates as intended by users.</p> Signup and view all the answers

    Which aspect cannot be verified through inspections?

    <p>Performance characteristics</p> Signup and view all the answers

    What type of fault arises from mistakes in the code syntax?

    <p>Syntax Faults</p> Signup and view all the answers

    What does a test plan primarily outline?

    <p>The overall strategy and scope of testing activities</p> Signup and view all the answers

    What is the significance of deadlines in a test plan?

    <p>They ensure the testing process is organized and time-bound</p> Signup and view all the answers

    What type of testing takes place during the development phase?

    <p>Development testing</p> Signup and view all the answers

    Which statement about inspections is true?

    <p>Inspections can take place on incomplete versions of a system.</p> Signup and view all the answers

    What is a limitation of inspections compared to testing?

    <p>Inspections cannot assess user interactions.</p> Signup and view all the answers

    What is a primary function of test harnesses?

    <p>To test parts of a system that are incomplete</p> Signup and view all the answers

    Which type of testing is conducted in the user's environment with a nearly finished product?

    <p>Beta Testing</p> Signup and view all the answers

    What aspect of user testing helps identify issues that may not be captured in a controlled environment?

    <p>Usability Testing</p> Signup and view all the answers

    Which of the following is a primary step in requirements-based testing?

    <p>Identify requirements from the specification</p> Signup and view all the answers

    What is the significance of defining testing policies?

    <p>They help in determining required system test coverage</p> Signup and view all the answers

    Which testing strategy aims to confirm that the software meets user needs and is ready for deployment?

    <p>Acceptance Testing</p> Signup and view all the answers

    What does general testing guidelines suggest regarding input handling?

    <p>Inputs that force the system to generate error messages should be chosen</p> Signup and view all the answers

    What can testing demonstrate about a software program?

    <p>The presence of certain bugs</p> Signup and view all the answers

    Study Notes

    Chapter 6 - Introduction to Software Testing

    • Software testing aims to demonstrate that a program functions as intended and to find defects before deployment.
    • Testing involves executing the program with artificial data to check results for errors, anomalies, and non-functional attributes.
    • Testing reveals the presence of errors, but not their absence.
    • Testing is part of verification and validation, including static validation techniques.

    Program Testing Goals

    • Demonstrate to developers and customers that the software meets requirements.
    • For custom software, one test per requirement is needed in the requirement document. For generic software, tests for all features and combinations are needed.
    • Discover situations in which software behavior is incorrect, undesirable, or doesn't match specifications.
    • Defect testing focuses on undesirable behaviors like crashes, incorrect computations, and data corruption.

    Validation and Defect Testing

    • Validation testing ensures the system performs correctly based on expected use.
    • Defect testing, also called failure-oriented testing, uses test cases to uncover defects and doesn't need to reflect normal system use, rather, it aims to expose failures.

    Testing Process Goals

    • Validation testing demonstrates software meets its requirements; a successful test indicates intended operation.
    • Defect testing finds software faults where behavior is incorrect or doesn't meet specifications; a successful test reveals a system deficiency.

    An Input-Output Model of Program Testing

    • Input test data leads to output test results.
    • Inputs can lead to anomalous system behavior, while outputs expose defects.

    Verification vs. Validation

    • Verification: "Are we building the product right?" Does the software conform to its specifications?
    • Validation: "Are we building the right product?" Does the software meet the user's needs?

    V & V Confidence

    • V&V (Verification and Validation) aims to establish confidence that the system fits its purpose, depending on system purpose, user expectations, and marketing environment. Software criticality impacts confidence levels. User expectations may be low for certain kinds of software. Getting a product to market quickly sometimes outweighs finding defects.

    What is a Fault?

    • A fault (or bug) is an error in the software that causes unexpected or incorrect behavior.
    • Types of faults: Syntax errors (in the code's grammar), Logic errors (miscalculations), Runtime errors (errors during execution)

    Inspections and Testing

    • Software inspections analyze static system representations (requirements, design) to identify problems. Often supplemented by tools analyzing documents and code.
    • Software testing exercises and observes the system's operational behavior using test data.

    Software Inspections

    • Involve people examining the source code to detect anomalies and faults, without needing to run the system. Useful before implementation.
    • Can be applied to any system representation (e.g., requirements, design, configuration data, testing data).
    • Effective techniques for uncovering program errors.

    Advantages of Inspections

    • Errors can mask others during testing; inspections, being static, avoid these interactions.
    • Incomplete systems can be inspected without extra costs (no need for test harnesses).
    • Inspections can detect broader quality attributes, like compliance with standards, portability, and maintainability.
    • Inspections and testing are complementary, not opposing techniques, and both are employed during the verification and validation (V&V) process.

    A Model of the Software Testing Process

    • A model illustrating the sequence: design test cases, prepare test data, run program, compare results, generate reports.

    What is a Test Case?

    • A specific set of instructions or conditions used to test a software application aspect. Identifies specific defects. Serves as documentation for future testing and debugging.
    • Describes steps and expected behavior in a successful run.

    What is a Test Plan?

    • A document outlining the overall strategy and scope for testing a software project. Serves as a guide for the process. Includes tools, team members, steps, and deadlines to keep testing properly aligned with project deadlines.

    Stages of Testing

    • Development testing: Involves testing during development to identify and fix bugs or defects. (Unit, Integration, System)
    • Release testing: A separate team tests a complete software version before delivery.
    • User testing: Users or potential users test the software in their own environment. (Alpha, Beta, Acceptance)

    Development Testing

    • Unit testing: Assesses individual components or modules.
    • Integration testing: Ensures modules work together well.
    • System testing: Checks behavior of the entire system.

    Release Testing

    • Conducted by a separate team on a complete software version.
    • Ensures all specified features, functionality, and performance requirements are upheld.

    User Testing

    • Done in the user's real-world environment; conducted by users or potential users.
    • Alpha Testing: Testing at the developer's site, with user involvement.
    • Beta Testing: Testing in the users' environment, with a nearly final product.
    • Acceptance Testing: Users confirm if the product meets their needs.

    General Testing Guidelines

    • Provide inputs to create and check all error messages.
    • Design inputs that cause overflow of input buffers.
    • Repeat the same input or input series several times.
    • Force invalid outputs from the system.
    • Force computation outputs to be too large or too small.

    Testing Policies

    • Exhaustive system testing is impossible, so testing policies are developed to define desired test coverage.

    Examples of testing policies

    • Test all system functions accessed through menus.
    • Test combinations of functions within the same menu (e.g., menu functions such as text formatting).
    • If user input is necessary, then functions must tested with both correct and incorrect data.

    Requirements-Based Testing

    • Focuses on the system's requirements for each individual requirement to generate test cases to demonstrate expected behavior.

    Key Points

    • Testing can only show errors; it cannot prove absence of errors; this is often highlighted in a testing summary. System testing should be conducted by a group separate from the development team.
    • Deliberately "break" the software using experience and guidelines, and implement automated tests wherever possible.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    Explore the fundamentals of software testing in Chapter 6, which covers testing goals, defect detection, and validation techniques. Understand how testing ensures that software meets requirements and identify common defects before deployment. This chapter is essential for developers and quality assurance professionals alike.

    More Like This

    Use Quizgecko on...
    Browser
    Browser