Software Testing Fundamentals

Software Testing Step by Step Tutorial

Software Testing Step by step Tutorial

1) Conducting Software Testing
2) Software Development Life Cycle
3) Phases of Software Development Life Cycle
4) SDLC Models
5) Software Test Levels
6) Software Test Types
7) Software Test Design Techniques
8) Important phases in Software Test Process or Software Testing Life cycle
9) Important tasks in Test Planning Phase
10) Important tasks in Test Design Phase
11) Important tasks in Test Execution Phase
12) Important tasks in Test Closure Phase
13) Important Organizations for Software Quality Standards
14) Important Software Test Documents
15) Important Job Titles in Software Testing

1) Conducting Software Testing

• Software Testing can be done in two ways one is Manual Testing, another is Test Automation or Automated Testing. You can use both Manual Testing and Automated Testing to Test the Computer Software and Mobile Software.

• Testing computer software manually in order to find defects without using Automation tools or automation scripts is called as Manual Testing.

• Testing Computer Software by using Automation tool or Automation script is Called as Automated Testing or Test Automation.

2) Software Development Life Cycle

• SDLC (Software Development Life Cycle) is the process of developing software through business needs, analysis, design, implementation, testing and release & maintenance.

• SDLC is also called as Software development process.

3) Phases of Software Development Life Cycle

SDLC phases and phase names may vary from one model to another, but purpose is almost all same,

Phases of SDLC are:

i) Requirements Gathering

ii) Analysis and Planning

iii) Software Design

iv) Coding/Implementation

v) Testing

vi) Release and Maintenance

4) Software Development Life Cycle Models

A well defined and designed approach to develop Software.

Or

SDLC model is a methodology or process that is being selected for the development of the Software project.

Important SDLC models are:

i) Waterfall Model

ii) V Model

iii) Spiral Model

iv) Agile Models (Agile Methodologies) etc…

5) Software Test Level

Test Level: A group of Test activities that are organized and managed together.

We have Four levels of Testing for General or independent Software applications

i) Unit Testing
Testing of individual software components.
Testers: Developers

ii) Integration Testing Testing integration or interfaces between components, interactions to different parts of the system such as an operating system, file system and hardware.
Testers: Developers or Independent Testers

iii) System Testing Testing an integrated System to verify that it meets specified requirements.
Testers: Independent Testers

iv) Acceptance Testing

a) User Acceptance Testing
Testers: Customers /End users

b) Operational Acceptance Testing
System Administration staff.

c) Certification Testing
Testers: Certified Testers

For distributed Software applications we have Five levels of Testing

i) Unit Testing

ii) Component Integration Testing

iii) System Testing

iv) System Integration Testing

v) Acceptance Testing

6) Software Test Types

Test Type: A group of Test activities aimed at testing a component or system focused on a specific objective.

Basically we have 2 Types of Testing,

i) Functional Testing
Functionality Testing
Security Testing

ii) Non Functional Testing
Performance Testing
Usability Testing
Configuration Testing
Reliability Testing
Recovery Testing
Localization Testing etc…

7) Software Test Design Techniques

Basically we have two types of Test design techniques,

i) Static Techniques
ii) Dynamic Techniques

i) Static Techniques
Static testing is the testing of the software work products manually, or with a set of tools, but they are not executed.

Example: Reviews, Walk trough, Inspection etc…

ii) Dynamic Techniques

• Testing that involves the execution of the software of a component or system.

a) White box Test design techniques
Statement testing
Condition testing
Decision testing etc…

b) Black box Test design techniques
Equivalence partitioning / Equivalent Classes
Boundary Value Analysis
Decision tables
State transition Testing
Use case Testing etc…

c) Experience based Techniques
Error Guessing
Exploratory Testing etc…

Note:
Exhaustive testing (Testing with all possible inputs and preconditions) is impractical, so in order to reduce the Input and Output domains we use Test design techniques.

8) Important phases in Software Test Process or Software Testing Life cycle

i) Test Planning
ii) Test Design
iii) Test execution
iv) Test Closure.

9) Important tasks in Test Planning Phase

Important tasks in Test Planning phase are:

• Understanding and Analyzing the Requirements
• Risk Analysis
• Test Strategy implementations
• Test Estimations(Scope, Time, Available resources, Budget etc…)
• Team formation
• Test plan documentation
• Configuration management planning
• Creating RTM document
• Define Test Environment Setup etc…

10) Important tasks in Test Design Phase

Important tasks in Test Design phase are:

• Understanding Requirements
• Creating Test Scenarios
• Test Case documentation
• Test Data collection

11) Important tasks in Test Execution Phase

• Verify Test Environment setup
• Create test batches
• Test Execution
• Smoke Testing /BVT/BAT
• Comprehensive Testing
• Defect Reporting
• Defect Tracking
• Sanity Testing
• Select Test cases for Regression Testing
• Regression testing cycle 1
• Defect Reporting
• Defect Tracking
• Sanity Testing
• Select Test cases for Regression Testing
• Regression testing cycle 2
.
.
.
• Final Regression

12) Important tasks in Test Closure Phase

• Collect all Artifacts
• Evaluate the Exit Criteria
• Test Summary Report
• Sending Test deliverables to customer
• Improvement suggestions for future projects.

13) Important Organizations for Software Quality Standards

• ISO (Terminology, Process guidelines etc…)
• IEEE (Terminology, Test Documentation standards)
• CMM/CMMI (Process)

14) Important Software Test Documents

Important Software Test documents are:

i) Test Policy
A high level (company level) document describes principles, approach and major objectives of the organization regarding Testing.

ii) Test Strategy
A high level document of the Test Levels to be performed and the Testing within those levels for an Organization.

iii) Test Plan
A document describing the scope, approach, resources, and schedule of intended activities.

iv) Test Scenario
An item or event of a component or system that could be verified by one or more Test cases.

v) Test Case
A set of input values, execution preconditions, expected result and execution post conditions developed for a particular objective or Test condition.

vi) Test Data
Data that exits before a test is executed and that effects or is effected by the component or System under test.

vii) Defect Report
A document reporting of ant flaw in a component or System that can cause the component or system to fail to perform its required function.

viii) Test Summary Report
A document summarizing testing activities and Result. It also contains evaluation of the corresponding test items against exit criteria.

15) Important Job Titles in Software Testing

Job Titles may vary from one company to another,

i) Test Lead

ii) Tester / Test Engineer

(67)

You may also like...

%d bloggers like this: