Introduction to Software Testing - Week 1-2
10 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

Which of the following statements correctly defines software testing?

  • It involves predicting system behavior based on components.
  • It verifies that no errors are present in a program.
  • It is the process of finding and fixing bugs in development.
  • It establishes that a program performs its intended functions correctly. (correct)
  • Developers are advised to test their own programs to ensure accuracy.

    False

    To avoid errors in software development, it is important to utilize ______________ techniques.

    self-checking

    What principle indicates that the probability of locating more errors in a module is proportional to the number of errors already found?

    <p>Error concentration principle</p> Signup and view all the answers

    Match the following levels of testing with their definitions:

    <p>Unit Testing = Testing individual components for correctness Integration Testing = Testing combined parts to ensure they work together System Testing = Testing the complete and integrated software product Acceptance Testing = Testing to validate the software meets business requirements</p> Signup and view all the answers

    What is the primary role of software testing?

    <p>To execute a work product with the intent to find a defect</p> Signup and view all the answers

    Debugging is the process of finding faults in the application under test.

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

    List one of the five distinct levels of testing.

    <p>Debug, Demonstrate, Verify, Validate (any one of these is correct)</p> Signup and view all the answers

    The formal process of software testing involves a ______ team specialized in quality assurance.

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

    Match the following levels of testing with their definitions:

    <p>Debug = Successful correction of a failure Demonstrate = Showing that major features work with typical input Verify = Finding as many faults in the application under test as possible Validate = Finding as many faults in requirements, design, and AUT</p> Signup and view all the answers

    Study Notes

    Software Testing Overview

    • Software quality assurance (SQA) controls the quality of software products through structured processes.
    • Specialized testing teams carry out formal testing, typically at the end of the development phase.
    • Testing is defined as executing a product to identify defects.
    • Key attributes include:
      • A formal process.
      • Involvement of a specialized testing unit.
      • Running programs on computers to evaluate performance.
      • Adhering to approved testing procedures and test cases.

    Evolution of Software Testing

    • Evolved from simple program checks to comprehensive practices covering the software life-cycle.
    • Five distinct levels of testing:
      • Debug: Correcting identified failures.
      • Demonstrate: Showcasing major features with standard inputs.
      • Verify: Identifying as many faults in the Application Under Test (AUT) as possible.
      • Validate: Identifying faults in requirements, design, and AUT.
      • Prevent: Avoiding development errors through techniques such as "test before design."

    Misconceptions About Testing

    • Testing does not primarily aim to demonstrate the absence of errors.
    • It does not merely show that a program correctly performs its intended functions.
    • Establishing confidence in program functionality is a byproduct of thorough testing.

    Importance of Testing

    • Competent developers are not infallible; requirements may have unforeseen implications.
    • System behavior may not be predictable from component specifications.
    • Various programming languages, user interfaces, and operating systems can contain bugs that lead to failures.
    • Trustworthiness of reusable classes and objects is essential for reliability.

    Software Testing Life Cycle (STLC)

    • Following basic principles enhances testing effectiveness:
      • Specify expected outcomes for each test case.
      • Developers should not conduct tests on their own programs.
      • Thoroughly inspect all test results.
      • Create test cases for invalid or unexpected production conditions.
      • Test for unintended behaviors as well as intended functions.
      • Avoid creating disposable test cases unless the program itself is disposable.
      • Plan for the possibility of errors being present.

    Test Automation

    • Test automation involves creating software to facilitate testing processes.
    • Automates manual testing, enhancing efficiency and reducing costs.
    • Automated testing tools vary in their quality, methodology, and user-friendliness.

    Manual Testing

    • Primarily used for documentation, producing test guides, and measuring results.
    • More time-consuming and costly compared to automated testing.

    Early Software Testing Tools

    • Mothora: Automated mutation testing tool-set for creating and executing test cases, measuring adequacy, and bug tracking.
    • NuMega’s Bounds Checker & Rational’s Purify: Tools for runtime checking to prevent memory leaks and pointer issues.
    • Ballista: Tool for robustness testing, providing quantitative assessments across different operating systems.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    DOC-20240818-WA0005..pdf

    Description

    This quiz introduces the fundamentals of software testing and quality assurance. It covers key concepts, processes, and the role of specialized testing teams in ensuring software product quality. Perfect for beginners in software application testing.

    More Like This

    Use Quizgecko on...
    Browser
    Browser