Software Testing Overview
24 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 focus of system testing?

  • User interface design quality
  • Integration and interaction between components (correct)
  • Correctness of individual components
  • Documentation completeness

Which of the following best describes the nature of system testing?

  • It only tests newly developed components.
  • It is a collective process that may involve a separate testing team. (correct)
  • It is limited to performance testing of a system.
  • It is usually performed by individual developers.

What role do use-cases play in system testing?

  • They identify only the components that need testing.
  • They facilitate the testing of interactions between multiple components. (correct)
  • They represent individual component test cases.
  • They provide documentation for user interface guidelines.

Which of the following is NOT a typical testing policy?

<p>Ensuring all performance benchmarks are met (A)</p> Signup and view all the answers

How does test-driven development (TDD) influence the code development process?

<p>Tests are the primary drivers of code development, written before coding. (B)</p> Signup and view all the answers

What is a limitation of exhaustive system testing?

<p>It is time-consuming and often impractical. (A)</p> Signup and view all the answers

Which of the following statements about system testing is true?

<p>It tests the complete integrated system. (B)</p> Signup and view all the answers

During system testing, what is typically tested?

<p>Interactions between integrated components (C)</p> Signup and view all the answers

What is the primary requirement before moving on to the next increment in test-driven development?

<p>All related tests must pass successfully. (D)</p> Signup and view all the answers

Which of the following is a benefit of test-driven development?

<p>Every code segment has associated tests. (C)</p> Signup and view all the answers

What does regression testing primarily check for?

<p>To ensure changes haven't broken existing code. (C)</p> Signup and view all the answers

What is the main objective of release testing?

<p>To convince the supplier that the system is ready for deployment. (B)</p> Signup and view all the answers

In what way is simplified debugging a benefit of test-driven development?

<p>A failed test directly indicates the area of code needing modification. (A)</p> Signup and view all the answers

How does automated testing simplify regression testing?

<p>By enabling all tests to be re-run easily after changes. (A)</p> Signup and view all the answers

What does the term 'increment of functionality' refer to in test-driven development?

<p>A small, manageable unit of code to be developed. (C)</p> Signup and view all the answers

Which best describes how tests function as system documentation in test-driven development?

<p>Tests detail what the code should do effectively. (A)</p> Signup and view all the answers

What is the primary purpose of using partition testing?

<p>To categorize inputs that yield equivalent outcomes (D)</p> Signup and view all the answers

Which of the following is NOT a part of general testing guidelines?

<p>Select inputs randomly to ensure comprehensive coverage (C)</p> Signup and view all the answers

Which testing type focuses on testing individual objects and methods?

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

What is a key limitation of testing in software development?

<p>It cannot guarantee the absence of any remaining faults (A)</p> Signup and view all the answers

In guideline-based testing, test cases are chosen based on?

<p>Experience of common programmer errors (D)</p> Signup and view all the answers

What should be done when conducting testing of sequences?

<p>Include sequences of various lengths, including zero (D)</p> Signup and view all the answers

What role does system testing play in software development?

<p>Validates a partial or complete system's functionality (D)</p> Signup and view all the answers

When testing components, which input should especially be included?

<p>Abnormal inputs to ensure system stability (D)</p> Signup and view all the answers

Flashcards

System Testing

Testing the integrated system after components are combined.

System Testing Focus

Checking component compatibility and correct data transfer.

System Testing Approach

Testing integrated components, including reusable or off-the-shelf systems.

Use-Case Testing

Using use cases as a guide for system testing, focusing on interactions between components.

Signup and view all the flashcards

Testing Policies

Rules for what to test, to avoid testing everything.

Signup and view all the flashcards

Test Driven Development (TDD)

Software development approach where tests are written before the code.

Signup and view all the flashcards

TDD Code Creation

Incremental code development with corresponding tests for each increment.

Signup and view all the flashcards

System Testing Team

A dedicated team focusing on system testing without involvement from developers.

Signup and view all the flashcards

TDD Process

A software development approach where tests are written before any code implementation, then code is written to pass those tests.

Signup and view all the flashcards

TDD Increment

A small, self-contained piece of functionality that can be implemented and tested independently.

Signup and view all the flashcards

TDD Cycle

The iterative process of writing a test, running it (failing), implementing code to pass the test, and repeating for each new functionality.

Signup and view all the flashcards

Benefits of TDD

TDD offers advantages like improved code coverage, regression testing, simplified debugging and documentation.

Signup and view all the flashcards

Regression Testing

Testing the entire system after every code change to ensure that new changes haven't broken previously working functionality.

Signup and view all the flashcards

Release Testing

Testing a software release that is intended for external use to ensure it meets quality standards and is ready for deployment.

Signup and view all the flashcards

Release Testing Goal

To demonstrate that the software meets functional, performance, and dependability requirements for external use.

Signup and view all the flashcards

Regression Testing Benefits

Regression testing becomes efficient and straightforward with automated testing, allowing for frequent testing with minimal effort.

Signup and view all the flashcards

Abnormal Input Testing

Testing with unusual data to ensure the system handles unexpected situations gracefully and doesn't crash.

Signup and view all the flashcards

Equivalence Partitioning

Dividing inputs into groups where the system is expected to behave similarly for each member of a group.

Signup and view all the flashcards

Testing Guidelines

Rules and best practices to guide the creation of test cases.

Signup and view all the flashcards

Sequence Testing Guidelines

Guidelines for testing software with inputs that are sequences of values.

Signup and view all the flashcards

What are some general testing guidelines?

Include inputs causing error messages, input buffer overflows, repeated inputs, invalid outputs, and extreme computation results.

Signup and view all the flashcards

Testing's Limitations

Testing can only identify the presence of errors, not confirm their absence.

Signup and view all the flashcards

Who is responsible for Development Testing?

The software development team is responsible for testing during the development process.

Signup and view all the flashcards

Different Levels of Development Testing

Development testing includes unit testing (individual components), component testing (related groups), and system testing (complete or partial systems).

Signup and view all the flashcards

Study Notes

Software Testing Lecture Notes

  • Software testing aims to demonstrate a program's functionality and identify defects before deployment.
  • Testing involves executing the program with sample data and checking results for errors, anomalies, or issues with non-functional attributes.
  • Tests reveal the presence of errors, but not their absence.
  • Testing is a part of a broader verification and validation process, also including static validation techniques.

Program Testing Goals

  • Demonstrate to the developer and customer that the software meets its requirements.
    • Custom software requires at least one test for each requirement.
    • Generic software requires tests for all features and their combinations.
  • Discover situations where the software's behaviour is incorrect, undesirable, or doesn't conform to its specification.
    • Defect testing concentrates on finding undesirable system behaviour (e.g., crashes, incorrect computations, data corruption).

Validation and Defect Testing

  • Validation testing ensures the system performs correctly for its expected use cases.
  • Defect testing focuses on identifying defects, potentially using obscure test cases, not necessarily reflecting normal use.

Testing Process Goals

  • Validation testing ensures the software meets its requirements and functions as intended.
  • Defect testing aims to find faults or defects in the software where its behaviour is not compliant with the specifications.

Input-Output Model of Program Testing

  • Input data is processed by the system, which produces output results.
  • Anomalous behavior in the system is identified via outputs, revealing defects.

Verification vs Validation

  • Verification asks: "Are we building the product right?". The software must comply with the specification.
  • Validation asks: "Are we building the right product?". The software must do what the user needs.

V&V Confidence

  • The aim of verification and validation (V&V) is to establish confidence that the system is fit for purpose.
  • Confidence depends on the system's purpose, user expectations, and the marketing environment.
    • Critical software for an organization requires higher confidence levels.
    • Users may have low expectations for certain software types.
    • Faster market entry may override thorough defect detection.

Inspections and Testing

  • Software inspections analyze static system representations (e.g., requirements, design, code) to uncover problems.
  • Inspections may use tools to help identify defects.
  • Software testing evaluates a system by executing it with test data to observe its behavior.

Advantages of Inspections

  • Testing can mask some errors.
  • Static analysis avoids the need to handle intricate interactions amongst various error points.
  • Incomplete versions can be inspected without extra costs.
  • Inspections can identify quality attributes like compliance, portability, and maintainability.

Inspections and Testing - Complementary

  • Inspections and testing supplement each other, not oppose each other.
  • Both should be part of the V&V process.
  • Inspections check conformance to specifications, but not necessarily customer needs.
  • Inspections do not cover non-functional characteristics (like performance, or usability).

Software Testing Process Model

  • A systematic model defines and describes the steps for implementing testing on a system.
    • Design tests.
    • Prepare tests cases data.
    • Execute the tests against the system.
    • Compare results.
    • Prepare test reports

Stages of Testing

  • Development testing: Involves testing during development to find and fix bugs.
  • Release testing: A team independent from development tests a complete system (before release).
  • User testing: Users test the system in a real, end-user environment.

Development Testing

  • Primarily addresses the specific units and objects within a system, ensuring they function at the unit level.
    • Unit testing: Individual program units or object classes are tested; focuses on object functionality.
    • Component testing: Individual units are integrated to create composite components; focuses on component interfaces.
    • System testing: All components are integrated ensuring interactions work properly.

Unit Testing

  • Tests individual components in isolation.
  • A defect-detection process.
  • Units include functions, methods within an object, whole object classes, and composite components with defined interfaces to access their functionality.

Object Class Testing

  • Comprehensive test coverage needs testing all object operations, attributes and states.
  • Inheritance complexities can impact the ability to localize information necessary for thorough test design.

Weather Station Object Interface

  • Illustrates the methods and attributes of a weather station object (e.g., reportWeather, remoteControl).

Weather Station Testing

  • Test cases should cover actions like reportWeather, calibrate, test, start-up, and shutdown.
  • State models can help identify transition sequences and the corresponding events.

Automated Testing

  • Unit testing should be automated to streamline the process.
  • Utilize test automation frameworks (e.g., JUnit) to automate writing and running tests.
  • Frameworks often provide generic test classes that can be extended to create specific test cases, and often display results graphically.

Automated Test Components

  • Setup: Initializes the system with inputs and expected outputs for a test case.
  • Call: Executes the unit (e.g., object or method) under test.
  • Assertion: Compares the result with the expected output.

Unit Test Effectiveness

  • Test cases should demonstrate expected component behavior.
  • Tests should expose defects by revealing errors in component behaviour.
    • Tests reflecting normal operations and those based on experience of common problems.

Testing Strategies

  • Partition testing: Groups inputs for similar processing.
  • Guideline-based testing: Uses testing guidelines to select specific test cases and to identify typical programmer errors.

Partition Testing

  • Groups data with similar behavior or attributes together.
    • The data groups are referred to as equivalence partitions.

Equivalence Partitioning

  • Divides input/output values into partitions, where similar behavior for each member is anticipated.
  • Tests need to be chosen from each partition.

Testing Guidelines (sequences)

  • Test with sequences of varying size.
  • Test with sequences with specific elements that need access (like start, middle, end).
  • Test with empty (zero-length) sequences.

General Testing Guidelines

  • Force various error messages.
  • Cause input buffers to overflow.
  • Repeat the same or similar input many times.
  • Force generation of invalid outputs.
  • Generate computational results far beyond acceptable ranges.

Key Points

  • Testing demonstrates error presence but doesn't prove absence of all errors.
  • Responsibility of testing a system belongs to a group/team separate to development.
  • Testing includes unit testing, component testing, and system testing.

Release Testing

  • A testing process for a system released outside the development team.
  • A critical aim is to prove sufficient quality for actual use.
  • Usually a black-box testing process (derived from system specifications).

Release testing and System testing

  • Release testing is a form of system testing.
  • An independent testing team is often employed for release testing.
  • Distinct from system testing, release testing emphasizes validation to ensure the system's readiness for external clients.

Requirements Based Testing

  • Software testing aligned with specific requirements.
  • Examples:
    • Allergy warnings in medical software systems.

Requirements Tests

  • Specific tests related to each specific requirement.
    • Testing examples with patient allergy information.

Features Tested by Scenarios

  • A set of planned scenarios for actual use.
  • Testing for specific functionality.

A Usage Scenario

  • Example showing practical use and testing aspects across system components.
    • Practical example covering user actions and system responses for various scenarios.

Performance Testing

  • Assessing the performance and reliability of the system.
  • Tests should reflect expected system usage profiles.

Stress Testing

  • System overload to measure its ability to respond.
    • Measures the system's behavior during periods of high load.

User Testing

  • Involves end-users and customers in the testing process.
  • Crucial stage even when other testing types are complete.
  • Reflects the variability in user environments with real-world uses and issues.

Types of User Testing

  • Alpha testing: Users and developers collaborate at the developer's site.
  • Beta testing: Users receive a release for testing outside a development environment.
  • Acceptance testing: Customers decide if the system ready for deployment.

The Acceptance Testing Process

  • Steps of acceptance testing (e.g., defining criteria, tests, results, outcome).

Stages in the Acceptance Testing Process

  • Listing the steps involved.

Agile Methods and Acceptance Testing

  • User/customer involvement in development decisions.
  • Tests are defined and integrated throughout the agile process.

Key Points (Summary)

  • Identifying the common error patterns.
  • Using effective testing techniques.
  • Applying test automation whenever possible.
  • Test-driven development: Tests written first; code following.
  • Scenario testing, defining use cases.
  • Acceptance testing: Validating if the system meets the client's expectations.

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 key concepts in software testing, including the goals and methods used to validate software functionality and identify defects. It discusses the importance of executing tests with sample data and the role of defect testing in ensuring software quality. Test your understanding of the verification and validation processes involved in software development.

More Like This

Use Quizgecko on...
Browser
Browser