You are on page 1of 15

Requirements Development and Software Testing

Introduction to Software Testing


February 19-20, 2011 USJR Basak Campus TRAINOR: ALVIE M. BALQUIN, MEng, DCS, CTFL

Requirements Development & Software Testing


Introduction to Software Testing

Objectives Setting
To understand the importance of Software Testing in developing software. To understand the Software Testing Principles and their usefulness in different phases of Software Development Life Cycle (SDLC). To differentiate static and dynamic testing. To differentiate the different levels of testing. To be able to analyze what type of testing will be used for a specific testing scenario.

Requirements Development & Software Testing


Managing Requirements

Major Topics
Causes of System or Software Failures Importance of Software Testing Software Testing Definition Software Testing Principles Category of Testing Levels of Testing Type of Testing

Requirements Development & Software Testing


Introduction to Software Testing

SDLC Review
On-schedule Within Budget Customer Satisfaction Easy to Maintain Usefulness ROI Product Confidence

Requirements

Analysis

Design

Coding

Testing

Maintenance

Project Management

Process Model

Software Process

Requirements Development & Software Testing


Introduction to Software Testing

Causes of System or Software Failures


Development Errors Environmental conditions

User Errors Side Effects of Existing Errors

Intentional Damage

Requirements Development & Software Testing


Introduction to Software Testing

Causes of System or Software Failures

Error/ Mistake

Document/ Code

Defects

Software/ System

Failures

How do we prevent defects and failures?


* Cause of Human Errors: Lack of Information, Misunderstanding, Pressure, Confusing Technical or Business Environment, Complex Business Environment, Changing Technologies, Many System Interactions

Requirements Development & Software Testing


Introduction to Software Testing

Importance of Software Testing


Importance Effects to Quality

Identify Errors and Defects Meet Contractual Agreements Checking of Processes Validation - checking the product against its intended use Verification -checking the product against the requirements

Measures of Quality - can show data Confidence in the Software testing independence Increases Software Quality if bugs are fixed before release

Requirements Development & Software Testing


Introduction to Software Testing

Software Testing Definition


The process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine they satisfy specific requirements, to demonstrate that they are fit for the purpose and to detect defects.
(From ISTQB Foundations of Software Testing)

Testing Principles
Testing shows presence of defects Exhaustive testing is impossible.
Early testing ( cost is exponential)

Defect clustering Pesticide paradox Testing is context dependent Absence-of-errors fallacy

Requirements Development & Software Testing


Introduction to Software Testing

Category of Testing

Requirements Development & Software Testing


Introduction to Software Testing

Levels of Testing
Level Description
unit of software

Focus
Internal code structure Component Interaction, System Interaction System Technical Issues Operational confidence in the software functionalities.

Tester
Developer

Comments
Logic Testing Module Testing Catches 65% bugs Big-bang Integration Incremental Integration Thorough & detailed testing Alpha Testing Beta Testing

Component Testing the smallest

Integration

Putting together unit tested components Testing the system in its operational environment Checking of usefulness and readiness in the deployment area.

Developer, Tester

System

Tester

Acceptance

Tester

Requirements Development & Software Testing


Introduction to Software Testing

Types of Testing
Type
Functional Testing Requirements Testing Error Handling Control Testing Inter-System Testing Manual Support Non-Functional Performance Testing Operational/ Environmental Testing Stress/Capacity Testing Recovery Testing Security Testing Usability Testing Deployment Regression Testing Parallel Testing

Description
Focus on the capabilities of the software or system. Checking of feature or functionality operations. How the system reacts to erroneous data (prevent, detect, correct) Corrective action to reduce risks at an acceptable level Check if data or interaction between systems are correct check mechanism for manual and automated integration Focus on the checking of software attributes. check time operation expectations Check if how system operates in normal operational environment (e.g. Power, temperature, humidity) Checking of maximum loading Ability to recover after system failure Check protection against potential unwanted intrusion Check ease of use and learnability Testing activities to lower the level of risks when the software is released Checking of side effects due to new features or fixing of bugs In cases where old and new system must simultaneously operate

Requirements Development & Software Testing


Introduction to Software Testing

Objectives Checking
To understand the importance of Software Testing in developing software. To understand the Software Testing Principles and their usefulness in different phases of Software Development Life Cycle (SDLC). To differentiate static and dynamic testing. To differentiate the different levels of testing. To be able to analyze what type of testing will be used for a specific testing scenario.

Requirements Development & Software Testing


Introduction to Software Testing

Key Concepts
Errors, Defects and Failures Early Testing Exhaustive Testing Defect Clustering Pesticide Paradox Context-depended testing Absence-of-Error Fallacy Validation Verification Static Testing Dynamic Testing Component Testing Integration Testing System Testing Acceptance Testing Functional Testing Non-Functional Testing Deployment Testing

Requirements Development & Software Testing


Introduction to Software Testing

References
Software Engineering: A Practitioners Approach Roger Pressman, 5th edition 2001 Foundations of Software Testing (ISTQB CERTIFICATION) Dorothy Graham, Erick Van Veenendaal, Isabel Evans, Rex Black Revised edition

Requirements Development & Software Testing


Introduction to Software Testing

End of Introduction to Software Testing --------------------------------------------------

You might also like