software testing or quality assurance

34
Software Testing Presented By : Pushpendra Singh Designation : Senior QA at Trima Software solution

Upload: trimantra-software-solutions

Post on 14-Aug-2015

138 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Software Testing or Quality Assurance

Software Testing

Presented By : Pushpendra Singh

Designation : Senior QA at Trimantra Software solution

Page 2: Software Testing or Quality Assurance

What is software testing ?

Software testing is a process to investigation about the quality.

Or

Process of finding defect i.e. variancebetween Expected and actual result.

Page 3: Software Testing or Quality Assurance

Why ? What ? How? Who?

Why to test ?

What to test ?

How to test ?

Who test ?

Page 4: Software Testing or Quality Assurance

Why is testing necessary ?software testing is necessary to make sure theproduct or application is defect free, as per customer specifications.

Software testing identifies fault whose removal increases the software Quality and Increases the software reliability.

Testing effort is directly proportional to the complexity of the program.

Page 5: Software Testing or Quality Assurance

Why is testing necessary ?

Software should be

Error free as per requirement

Efficient

Secured

Page 6: Software Testing or Quality Assurance

Start Testing-when?

Testing starts right from the requirementsphase and continues till the release time .

Page 7: Software Testing or Quality Assurance

Participations in testing

Customer

User

Developer

Tester

Auditor

Page 8: Software Testing or Quality Assurance

Common problems in thesoftware development process ?

Poor requirements

Unrealistic schedule

Features

Miscommunication

Page 9: Software Testing or Quality Assurance

Misconception

Anyone can test software : no particular skill is required .

Tester can test the quality at the end of the project

Defects found means blaming to the developers.

Page 10: Software Testing or Quality Assurance

What are the skill required for testing?

Strong Desired for quality and attention to details

Ability to understand the point of customer, what He / She want

Good understanding with developer and tester.

judgment skill

“Things to break” attitude

Page 11: Software Testing or Quality Assurance

Software Development Life Cycle (SDLC)

The seven stages of SDLC process are

Requirement Gathering

Analysis.

Design

Development

Testing

Implementation

Maintenance

Page 12: Software Testing or Quality Assurance

There are few recognized models.....

Water Fall Model

Prototype Model

Incremental Model

RAD (Rapid Application Development) Model

Spiral Model

V Model

Agile Model

SDLC Models

Page 13: Software Testing or Quality Assurance

Software Testing Life Cycle (STLC)

Software Testing is not a just a single activity. It consists of series of activities carried out methodologically to help certify your software product. These activities (stages) constitute the Software Testing Life Cycle (STLC).

Page 14: Software Testing or Quality Assurance

Requirements Analysis

Test Planning

Test Analysis

Test Design

Test Construction and Verification

Test Execution and Bug Reporting

Final Testing and Implementation

Post Implementation

STLC Stages

Page 15: Software Testing or Quality Assurance

Verification and Validation

Requirement review

Requirement

Functional specification

CODE REVIEW

Design Build software

Code

Release For use

Build system

Functional space review

Design Review

Unit testing

Integration testing

System testing

Acceptance testing

Page 16: Software Testing or Quality Assurance

Verification also known as quality assurance.Static testing is done on this.

Walkthrough Inspection Technical review Audit

Verification

Page 17: Software Testing or Quality Assurance

Validation

Validation typically involves actualtesting and takes place after theverifications are complete.

Validation determines the correctness of a final build with respect to its requirements.

Validation checks whether we are building the right product.

Page 18: Software Testing or Quality Assurance

Levels Of Testing Unit Testing

Integration Testing

System Testing

User Acceptance Testing

Page 19: Software Testing or Quality Assurance

Unit - smallest testable piece of software.

Unit testing is process of testing the smallest/ individual component of program.

Unit test is a procedure used to validate that individual unit of source code is working properly.

Before entering into the unit testing it should be gone through code review.

Tests the functionality of units.

Typically done by the developers and not by testers.

It is typically used to verify control flow, data flow and memory leak problems.

Unit Testing

Page 20: Software Testing or Quality Assurance

Functionality testing

Smoke testing

Sanity testing

Functional Testing Type

Page 21: Software Testing or Quality Assurance

Recovery Testing Compatibility Testing Configuration Testing Inter system Testing Installation Testing performance Testing Load Testing Stress Testing Data Volume TestingSecurity testing

Non-Functionality Testing Type

Page 22: Software Testing or Quality Assurance

Usability Testing

Use interface (GUI)

Manual support testing

Page 23: Software Testing or Quality Assurance

Black Box and White box Techniques

Black Box Testing

Black box testing is testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions. (also called as Behavioral testing, Functional testing, Data driven testing, I/O driven testing)

White Box Testing

White box testing is testing that takes into account the internal mechanism of a system or component. (also called as Structural testing, Glass box testing, Transparent-box and Clear box Testing )

Page 24: Software Testing or Quality Assurance

Test Case Design methods:

Equivalence Class partitioning method

Boundary value analysis

Decision Tables

State transition testing

Use case based testing

Error guessing

Black box testing

Page 25: Software Testing or Quality Assurance

White box Testing

Testing based on analysis of internal logic (design,code, etc.).

White-box testing techniques apply primarily tolower levels of testing (e.g., unit and component).

Targets to check control flow, looping, dataflow, allthe nodes and paths.

Mandatory to have a knowledge of code in which the system is designed.

Page 26: Software Testing or Quality Assurance

White Box - testing techniques

Statement coverage

Decision coverage

Condition Coverage

Page 27: Software Testing or Quality Assurance

Statement coverage

Execute all the statements at least once

Weakest form of coverage as it requires every line of code to be checked ?

Page 28: Software Testing or Quality Assurance

Decision coverage (Branch coverage)

Exercise all logical decision on their true or false sides.

To test the branch we must oncecheck the true condition and once the false condition

True

False

?

Page 29: Software Testing or Quality Assurance

Condition Coverage

Execute each decision with all possible outcomes at least once

It requires all cases.

Checks each of the ways condition can be made true or false

Page 30: Software Testing or Quality Assurance

Condition Coverage

?

1 2

? ?

123

?

?

1 2 3 4

Page 31: Software Testing or Quality Assurance

Cyclomatic Complexity

It is important to testers because it provides an indication of the amount of testing.

Cyclomatic complexity is defined as control flow graph G,cyclomatic complexity V(G):

V(G)= E-N+2 Where

N is the number of nodes in G

E is the number of edges in G

Page 32: Software Testing or Quality Assurance

Read AIF A < 0 THEN Print ?A negative?

ENDIF

IF A > 0 THEN Print ?A positive?

ENDIF

Cyclomatic complexity= 3

E-N+2

8-7+2=3

Cyclomatic Complexity

Page 33: Software Testing or Quality Assurance
Page 34: Software Testing or Quality Assurance