CP317 | Week 6 | Software Testing: Plans, Cases and Levels

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

In software testing, what is the primary purpose of evaluating software against requirements?

  • To ensure the software meets the needs gathered from users and system specifications. (correct)
  • To optimize the software's performance speed.
  • To determine the cost-effectiveness of the software.
  • To simplify the user interface of the software.

Which of the following best describes the role of a software test plan?

  • A technique for optimizing software performance.
  • A method for documenting code errors.
  • A tool used to automatically generate test cases.
  • A document that outlines the strategy, scope, resources, and schedule of intended testing activities. (correct)

What elements are typically included in a test case?

  • Inputs, execution conditions, testing procedure, and expected results. (correct)
  • Hardware specifications, network configurations, and security protocols.
  • Project timelines, team member assignments, and risk assessments.
  • Software license details, user feedback, and cost analysis.

What does 'test coverage' measure in the context of unit testing?

<p>The degree to which the source code of a program is executed when a particular test suite runs. (C)</p> Signup and view all the answers

In integration testing, what is the primary purpose of simulating the behaviour of lower-level modules in a top-down approach?

<p>To test upper-level modules before the lower-level modules are developed. (B)</p> Signup and view all the answers

Which of the following is an advantage of using a top-down approach in integration testing?

<p>Major design flaws can be found early. (C)</p> Signup and view all the answers

A key advantage of using a bottom-up approach in integration testing is that:

<p>Fault localization is generally easier. (A)</p> Signup and view all the answers

What is the primary goal of regression testing?

<p>To verify that code changes have not negatively impacted existing functionalities. (B)</p> Signup and view all the answers

What is the focus of system testing?

<p>Evaluating the system's compliance with its specified design requirements in a complete, integrated environment. (D)</p> Signup and view all the answers

Which of the following best describes the purpose of acceptance testing?

<p>To test the system with respect to user needs, requirements, and business processes to determine whether or not it's accepted. (A)</p> Signup and view all the answers

What is the main characteristic of black-box testing?

<p>Examining the functionality of software without knowledge of its internal structures. (C)</p> Signup and view all the answers

How does white-box testing differ from black-box testing?

<p>White-box testing examines the internal structures of software; black-box testing does not. (A)</p> Signup and view all the answers

Under what condition is fuzz testing considered to have found an issue?

<p>When the application crashes or hangs due to random inputs. (B)</p> Signup and view all the answers

What is the key focus of Test Driven Development (TDD)?

<p>Using tests to guide software design and development. (C)</p> Signup and view all the answers

What is a key benefit of Test-Driven Development (TDD)?

<p>Early problem discovery. (A)</p> Signup and view all the answers

Which testing level focuses on individual units or components of the software?

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

What is the primary purpose of integration testing?

<p>To find defects between integrated units. (A)</p> Signup and view all the answers

If modules are integrated from the bottom up, what component is tested last?

<p>High-level modules (A)</p> Signup and view all the answers

What is the role of stubs in top-down integration testing?

<p>To replace lower-level modules that aren't ready. (D)</p> Signup and view all the answers

Which testing type requires knowledge of the internal code structure?

<p>White-box testing (B)</p> Signup and view all the answers

What is a disadvantage of bottom-up integration testing?

<p>High-level logic tested late. (C)</p> Signup and view all the answers

What is the primary use case for fuzz testing?

<p>Finding security vulnerabilities. (B)</p> Signup and view all the answers

What characteristic makes fuzz testing easily automatable?

<p>Random data inputs. (B)</p> Signup and view all the answers

What is verified during regression testing?

<p>Code changes do not affect existing functions. (B)</p> Signup and view all the answers

Who is often responsible for performing acceptance testing?

<p>End users or customers (B)</p> Signup and view all the answers

Flashcards

Software Testing

Evaluating software against requirements gathered from users and system specifications (SDD).

Software Test Plan

A document describing the scope and activities of software testing.

Test Case

Detailed specification of inputs, execution, conditions, testing procedures and expected results.

Unit Testing

Testing individual units (methods/functions) of source code to ensure correct behavior.

Signup and view all the flashcards

Test Coverage

A measure of how much source code is executed during a test suite.

Signup and view all the flashcards

Integration Testing

Combining and testing individual software modules as a cohesive group.

Signup and view all the flashcards

Top-Down Integration

Integration strategy where higher-level modules are tested before lower-level ones.

Signup and view all the flashcards

Bottom-Up Integration

Integration testing strategy where lower-level modules are tested before higher-level ones.

Signup and view all the flashcards

Regression Testing

Verifying a code change doesn't negatively affect existing functionalities.

Signup and view all the flashcards

System Testing

Testing a complete, integrated system to ensure it meets its specified requirements.

Signup and view all the flashcards

Acceptance Testing

Formal testing to determine if a system satisfies user needs and acceptance criteria which determines whether the system is accepted.

Signup and view all the flashcards

Black-Box Testing

Testing software's functionality without knowing its internal structure or workings.

Signup and view all the flashcards

White-Box Testing

Testing software by examining its internal structures and code.

Signup and view all the flashcards

Fuzz Testing

Testing technique involving feeding random inputs to verify if the software can handle the input.

Signup and view all the flashcards

Test Driven Development (TDD)

Technique for reliable software development that guides development by writing tests.

Signup and view all the flashcards

Study Notes

  • Software testing is evaluating software against user requirements and system specifications in the Software Design Document (SDD)
  • Test time duration approximates coding time.

Software Test Plan

  • The software test plan is a document that describes the scope and activities of software testing
  • Test case procedures include procedures, inputs, and expected outputs/results
  • Examples include a unit testing plan, integration testing plan, and system testing plan
  • A test case specifies the inputs, execution conditions, testing procedure, and expected results
  • It defines a single test to achieve a software testing objective
  • Includes exercising a program path or verifying compliance with a specific requirement.

Levels of Software Testing

  • Unit testing
  • Integration testing
  • Regression testing
  • System testing
  • Acceptance testing

Unit Testing

  • Unit testing is a method to determine whether an individual unit of source code behaves correctly
  • Focus on functional correctness and completeness of individual program units like functions or modules.
  • Software developers typically perform unit testing
  • All paths should be tested during unit testing
  • Test coverage describes how much the source code of a program is executed when a test suite is run.
  • Higher coverage indicates better testing

Integration Testing

  • It is the phase in software testing, where individual software modules are combined and tested as a group
  • Developers or testers can perform integration testing
  • Top-down approach is an integration testing technique that simulates the behavior of the lower-level modules that are not integrated yet
  • Fault localization is a basic component in fault management systems and identifies the cause of defects
  • Advantages of the Top-down Integration testing approach include easier fault localization and possibility of getting an early prototype
  • Disadvantages include the need for lots of stubs/mock objects and potentially reusable modules may be inadequately tested
  • Bottom-up approach is a testing strategy that tests modules at the lower level with higher modules until all modules and aspects of the software are tested properly.
  • The Bottom-up integration approach has easier fault localization and needs no stubs/fewer mock objects
  • The Bottom-up integration approach has disadvantages like needing drivers

Regression Testing

  • Regression testing verifies that a code change in the software does not impact existing functionalities of the product
  • Reduces the side effects
  • It is different than retesting

System Testing

  • Testing is conducted on a complete integrated system and evaluates the system's compliance with its specified design requirements
  • Can be done on simulators

Acceptance Testing

  • Acceptance testing is formal testing with respect to user needs, requirements and business processes
  • It's conducted to determine whether a system satisfies acceptance criteria and to enable the user, customers, or other authorized entity to determine whether the system is accepted.
  • Customers make the decision for acceptance testing

Testing Techniques

  • Black-box testing examines the functionality of software without peering into its internal structures or workings
  • It can apply to all test levels from unit testing to system testing
  • White-box testing tests internal structures or workings of software as opposed to its functionality
  • It applies to all test levels from unit to system testing
  • Fuzz testing is feeding random inputs to an application and to verify if the application can handle the random inputs
  • Proposed by Barton Miller at the University of Wisconsin Madison in 1989

Test Driven Development

  • It is a technique for building reliable software that guides software development by writing tests
  • It is about design, where design is evolved through refactoring
  • Developers write unit tests (not testers)
  • Early problem discovery, facilitates change, simplifies integration, self documentation, and it visualizes the design are benefits

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Software Testing
3 questions

Software Testing

CooperativeIntellect1595 avatar
CooperativeIntellect1595
JMeter Test Plan Component Overview
5 questions
Software Testing - Week 2 Overview
5 questions
Software Testing Principles and Practices
48 questions
Use Quizgecko on...
Browser
Browser