Software Testing

Terminology

Failure

Bug

Synonims

Fault

Condition that causes system failure

Defect

Error

Human mistake that caused fault

Inability of a system to perform a required function
according to its specification

Test case

Procedure to test a functionality

Composed of:

Inputs

Test cade ID

Preconditions

Inputs

Expected outputs

Testware

Test documentation

Incident

Symptom of a failure

Test oracle

In charge of validate correctness of test

Bug

Life cycle

Bugs-out

Classification

Isolation

Resolution

Bugs-In

Status

New

Open

Assign

Deferred

Reopened

Rejected

Tested

Fixed

Causes

Human Error

Miscommunication

Change in requirement

Rescheduling of resources

Complexity of bug tracking

Classification

Criticality

Major

Minor

Medium

Critical

Software development Life Cycle

Requirements or specification

Design

Controlflow

Logic

Processing

E.g. Datatype convertion

Dataflow bugs

Wrong data initialization

Error handling bugs

Race conditions

Boundary Related

UI

Coding bugs

Integration

System

Testing

Test

Test principles

Destructive approach for constructive testing

Cleanup after each test

Early testing is better than later

Probability of finding a bug is proportional to bugs found int that section

Should start at smallest module and then grow

Testing should be done by independent team

Everything must be recorded

Unexpected inputs have a high level of failure

We usually code happy path

Testers should be part of design and spec specification

Effective, not exaustive

Life cycle

Planning

Design

Execution

Review

Define test

Define costs

Identify risk areas

Define formats

Determining the test objectives and their prioritization

Preparing list of items to be tested

Mapping items to test cases

Cover all features but keep tests minimal




Creating test cases and test data

Setting up the test environment and supporting tools

Cloud can help with this

Generate different systems with required specs in parallel

Creating test procedure specifi cation

Understand the bug

Reproduce bug

Analyze root cause

Levels of validation testing

Unit testing

Integration testing

System testing

Strategies

Static testing

Do not execute code

Dynamic

White box

Black box