Software Quality and Testing Overview
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 structural testing?

  • To analyze the requirements specification
  • To examine the internal code structure
  • To test as much of the program as possible (correct)
  • To ensure the software meets user requirements
  • Which of the following best defines a path in the context of a directed graph?

  • A loop that alters the flow of control
  • A route from the start to the end of the program (correct)
  • A connection between two nodes
  • The total number of nodes in the graph
  • What does test coverage refer to in testing?

  • The time taken to run the test cases
  • The percentage of defects found in the software
  • The number of test cases executed
  • The minimal set of test cases that meet coverage criteria (correct)
  • What describes statement testing in software testing?

    <p>Executing every source statement in the software at least once</p> Signup and view all the answers

    Why is it necessary to justify the use of a testing technique?

    <p>To accommodate the inherent flaws of the technique</p> Signup and view all the answers

    What is the primary purpose of software testing?

    <p>To evaluate and verify that software fulfills its pre-determined purpose</p> Signup and view all the answers

    Which term refers to the observed departure of software from its expected behavior?

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

    What does a 'good test case' provide in software testing?

    <p>High probability of detecting undiscovered errors</p> Signup and view all the answers

    How is structural (white-box) testing defined?

    <p>Testing derived from analysis of the internal code structure</p> Signup and view all the answers

    Which of the following best describes a fault in software?

    <p>A mistake made by the developer that may cause failures</p> Signup and view all the answers

    What is included in a test plan?

    <p>Responsibilities and the test approach</p> Signup and view all the answers

    What is the main reason why complete testing of software is not possible?

    <p>You cannot test everything; all testing is sampling</p> Signup and view all the answers

    What does the term 'reviewing' denote in the context of software quality assurance?

    <p>Static examination of an output</p> Signup and view all the answers

    What does the acronym d-u pair stand for in data flow testing?

    <p>Definition-use pair</p> Signup and view all the answers

    What is the main advantage of data flow testing?

    <p>It can identify variables that are declared but not used.</p> Signup and view all the answers

    What is a primary weakness of conventional data flow testing?

    <p>It does not address multiple paths between d-u pairs.</p> Signup and view all the answers

    Which of the following techniques derives test cases from requirements analysis?

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

    What does equivalence partitioning involve?

    <p>Identifying categories of inputs that a system treats the same way.</p> Signup and view all the answers

    What should be included in boundary value analysis (BVA)?

    <p>Testing values at the edge and just within or outside the boundaries.</p> Signup and view all the answers

    What is the purpose of deallocating a variable before it is used?

    <p>To avoid memory leaks by freeing up resources.</p> Signup and view all the answers

    Which of the following is a key assumption when implementing equivalence partitioning?

    <p>All values from a partition are equal in their likelihood of revealing faults.</p> Signup and view all the answers

    What does branch testing primarily ensure in the design of test cases?

    <p>Each decision has both TRUE and FALSE outcomes executed at least once.</p> Signup and view all the answers

    In condition testing, how many tests are usually sufficient for three conditions?

    <p>Two tests covering all combinations.</p> Signup and view all the answers

    Which statement is true about decision/condition testing?

    <p>Both TRUE and FALSE outcomes of every decision and condition are executed at least once.</p> Signup and view all the answers

    What is the main goal of multiple condition testing?

    <p>To cover all possible combinations of TRUE and FALSE outcomes in each decision.</p> Signup and view all the answers

    Why is path testing important in software testing?

    <p>It ensures that every path through the code is executed at least once.</p> Signup and view all the answers

    What issue can arise with loops in program testing?

    <p>Each loop iteration represents a different path that must be tested.</p> Signup and view all the answers

    In data flow testing, what does 'd' stand for?

    <p>Definition.</p> Signup and view all the answers

    Which aspect is NOT typically covered by branch testing?

    <p>Verifying that all paths in the program are executed.</p> Signup and view all the answers

    Study Notes

    Software Quality and Testing

    • Critical awareness is essential for evaluating and assessing information, and making judgments supported by evidence.
    • Software is a set of instructions executed on a computer to achieve a specific purpose.
    • Software Testing is the process of evaluating if software meets its intended purpose.
    • Errors are mistakes made by people. They can lead to faults.
    • Faults are defects in software caused by errors. They can or cannot cause software to fail.
    • Failure happens when software deviates from its expected behavior, based on its intended purpose.
    • Quality means software meets and exceeds requirements.

    Measures of Quality

    • External Quality: includes factors like functionality, reliability, usability, efficiency, maintainability, and portability.
    • Internal Quality: encompasses factors, such as suitability, maturity, accuracy, interoperability, fault tolerance, recoverability, understandability, learnability, operability, time behavior, analysability, changeability, adaptability, installability, resource stability, co-existence, security, attractiveness, utilisation, testability, and replaceability compliance. (These are different areas or metrics involved in assessing the quality of a software program).

    Testing and Reviews

    • A "good test case" is highly likely to find undiscovered software errors.
    • Testing and review are done at each stage of software development.
    • Testing (narrowly defined): is the dynamic execution of software towards the end of the development process.
    • Reviewing: examining an output to detect defects and is done early in the development process, often a static evaluation process.
    • Test plan: documents what's to be tested (features, etc.), stages of testing, test cases per stage, test environment(s), personnel, schedules, test tools, process for reporting and handling failures and regression testing.
    • Test data describes inputs, initial conditions, and expected outputs for testing.
    • Test case: part of software that needs to be tested, purpose of testing, should be written for invalid and unexpected input conditions.

    Stages of Testing

    • Unit testing: testing individual units or modules in isolation.
    • Integration testing: testing the interactions between different units or modules.
    • System testing: testing the complete system, including all modules or units.
    • Acceptance testing: user acceptance of software, potentially involving field trials and beta tests.
    • Regression testing: testing after changes or bug fixes, to ensure the existing functionality is maintained.

    Testing Techniques

    • Structural testing (white-box): tests based on software internal structure.
    • Functional testing (black-box): tests based on software requirements rather than its internal design.
    • Directed graph: node/edge diagram showing sequential statements/blocks of code.
    • Paths: unique routes from start to end in a program, including iterative loops and loops.
    • Test coverage: minimum set of test cases needed to satisfy the testing criteria.
    • Statement testing: ensuring that each source code statement is executed at least once.
    • Branch testing: ensuring both true and false outcomes for each decision point are tested.
    • Condition testing: ensuring each condition in a decision evaluates true and false. An if condition or loop condition should be both tested.
    • Multiple condition testing: checking all possible combinations of variables in conditions.
    • Path testing: testing all possible paths through the program.

    Data Flow Testing

    • Classifies variable occurrences (definition, use)
    • d-u pairs: design test cases to execute the definition-use of each variable

    Types of Testing (Further Details):

    • Equivalence partitioning: divides input values into groups with similar behavior.
    • Boundary value analysis: focuses on values at the boundaries (edges) of valid/invalid inputs.
    • Combinatorial testing: tests all possible combinations of input parameters.
    • Pairwise testing: tests combinations of two input variables at a time.
    • N-Way Testing: testing all possible combinations of multiple input parameters, likely to be impractical
    • Scenario testing: tests possible sequences of interactions or steps, often based on use-case diagrams
    • Error guessing testing: uses intuition to devise test cases.
    • Exploratory testing: tests are derived during the testing process based on observed behavior.

    Managing Software Quality

    • Effective testing is done by detail-oriented, patient, and skilled individuals.
    • Planning testing involves tasks such as defining testing stages, scheduling, and allocating resources.
    • Independent testing provides an objective view of the product, with skilled testers.
    • Testers as reviewers identify defects in requirements.
    • Software maintainability: ease of making changes, adding functionality, and correcting faults in the software.
    • Technical reviews are assessments of technical output.
    • Walkthroughs are reviews of code.
    • Fagan inspections are structured reviews to find defects.
    • Code Style involves using consistent layouts, comments, and naming standards.
    • Defect density is a measure of faults per unit of code, used to assess the quality of the software, and whether further testing is worthwhile.

    Managing Testing (Specific aspects)

    • What is supplied by testers and developers: Includes details about what was being tested, environment details, reported errors (inc description), reproducible steps to trigger symptoms, severity of the issue

    • Error seeding: Deliberately adding faults to software to see how well testing finds them.

    • Management of testing/problems: Use of problem reporting tools and processes for developers and testers to communicate.

    • Stopping testing: Determining when the level of testing is sufficient. This is usually a combination of defect density, time allocated, confidence in code, and cost considerations.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    This quiz covers the essential concepts of software quality and testing. It explores definitions of software, testing processes, and distinctions between errors, faults, and failures. Additionally, it discusses measures of quality, including both external and internal factors.

    More Like This

    Use Quizgecko on...
    Browser
    Browser