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 (A)</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 (B)</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 (B)</p> Signup and view all the answers

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

    <p>Failure (B)</p> Signup and view all the answers

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

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

    How is structural (white-box) testing defined?

    <p>Testing derived from analysis of the internal code structure (C)</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 (C)</p> Signup and view all the answers

    What is included in a test plan?

    <p>Responsibilities and the test approach (A)</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 (C)</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 (A)</p> Signup and view all the answers

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

    <p>Definition-use pair (D)</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. (D)</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. (A)</p> Signup and view all the answers

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

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

    What does equivalence partitioning involve?

    <p>Identifying categories of inputs that a system treats the same way. (B)</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. (D)</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. (A)</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. (D)</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. (C)</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. (A)</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. (C)</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. (B)</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. (D)</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. (C)</p> Signup and view all the answers

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

    <p>Definition. (D)</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. (D)</p> Signup and view all the answers

    Flashcards

    Software

    A list of instructions executed on a computer to achieve a specific goal.

    Software Testing

    The process of examining and validating if a software product meets its intended purpose.

    Errors

    Human mistakes that can lead to errors in software code.

    Faults

    Problems caused by errors in the software code.

    Signup and view all the flashcards

    Failure

    When software doesn't behave as expected.

    Signup and view all the flashcards

    Test Case

    A planned set of tests to execute, with documented input, output, and expected results.

    Signup and view all the flashcards

    Test Data

    The specific data used in each test, including input, initial conditions, and expected outcomes.

    Signup and view all the flashcards

    Structural Testing

    Analyzing the internal structure of software to design tests that cover all possible code paths.

    Signup and view all the flashcards

    Directed Graph (Control Flow)

    A visual representation of the program's flow of control, where nodes represent code segments and edges represent transitions between them.

    Signup and view all the flashcards

    Path (Control Flow)

    Every possible route through a directed graph, starting from the program's beginning and reaching its end. Loops (iterations) can create multiple paths for each loop iteration.

    Signup and view all the flashcards

    Test Coverage (Structural)

    A set of test cases that aim to cover as much of the program's structure as possible. This can include executing every line of code, reaching every decision point, or ensuring all possible paths are tested.

    Signup and view all the flashcards

    Statement Testing

    A testing technique that focuses on executing every line of code at least once. It ensures that all statements are covered, but doesn't necessarily test different execution paths or branches.

    Signup and view all the flashcards

    Functional (Black-box) Testing

    A set of test cases derived from the software's requirements specification, ensuring the software functions as intended. The internal code structure is not necessarily known.

    Signup and view all the flashcards

    Branch Testing

    A testing technique that ensures each decision point in a code block is executed with both TRUE and FALSE outcomes at least once.

    Signup and view all the flashcards

    Condition Testing

    A testing technique where each condition within a decision statement is tested with both TRUE and FALSE outcomes at least once.

    Signup and view all the flashcards

    Decision/Condition Testing

    Testing technique where each condition and decision in a program is tested at least once with both TRUE and FALSE outcomes.

    Signup and view all the flashcards

    Multiple Condition Testing

    A testing technique where all possible combinations of TRUE and FALSE outcomes for all conditions within a decision are tested at least once.

    Signup and view all the flashcards

    Path Testing

    A testing technique that aims to execute every possible path through a program at least once. A path refers to a unique sequence of instructions from the start to the end of the program.

    Signup and view all the flashcards

    Data Flow Testing (D)

    A testing technique that categorizes variables based on their role in a piece of code. "D" stands for "Definition" indicating where a variable is initially assigned a value.

    Signup and view all the flashcards

    What is a d-u pair in data flow testing?

    A data flow testing path is a pair of program statements: one defining a variable (d) and one using the variable (u).

    Signup and view all the flashcards

    How are test cases designed for data flow testing?

    Each test case should be designed to exercise at least one d-u pair for a specific variable. This ensures that the variable's definition and usage are tested.

    Signup and view all the flashcards

    What is data flow testing?

    Data flow testing focuses on analyzing how data is used within a program. The goal is to ensure that each variable is defined and used correctly within the code.

    Signup and view all the flashcards

    What are the strengths of data flow testing?

    Finding unused variables, variables used without being declared, variables defined multiple times before use, and problems with deallocating variables are common advantages.

    Signup and view all the flashcards

    What are the limitations of data flow testing?

    Data flow testing doesn't effectively handle more complex data structures like arrays, and it might miss issues if there are multiple paths between a d-u pair.

    Signup and view all the flashcards

    What is Equivalence Partitioning (EV)?

    Equivalence Partitioning (EV) divides input values into groups that the application processes similarly. Test cases are chosen from each partition for the same way the application processes the given input.

    Signup and view all the flashcards

    What is Boundary Value Analysis (BVA)?

    Boundary Value Analysis (BVA) tests values at the edges of each partition identified by Equivalence Partitioning. For example, if a partition is ages 0–18, BVA tests 0, 17, 18, and values just outside the range.

    Signup and view all the flashcards

    What is Functional Testing?

    Functional testing aims to verify that the software meets the requirements specified in the user documentation. It ensures the software performs according to intended functionality.

    Signup and view all the flashcards

    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

    Software Quality Assurance Overview
    40 questions
    Software Testing Unit 1: Quality Assurance
    29 questions
    Use Quizgecko on...
    Browser
    Browser