Software Testing and TDD Terminology

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/50

flashcard set

Earn XP

Description and Tags

Flashcards for Software Testing and TDD Terminology

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

51 Terms

1
New cards

Failure

Deviation of the system from the expected outcome.

2
New cards

Fault / Defect

Defect or weakness in a system component that can cause the system to fail.

3
New cards

Error / Mistake

Human action that produces an incorrect result.

4
New cards

Primary Objectives of Software Testing

To detect defects (bugs), quality assurance, verification and validation, and to reduce risks.

5
New cards

Verification

Ensuring the software built matches the technical specifications.

6
New cards

Validation

Ensuring the software meets user needs.

7
New cards

Avoid the “absence of defects” fallacy

Testing reveals bugs but doesn't guarantee 100% bug-free software.

8
New cards

Exhaustive testing is impossible

Testing every possible input for a function is often impractical.

9
New cards

Start testing early

Find bugs early when impact and repair costs are minimal.

10
New cards

Defects are usually clustered (Defect Clustering)

Bugs tend to cluster in complex or frequently changed modules.

11
New cards

The pesticide paradox

Repeated tests become ineffective at finding new bugs.

12
New cards

Testing is context-dependent

Testing approach depends on the type of application.

13
New cards

Verification

Ensuring software matches technical specifications.

14
New cards

Validation

Ensuring software meets user needs.

15
New cards

Unit testing

Focuses on testing small, individual units to ensure proper functionality.

16
New cards

Integration testing

Tests how integrated units interact with each other.

17
New cards

System testing

Tests the entire system from end to end to ensure all components work together.

18
New cards

Acceptance testing

Testing from the user's perspective to ensure software meets their needs.

19
New cards

Functional Testing

Tests whether the software functions according to the specified requirements.

20
New cards

Non-functional Testing

Tests quality attributes of software like performance, security, and reliability.

21
New cards

Regression Testing

Ensures that changes or fixes don't introduce new bugs or break existing functionality.

22
New cards

Performance Testing

Measures software responsiveness and stability under specific conditions.

23
New cards

Usability Testing

Tests how effectively users can navigate and interact with the software.

24
New cards

Black Box

Focuses on the external specifications of the software without looking at internal structure.

25
New cards

Equivalence Partitioning

Divides input data into classes that are assumed to be treated the same way.

26
New cards

Boundary-Value Analysis

Focuses on boundary values (min, max) where bugs often occur.

27
New cards

Pairwise Testing

Tests combinations of two parameters that frequently cause bugs.

28
New cards

Decision Table Testing

Represents conditions and actions in a table format.

29
New cards

State Transition Testing

Tests transitions between states in a system.

30
New cards

Use Case Testing

Uses user scenarios as the basis for test cases.

31
New cards

White Box

Uses knowledge of the internal code to design tests.

32
New cards

Statement Coverage

Ensures that each statement is executed at least once.

33
New cards

Branch Coverage

Ensures that every branch of a condition (true/false) is executed.

34
New cards

Condition Coverage

Ensures that each condition is evaluated to true and false.

35
New cards

Basis Path Testing

Uses cyclomatic complexity to determine independent paths.

36
New cards

Grey Box

Combines black-box and white-box testing with partial knowledge of internal logic.

37
New cards

Test Plan

Document outlines scope, objectives, schedule, risks, resources, and test strategy.

38
New cards

Test Case Development

Creating detailed test cases including ID, description, inputs, expected results and actual results.

39
New cards

Test Execution

Executing test cases according to the plan and documenting the results.

40
New cards

Defect Identification & Tracking

Process includes identification, repair, validation, and closure of defects.

41
New cards

Automated testing

Using scripts or tools to automatically execute pre-designed tests on software.

42
New cards

Test driven development

Developing software through tests by ensuring code is testable from the start; tests are written before code.

43
New cards

RED

Write a failing test.

44
New cards

GREEN

Write the minimum code to pass the initial test.

45
New cards

REFACTOR

Improve the code structure and efficiency while ensuring tests still pass.

46
New cards

Small, incremental changes

Adding code incrementally through small, testable stages.

47
New cards

Focus on requirements

Tests specify behavior to ensure code meets requirements.

48
New cards

Refactoring confidence

Safe refactoring without breaking functionality using tests.

49
New cards

Continuous Integration (CI)

A practice technique where developers frequently integrate code into a shared repository.

50
New cards

CI tools

Tools such as Jenkins, GitHub Actions, GitLab CI.

51
New cards

Benefits of CI & automated testing

Immediate feedback, improved collaboration, reduced risk of integration issues.