Software testing principles

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Which activity is part of the testing process as defined by the content?

  • Planning
  • Preparation
  • Evaluation
  • All of the above (correct)

What is the primary goal of testing in relation to software defects?

  • To detect defects but not necessarily correct them. (correct)
  • To ensure that software is error-free before release.
  • To measure the performance of the development team.
  • To demonstrate that all specified requirements are perfectly met.

Which of the following best describes a typical objective of testing?

  • To ensure developers follow coding standards.
  • To train new users on how to use the software effectively.
  • To determine the project budget and timeline.
  • To find defects and reduce the risk of inadequate software quality. (correct)

During the planning phase of the software life cycle, what is a key objective of testing?

<p>To ensure activities are coordinated and aligned with project goals. (A)</p> Signup and view all the answers

What distinguishes debugging from testing?

<p>Debugging involves finding, analyzing, and fixing defects, while testing shows failures caused by defects. (B)</p> Signup and view all the answers

How do testers contribute to the success of a project during the stage of requirements reviews?

<p>Identifying defects in requirements through reviews reducing the effort required for debugging in later stages. (C)</p> Signup and view all the answers

What is the focus of quality assurance (QA) compared to testing?

<p>QA is process-oriented and aims to assure quality, whereas testing is product-oriented and controls quality. (D)</p> Signup and view all the answers

In the context of software testing, what is the difference between an error, a defect, and a failure?

<p>An error is a human mistake, a defect is a flaw in the component or system, and a failure is a deviation from the expected result. (D)</p> Signup and view all the answers

According to the case study of Disney's Lion King CD-ROM, what was the primary error that led to its failure?

<p>Disney failed to test the software on a variety of common PC configurations. (A)</p> Signup and view all the answers

What is a key goal of root cause analysis related to software defects?

<p>To identify the underlying actions or conditions that led to the creation of defects. (A)</p> Signup and view all the answers

Which of the following is a common reason why errors occur in software development?

<p>Time pressure leading to mistakes. (C)</p> Signup and view all the answers

Which principle states that testing can demonstrate the presence of defects but cannot prove their absence?

<p>Testing Shows Presence of Defects (C)</p> Signup and view all the answers

What does the 'Pesticide Paradox' principle in software testing suggest?

<p>Repeating the same test cases will eventually stop finding new bugs. (D)</p> Signup and view all the answers

Why is 'Exhaustive Testing' considered impossible in most practical scenarios?

<p>There are too many potential input combinations and scenarios to test. (C)</p> Signup and view all the answers

According to the context of the content, what is the first test activity?

<p>Test planning (A)</p> Signup and view all the answers

What does test monitoring involve?

<p>Comparing actual progress against planned progress using test metrics. (B)</p> Signup and view all the answers

What is the purpose of test analysis in the testing process?

<p>To identify and prioritize test conditions based on the test basis. (C)</p> Signup and view all the answers

What is the definition of Test Basis?

<p>Documentation on which test cases are based. (A)</p> Signup and view all the answers

What kind of defects can be found in the test basis?

<p>Ambiguities and omissions. (A)</p> Signup and view all the answers

What does test design involve?

<p>Prioritizing test cases, identifying test data, and designing the test environment. (B)</p> Signup and view all the answers

What is a 'test case' in software testing?

<p>A set of preconditions, inputs, actions, and expected results, developed based on test conditions. (D)</p> Signup and view all the answers

What is the main goal of 'test implementation'?

<p>To prepare for test execution, including creating test procedures and test suites. (A)</p> Signup and view all the answers

What activities are performed during test execution?

<p>Analyzing test results, logging defects, and repeating tests as needed. (D)</p> Signup and view all the answers

What is the purpose of the 'test completion' phase?

<p>To archive test assets, analyze lessons learned, and finalize testware. (B)</p> Signup and view all the answers

What does traceability between the test basis and test work products support?

<p>Analyzing the impact of changes and meeting IT governance criteria. (B)</p> Signup and view all the answers

What is the primary aim of understanding human psychology in testing?

<p>To identify the psychological factors that influence the success of testing. (C)</p> Signup and view all the answers

What is a key difference between a tester's mindset and a developer's mindset?

<p>Testers focus on how to break the software, while developers focus on how to make it. (A)</p> Signup and view all the answers

What characteristic is typically associated with a tester's mindset?

<p>A critical eye and attention to detail. (A)</p> Signup and view all the answers

What is 'confirmation bias'?

<p>Seeking information that confirms existing beliefs. (A)</p> Signup and view all the answers

What approach helps in improving communication between testers and developers?

<p>Communicate findings on the product in a neutral, fact focus way. (C)</p> Signup and view all the answers

Why is it important to comply with contractual, legal, or regulatory requirements in testing?

<p>To avoid potential legal issues and ensure market compliance. (B)</p> Signup and view all the answers

Considering different phases of the software life cycle, what is the primary objective of testing during the implementation phase?

<p>To verify the correctness, functionality, performance, security, and usability of the software. (C)</p> Signup and view all the answers

In the context of testing contributions to project success, what advantage is gained by involving testers early in the requirements review process?

<p>It helps identify requirements defects early, saving time and resources. (B)</p> Signup and view all the answers

Based on the concept of errors, defects and failures, if a user inputs a string into a numerical field and the application crashes, what occurred?

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

Applying the 'Absence-of-errors fallacy' principle, what does it mean if a software product has undergone extensive testing and all known bugs have been fixed?

<p>The software can still be unsatisfactory if it fails to meet user needs. (A)</p> Signup and view all the answers

During test design, what is a key consideration when 'identifying necessary test data'?

<p>Selecting data to support identified test conditions and cases. (D)</p> Signup and view all the answers

How is the application of the test execution phase related to test cases?

<p>Test cases define the individual steps and checks to confirm if the software functions as expected. (B)</p> Signup and view all the answers

In test completion, what kind of activities take place?

<p>Activities around finalizing the whole testing effort by communicating to stakeholders and archiving the test environment (D)</p> Signup and view all the answers

What benefit does good 'traceability' provide to project stakeholders?

<p>Information to evaluate test results and their impact on the overall project. (D)</p> Signup and view all the answers

How does a 'professional pessimism' mindset contribute to more effective testing?

<p>It enables testers to critically assess the software and anticipate potential failure points that might otherwise be missed. (D)</p> Signup and view all the answers

Flashcards

What is Testing?

The process consists of all lifecycle activities, both static and dynamic, concerned with planning, preparation and evaluation of a component or system and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.

Prevent defects objective

Evaluating work products like requirements, user stories, design, and code to prevent defects.

Check object objective

Checking whether the test object is complete and validate if it works as the users and other stakeholders expect

Verify Requirements

Verifying that all specified requirements have been fulfilled.

Signup and view all the flashcards

Find defects objective

Finding defects and failures, thus reducing the risk of inadequate software quality.

Signup and view all the flashcards

Meet standards objective

Complying with contractual, legal, or regulatory requirements or standards, and/or to verify the test object's compliance with such requirements or standards

Signup and view all the flashcards

Provide information

Providing sufficient information to stakeholders to allow them to make informed decisions, especially regarding the level of quality of the test object

Signup and view all the flashcards

Testing in the Plan Phase

Activities that are well-planned, coordinated and aligned with project goals and constraints.

Signup and view all the flashcards

Testing in the Analysis phase

Ensuring requirements gathered from stakeholders are accurate, complete, and feasible.

Signup and view all the flashcards

Testing in the Design phase

Validating the design, identifying design defects, assessing design quality, and ensuring it meets specified requirements and standards.

Signup and view all the flashcards

Testing in the Implementation phase

Verifying the correctness, functionality, performance, security, and usability of software, ensuring it meets quality standards and is ready for deployment.

Signup and view all the flashcards

Testing

Showing failures caused by defects in the software and done by tester.

Signup and view all the flashcards

Debugging

Part of development activity that finds, analyzes, and fixes defects and done by the developer.

Signup and view all the flashcards

Requirements Defects Testing

Testers involved in requirements reviews or user story refinement to identify requirements defects contribute to success.

Signup and view all the flashcards

Feature Testing

Ensuring features are correct and testable by testing contributes to success.

Signup and view all the flashcards

Code Understanding Testing

Working closely with developers to understand code and how to test it contributes to success.

Signup and view all the flashcards

Design Testing

Testers work closely with system designers to increase understanding of the design and how to test it contributes to success.

Signup and view all the flashcards

Stakeholder satisfaction

Ensure software meets stakeholder needs by effectively testing contributes to sucess.

Signup and view all the flashcards

Quality Assurance

Activities to ensure software corresponds to specifications, with quality control and a process-oriented approach.

Signup and view all the flashcards

Testing

Exploring a system to find defects, focusing on bug finding with a product-oriented approach.

Signup and view all the flashcards

Error/Mistake

A human action that produces an incorrect result.

Signup and view all the flashcards

Fault / Defect/ Bug

A flaw in a component or system that can cause it to fail.

Signup and view all the flashcards

Failure

A deviation of the component or system from its expected delivery, service, or result.

Signup and view all the flashcards

Error Example

Lecturer did not change the setting to shared is an example of this

Signup and view all the flashcards

Defect example

Padlet setting = private is an example of this

Signup and view all the flashcards

Failure example

Student unable to access the padlet is an example of this

Signup and view all the flashcards

Lion King's Error

Disney's failure to test the software on a variety of common PC configurations.

Signup and view all the flashcards

Lion King's Defect/Bug

The software's inability to run properly on most consumer PCs due to compatibility issues.

Signup and view all the flashcards

Root cause analysis

Actions or conditions that contribute to the creation of defects.

Signup and view all the flashcards

Quality Assurance

Activities designed to ensure the software corresponds to spec.

Signup and view all the flashcards

Human Fallibility

Inherent human tendency to make mistakes.

Signup and view all the flashcards

Testing: Defect Presence

Testing shows the presence of defects, not absence. Testing helps find undiscovered defects.

Signup and view all the flashcards

No Exhaustive Testing

It's impossible to test all input combinations; use smarter testing.

Signup and view all the flashcards

Early Testing

Start testing early to save money.

Signup and view all the flashcards

No Universal Testing

Testing is context-dependent; different sites are tested differently.

Signup and view all the flashcards

Pesticide Paradox

Repeating same test cases won't find more bugs; modify them regularly.

Signup and view all the flashcards

Errors Doesn't Mean Success

Finding and fixing many bugs doesn't help if it fails to meet user requirements; it's not useful.

Signup and view all the flashcards

Test Planning

Objectives of testing the objectives of meetings within the constraints imposed by the context

Signup and view all the flashcards

Test Monitoring

Ongoing comparison of actual vs. planned progress using test monitoring metrics.

Signup and view all the flashcards

Test Control

Actions to meet objectives of the test plan.

Signup and view all the flashcards

Test basis

Body of knowledge used as basis for test analysis and design (e.g., SRS).

Signup and view all the flashcards

Study Notes

  • Testing is a process consisting of lifecycle activities, both static and dynamic.
  • Testing is concerned with the planning, preparation, and evaluation of a system or component, related work products, to determine if they satisfy specified requirements.
  • Testing shows if they are fit for purpose and to detect any defects.

Objectives of Testing

  • Testing prevents defects through evaluating work products.
  • Requirements and user stories are examples of work products
  • Testing builds confidence in the test object's quality.
  • Testing verifies if all specified requirements have been fulfilled.
  • Testing finds defects and failures, reducing the risk of inadequate software quality.
  • Testing checks if the test object is complete.
  • Testing checks if the test objects validate and work as stakeholders expect.
  • Testing complies with legal, contractual, and regulatory requirements and standards.
  • Testing verifies the test object's compliance with requirements and standards.
  • Testing provides sufficient information to stakeholders to allow them to make informed decisions about the test object's quality level.
  • Testing is dependent on the context of the component/system being tested, the test level, and the software development lifecycle model.

Testing vs Debugging

  • Testing shows failures caused by defects in the software and is done by testers.
  • Debugging is a development activity that finds, analyzes, and fixes defects, which is done by developers.

Why is Testing Necessary

  • Testing's contributions lead to success.
  • Testing identifies requirements defects through requirements review.
  • Testing reduces the risk of incorrect or untestable features being developed through early testing.
  • Testing works closely with developers to understand the code and how to test it.
  • Testers reduce the risk of defects within the code and the tests.
  • Quality Assurance focuses on confirming software corresponds to spec.
  • Quality Assurance focuses on quality control and meeting requirements.
  • Quality Assurance has a process-oriented orientation.
  • Quality Assurance is preventative.
  • The goal of QA is to assure quality.
  • Testing explores a system to find defects, inspect the system and find bugs.
  • Testing has a product-oriented orientation.
  • Testing is corrective, and the goal is to control the quality.

Errors, Defects and Failures

  • Errors/Mistakes are human actions that produce incorrect results.
  • Faults/Defects/Bugs are flaws in a component or system that can cause it to fail.
  • Failures deviate the component or system from its expected delivery, service, or result.

Root Cause

  • Root cause analysis involves actions/conditions that cause defects.
  • It can lead to improved processes that can prevent future defects.
  • Causes are identified to reduce the future occurrences of similar defects.

Error Causes

  • Time constraints can cause errors
  • Human fallibility can cause errors
  • Inexperienced or insufficiently skilled project participants can cause errors
  • There can be miscommunication between project designers that can cause errors
  • Complexity of code can cause errors
  • There can be misunderstanding about intra-system and inter-system interfaces
  • New or unfamiliar technologies can cause errors

Seven Testing Principles

  • Testing shows presence of Defects: Testing demonstrates the existence of defects but cannot prove their absence; testing helps to find undiscovered defects.
  • Exhaustive testing is impossible, so smarter testing should be adopted.
  • Early Testing: Finding defects early saves money.
  • Testing is Context Dependent: Different sites are tested differently.
  • Defect Clustering: Defects may cluster in small pieces of code.
  • Pesticide Paradox: Repeating test cases will not find new bugs, review and modify them instead.
  • Absence-of-errors fallacy: Finding and fixing bugs doesn't help if the solution doesn't meet user requirements.

Test Process in Context

  • Factors influencing the test process:
  • Software development lifecycle model and project methodologies in use
  • Product and project risks
  • Test levels/types considered
  • Business domain.
  • Operational constraints, including budgets, timescales, and complexity
  • Contractual and regulatory requirements.
  • Organizational policies and practices
  • Required internal/external standards.

Test Activities and Tasks

  • Activities in test plan:
  • Test planning
  • Test monitoring and control
  • Test analysis
  • Test design
  • Test implementation
  • Test execution
  • Test completion

Test Planning

  • Test planning defines objectives of testing and the approach for meeting test objectives.
  • It imposes objectives within constraints of the context, and it may be revisited based on feedback.

Test Monitoring and Control

  • Test monitoring compares actual and planned progress using metrics defined in the test plan.
  • Test control takes actions necessary to meet plan objectives.
  • Exit criteria sets conditions for officially completing a defined task.

Test Analysis

  • Analysis involves the test basis appropriateness to the level being considered, evaluating the basis/test items to identifying defects of various types.
  • This process includes identifying features/sets of features to be tested and defining/prioritizing test conditions for each feature based on analysis.
  • It captures bi-directional traceability between each element of the test basis and associated test conditions.
  • Test basis is the body of knowledge for test analysis (example: SRS, design document, use cases)
  • Test item is part of a test object used in the test process (example: login process, report generation).
  • Test condition is a testable aspect of a component or system as a basis for testing (example: error handling test cases).

Test Basis Defects

  • Types of test basis defects include ambiguity, omissions, inconsistencies, inaccuracies and contradictions.

Test Design

  • Test design involves prioritizing and designing test cases/sets of test cases, and it identifies test data to support test conditions/test cases.
  • It designs the test environment and identifies the needed infrastructure and tools while capturing bi-directional traceability.
  • Test case consists of preconditions, inputs, actions (applicable), expected results and post-conditions, developed on test conditions.
  • Test data is needed for execution.
  • The test environment contains hardware, instrumentation, simulators, software tools, and support for testing.

Test Implementation

  • The process develops and prioritizes test procedures and may create automated test scripts or create test suites from procedures.
  • The process arranges test suites within a test execution schedule, building the test environment and verifying that everything has been set up correctly.
  • It prepares test data and ensures that it is properly loaded, and updates bidirectional traceability.
  • A test procedure is a series of test cases in execution order that may require actions.
  • A test suite is a set of test scripts/procedures.
  • Test execution refers to running a test on a component/system, which creates actual results.
  • A test harness is a test environment composed of drivers and stubs.

Test Execution

  • Test execution records the IDs and versions of the test item(s) or test object and tool(s).
  • It executes tests (either manually or automatically), and it compares actual results with expected results while analyzing anomalies.
  • The root cause for failures may occur because of code defects, but false positives also may occur.
  • Defects identified are reported, and the outcome is logged which is either pass, fail, or blocked.
  • Test activities are repeated, and bi-directional traceability updating is verified.

Test Completion

  • Test completion confirms closed defect reports and backlog items for unresolved defects.
  • A test summary report should be communicated to stakeholders.
  • The test environment is finalized and archived and lessons from iterations/releases are analyzed.
  • The testware is handed over, and tests processed are improved.

Traceability

  • Supporting good traceability:
  • Analyzing the impact of changes
  • Making testing auditable
  • Meeting IT governance criteria
  • Improving the understandability of testing and reports
  • Relating the technical aspects that stakeholders can understand
  • Providing information to assess quality, capability, and progress against business goals

Psychology of testing

  • The psychology of testing explains the difference between developer and tester roles.
  • Testers point out problems with software, while developers like to think that their software is perfect.

Mindsets

  • Testers need curiosity, pessimism, a critical eye, attention to detail, and motivation.
  • Developers favor confirmation bias and designing/building solutions.

Improving Communication

  • Ways to improve communication between a tester and a developer:
  • Start with collaboration instead of battles and focus on communication, products, and feelings.
  • Always confirm messages have been understood, and focus on the common goal of better quality systems.

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser