Software Testing Fundamentals

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

What is the primary goal of software testing?

  • To identify defects and ensure requirements are met. (correct)
  • To increase code complexity.
  • To speed up the development process.
  • To reduce the number of developers needed.

Which of the following is NOT a primary objective of software testing?

  • Identifying Defects
  • Preventing Future Issues
  • Ensuring Quality
  • Increasing Development Costs (correct)

Which testing vocabulary term is defined as an inspection activity that verifies compliance with plans, policies, and procedures?

  • Black-box Testing
  • Benchmarking
  • Baseline
  • Audit (correct)

What is the purpose of 'benchmarking' in the context of basic testing vocabulary?

<p>To compare products or processes against best practices to define superior performance. (C)</p> Signup and view all the answers

What kind of testing focuses on the functionality of an application without knowledge of the system's internal structure?

<p>Black-box Testing (C)</p> Signup and view all the answers

Which technique involves selecting test data from the boundaries of input or output domain classes, including values just above and below the boundaries?

<p>Boundary value analysis (C)</p> Signup and view all the answers

What does 'Branch Testing' ensure in software testing?

<p>Each possible branch of each decision is executed at least once. (D)</p> Signup and view all the answers

Which of the following best describes what 'Debugging' entails?

<p>Analyzing and correcting syntactic, logic, and other errors identified during testing. (E)</p> Signup and view all the answers

What does 100% 'Decision Coverage' indicate in a software testing context?

<p>All decision directions have been executed at least once during testing. (A)</p> Signup and view all the answers

Which of the following describes a 'Decision Table'?

<p>A tool for documenting unique combinations of conditions and results for test cases. (C)</p> Signup and view all the answers

Which of the following is the main purpose of 'Defect Tracking Tools'?

<p>To document defects found during testing and track their status through to resolution. (D)</p> Signup and view all the answers

What does 'Desk Check' primarily involve?

<p>A verification technique conducted by the author to check the completeness of their own work. (C)</p> Signup and view all the answers

Which testing technique performs analysis by executing the program code?

<p>Dynamic Analysis (D)</p> Signup and view all the answers

What are 'Entrance Criteria' in software development?

<p>Conditions and standards required for entry into the next stage of the software development process. (C)</p> Signup and view all the answers

What are 'Exit criteria' in software development?

<p>Standards that must be met before moving software to the next development stage. (C)</p> Signup and view all the answers

What does 'Equivalence Partitioning' involve in software testing?

<p>Using a subset of data that represents a larger class to reduce exhaustive testing. (B)</p> Signup and view all the answers

Which of the following best defines 'Error Guessing'?

<p>A technique for selecting test data based on tester's experience and intuition. (D)</p> Signup and view all the answers

What does 'Exhaustive Testing' aim to achieve?

<p>To execute the program through all possible combinations of values for program variables. (A)</p> Signup and view all the answers

Which of the following uses mathematical techniques to analyze the algorithms of a solution for properties like efficiency and correctness?

<p>Formal Analysis (D)</p> Signup and view all the answers

What is the main focus of 'Functional Testing'?

<p>Ensuring that all functional requirements are met. (D)</p> Signup and view all the answers

Which term describes a formal assessment conducted by qualified independent reviewers to detect defects and violations of standards in a work product?

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

After unit testing, which testing type validates the interaction of components?

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

What does 'Life Cycle Testing' involve?

<p>Verifying the consistency, completeness, and correctness of software at each stage of the development life cycle. (B)</p> Signup and view all the answers

Which testing type determines whether a software item or feature meets the specified requirements?

<p>Pass/Fail Criteria (A)</p> Signup and view all the answers

What is the goal of 'Path Testing'?

<p>To ensure that each logical path through the program is tested. (A)</p> Signup and view all the answers

Which type of testing validates that online response times meet the performance requirements?

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

What is the definition of a 'Policy' in the context of software testing?

<p>Managerial desires concerning process or products. (D)</p> Signup and view all the answers

Which analysis analyzes production data to understand the data types and frequency that the system will need to process?

<p>Population Analysis (A)</p> Signup and view all the answers

What is the purpose of a 'Procedure' in software testing?

<p>To provide a step-by-step method for meeting standards. (A)</p> Signup and view all the answers

Which of the following BEST describes the 'Process' in software development?

<p>The work effort that produces a product, guided by policies, standards, and procedures. (B)</p> Signup and view all the answers

Which technique uses mathematical logic to confirm that if certain conditions are true at the start of a program, then other relationships will hold true at the program's end?

<p>Proof of Correctness (B)</p> Signup and view all the answers

What is the primary focus of Quality Assurance (QA) compared to Quality Control (QC)?

<p>QA focuses on preventing defects, while QC focuses on identifying defects. (C)</p> Signup and view all the answers

According to the material, when should QA activities be conducted?

<p>Before and during development (A)</p> Signup and view all the answers

What statistical technique is most closely associated with Quality Assurance (QA)?

<p>SPC (Statistical Process Control) (D)</p> Signup and view all the answers

Which statement best describes the time consumption of QA versus QC?

<p>QA consumes less time, while QC is a more extensive process that consumes a lot of time. (C)</p> Signup and view all the answers

Which statement accurately reflects the primary goal of the 'cost of quality' metric in software testing?

<p>To quantify the business value of testing. (A)</p> Signup and view all the answers

What does the Cost of Quality (COQ) formula include?

<p>Cost of Control + Cost of Failure of Control (D)</p> Signup and view all the answers

Which of the following is NOT considered an objective of cost of software quality metrics?

<p>Maximizing development team size. (D)</p> Signup and view all the answers

What are software quality factors primarily known as?

<p>Software Quality Attributes or Characteristics (C)</p> Signup and view all the answers

Which of the following is NOT listed as a software quality factor?

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

Which customer-centered outcome is most directly supported by robust software quality testing?

<p>Enhanced User Experience (A)</p> Signup and view all the answers

Flashcards

What is Software Testing?

The process of evaluating a software application to identify defects and verify that it meets requirements.

Objectives of Software Testing

To find discrepancies between requirements and the actual software, ensuring quality, and preventing future problems.

Audit

A review to verify compliance with standards and effective resource use.

Baseline

A standard for current performance level.

Signup and view all the flashcards

Benchmarking

Comparison against top standards.

Signup and view all the flashcards

Black-box Testing

Testing functionality without knowing the system's internal workings.

Signup and view all the flashcards

Boundary Value Analysis

Selecting test data from input/output boundaries.

Signup and view all the flashcards

Branch Testing

Testing each possible decision branch at least once.

Signup and view all the flashcards

Brainstorming

A group session for generating a wide range of ideas.

Signup and view all the flashcards

Bug

A software defect or error.

Signup and view all the flashcards

Debugging

Fixing syntax and logic errors found during testing.

Signup and view all the flashcards

Decision Coverage

Testing and measuring the completeness of all decisions directions in the code.

Signup and view all the flashcards

Decision Table

Documenting condition combinations for test cases.

Signup and view all the flashcards

Defect Tracking Tools

Tools to record and manage defects found during testing.

Signup and view all the flashcards

Desk Check

Author checks their own work for completeness.

Signup and view all the flashcards

Dynamic Analysis

Testing by running the code to find errors by analyzing responses to sets of inputs.

Signup and view all the flashcards

Entrance Criteria

Standards for starting the next development phase.

Signup and view all the flashcards

Exit criteria

Standards to stop further software promotion.

Signup and view all the flashcards

Equivalence Partitioning

Using a data subset to represent a larger set for testing.

Signup and view all the flashcards

Error/Defect

A deviation from the correct value/condition

Signup and view all the flashcards

Error Guessing

Guessing test data based on intuition.

Signup and view all the flashcards

Exhaustive Testing

Run code with all possible variable combinations.

Signup and view all the flashcards

Flowchart

Visuals that represent data flows and logic.

Signup and view all the flashcards

Formal Analysis

Math and logic to guarantee program correctness.

Signup and view all the flashcards

Functional Testing

Verifying feature requirements ignoring the code structure.

Signup and view all the flashcards

A graph for data distribution frequencey.

Histogram

Signup and view all the flashcards

Inspection

Qualified reviewers check a project to find defects

Signup and view all the flashcards

Integration Testing

This tests the components connected together after being successfully unit tested.

Signup and view all the flashcards

Life Cycle Testing

Verifying software at release.

Signup and view all the flashcards

Pass/Fail Criteria

A decision to say yes or no.

Signup and view all the flashcards

Path Testing

Test all code paths.

Signup and view all the flashcards

Performance Test

Make sure both run times are as expected.

Signup and view all the flashcards

Policy

What managers want.

Signup and view all the flashcards

Population Analysis

Analyze data without specs in mind.

Signup and view all the flashcards

Procedure

A documented way to do something.

Signup and view all the flashcards

Process

Effort guided so that products are useful.

Signup and view all the flashcards

Proof of Correctness

A math formula showing that all program variables are correct.

Signup and view all the flashcards

QA vs QC

QA assesses entire process; QC asses software after code is built.

Signup and view all the flashcards

Defect

A method of discovery or an issue that needs fixed.

Signup and view all the flashcards

Study Notes

  • Software testing evaluates software applications or systems to ID defects, ensure requirements, and verify performance. This is a critical phase in development that maintains quality, reliability, and performance.

Objectives of Software Testing

  • Identify defects
  • Ensure quality
  • Verify requirements
  • Prevent future issues

Basic Testing Vocabulary

  • Audit: Inspection/assessment verifying compliance with plans, policies, and procedures, ensuring resource conservation.
  • Baseline: A quantitative measure of current performance level.
  • Benchmarking: Comparing products/services/processes against best or competitive to define superior performance.
  • Black-box Testing: Testing functionality of program/application against specifications without system construction knowledge.
  • Boundary Value Analysis: Data selection from "boundaries" of input/output domain classes, including min/max values plus/minus one.
  • Branch Testing: A method where each decision branch is executed at least once.
  • Brainstorming: Group process for generating diverse ideas.
  • Bug: Catchall term for software defects or errors.
  • Debugging: Analyzing, correcting syntactic, logic, and other errors found during testing.
  • Decision Coverage: White-box technique measuring decision directions executed by test cases; 100% indicates all directions tested once.
  • Decision Table: Tool documenting unique conditions and results to derive unique test cases for validation.
  • Defect Tracking Tools: Used to document defects found during tests and tracked to resolution.
  • Desk Check: Verification by the artifact author to check their own work for completeness, without involving others.
  • Dynamic Analysis: Executing program code to identify errors by analyzing the product's response to input data.
  • Entrance Criteria: Standards for work product quality that must be met before entering the next development stage.
  • Exit Criteria: Standards blocking incomplete/defective work products from progressing to subsequent development stages.
  • Equivalence Partitioning: Test technique with subset of data representing a larger class, done in place of testing exhaustive values of the data class.
  • Error or Defect: Discrepancy between a computed value/condition and the true/specified value/condition; also, human action causing software fault.
  • Error Guessing: Test data selection based on intuition/experience to find defects.
  • Exhaustive Testing: Executing a program with all possible combinations of variable values.
  • Flowchart: Pictorial data flow and computer logic representations.
  • Formal Analysis: Using math techniques to analyze algorithms for numerical properties, efficiency, and correctness.
  • Functional Testing: Ensures functional requirements are met, regardless of program structure.
  • Histogram: Graphical description of measured values in dataset, organized by occurrence frequency, including average/variation info.
  • Inspection: Formal assessment by qualified independent reviewers to detect defects, standards violations, and other issues.
  • Integration Testing: After successful unit testing, validate interaction/communication between integrated components.
  • Life Cycle Testing: Verifies consistency, completeness, and correctness of software at each development stage.
  • Pass/Fail Criteria: Decision rules to determine if software/feature pass or fails.
  • Path Testing: A method satisfying coverage criteria to test each logical program path which are grouped into finite classes, one from each being tested.
  • Performance Test: Validates online response and batch run times meet specified performance needs.
  • Policy: Management desires/intents for process (objectives) or products(attributes).
  • Population Analysis: Analyzing production data to identify data types/frequency for system process/production.
  • Procedure: Step-by-step method to ensure standards are met.
  • Process: Work effort producing a product or a statement of purpose and essential practices.
  • Proof of Correctness: Logic techniques showing relationship between program variables at entry implies another at exit.

QA versus QC

  • Quality Assurance (QA): A validation process ensuring product meets requirements, conducted before and during development.
  • Quality Control (QC): Ensures necessary procedures/methodology/techniques have been followed for a defect-free product, after software is built.
  • Verification confirms product is built correctly, during development.
  • Validation confirms the right product is built, after the development.
  • Quality Assurance focuses on the process, prevents defects, and involves the entire team.
  • Quality Control focuses on the product, identifies/fixes defects, and is the testing phase.

Statistical Techniques

  • QA: Process-oriented parameters use SPC (Statistical Process Control) graphs.
  • QC: Uses SQC (Statistical Quality Control) graphs for finished products.
  • QA consumes less time, while QC is an extensive process that consumes a lot of time.

Cost of Quality

  • A tool to quantify and determine business value of testing
  • It quantifies control/conformance costs and failure of control/non-conformance.
  • Cost of Quality (COQ) = Cost of Control + Cost of Failure of Control
    • Cost of Control = Prevention Cost + Appraisal Cost
    • Cost of Failure of Control = Internal Failure Cost + External Failure Cost
  • Objectives are to control budgeted expenditures for SQA prevention and appraisal activities.
  • It considers previous year failure cost, and previous project and other department's quality costs.
  • Cost of Software Quality Model includes Control Cost (Prevention and Appraisal) and Failure Cost (Internal and External).

Software Quality Factors

  • Software quality factors are known as software quality attributes or characteristics are key aspects of overall software quality.
  • These factors include Functionality, Usability, Performance, Reliability, Maintainability, Portability, Security, and Testability.
  • Software quality leads to customer satisfaction, fewer defects, enhanced user experience, brand reputation, competitive advantage, customer retention, cost savings, and business success.
  • Best practices for enhancing software quality are early testing, comprehensive test planning, requirement test planning, automated testing, test data management, continuous integration/testing, user acceptance testing, test environment management, performance testing, security testing, collaboration/communication, defect tracking, regression testing, documentation, and continuous learning.
  • Challenges come from not following the best practices that enhance software quality.
  • The degree to which a product/system meets requirements and satisfies user/stakeholder needs defines software quality.
  • The primary reasons for testing software are to identify/address defects, validate requirements, and ensure overall quality.
  • Functional testing checks what the software does.
  • Non-functional tests check how the software performs.
  • Maintenance testing occurs after software release.
  • Testing types include Unit, Integration, and System Testing; User Acceptance Tests (UAT).
  • Further types also include Performance, Load, Stress, Security, and Usability Testing; Retesting and Regression.

Defects

  • Per Merriam-Webster, a defect is an imperfection or abnormality that impairs the software's quality, function, or utility.
  • Defects are also, Bugs/Errors
  • These include Coding, Requirements, Design, Documentation, and Functionality Defects; Integration, Performance, Usability, Security, and Regression Defects.
  • Software testers collaborate with Developers, Project Mangers, Business Analysts, and Product Owners
  • SW testers focus on User Interaction, Cross-functional Collaboration, Client/Stakeholder Interaction, and Continuous Improvement.
  • Test scope defines which customer product areas to test, functionalities to focus on, bug types of interest, and areas not to test.
  • Test scope is a checklist for testers

What Information Makes Up Scope of a Test

  • Test environment
  • Features
  • Bug types and severities
  • Test instructions
  • Elements include: In-Scope Items, Out-of-Scope Items, Test Levels, Types, Techs, Entry Criteria, Assumptions, Dependencies and Data.
  • Testing should occur throughout the entire software development lifecycle.
  • Testing stops when all requirements are met, no critical bugs remain, budgets/deadlines are reached, test cases are done, risk is acceptable, and stakeholders decide.
  • Testing constraints limit or create challenges that impact process, like Time, Budget, Resources, Scope, Tech, Skills, Env and Changing Requirements.

Software Testing Life Cycle (STLC)

  • Systematic planning, design, execution, and managing software testing activities ensuring reliability and quality.
  • Phases include requirement analysis, test planning, test case development, test environment setup, test execution, defect reporting/tracking, test closure, and retesting/regression testing.

Independent testing

  • Performs software testing with separate, distinct teams apart from development team.
  • Two types of independent testing: Testing within, and outside the company.
  • Key aspects are Evaluation, Defect Detection, QA and Certification.
  • Components of independent testing are professional services, dedicated labs, testing services, consultancy, automation, COE (Center of Excellence).
  • Benefits include early bug detection, improved reliability, compliance with healthcare/finance standards, and better risk management.
  • A QA Process systemically ensures product/system/service meets requirements/standards, helps detect defects, improves performance, and maintains consistency.
  • QA process steps: Requirement Analysis, Test Planning, Test Case Development, QA Enviro Setup, Test Execution, Defect Tracking, Test Closure.
  • Types of testing in QA: Functional (Unit, Integration, System, User Acceptance), Non-Functional (Performance, Security, Usability, and Compatibility), Automation (Selenium, JUnit, TestNG), and Regression & Smoke Testing.

The "V" Concept of Testing

  • Also called V-Model,(Verification/Validation), develops software and QA via testing in every development stage.
  • In the V-Model, the left side focuses on "Building the System", while the right side focuses on "Checking the System". The "V-Model Design" includes
  • Requirement Analysis: Gathering and document system needs.
  • System Design: Creating System Architecture and Designs, based on the needs.
  • High-Level Design: Developing the high-level system design.
  • Low-Level Design: Creates the detailed design of indivdual modules
  • Implementation:Coding or implementation phase, software occurs due to the current design.

"V-Model Design" Testing Stages

  • Unit Testing: Each module is tested independently to ensure that it performs as expected.
  • Integration Testing: Modules are combined and tested together to identify any issues in their interaction.
  • System testing: Tests complete system for specified requirements.
  • User Acceptance Testing (UAT): End-users test software, ensuring their expectations and requirements are met.
  • Advantages: Early detection of defects, well-structured processes, better assurance, time/cost savings, ideal for smaller and easier documentation.
  • Disadvantages: Rigid and inflexible, unsuitable for complex or evolving projects, time-consuming, high initial costs, limited user input
  • Use V-Model when requirements are well-defined and unchanging, quality/reliability are key, and for safety-critical projects such as medical software.

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