Software Testing or Quality Assurance

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

description

software testing is necessary to make sure the product 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.

Transcript of Software Testing or Quality Assurance

Software Testing

Presented By : Pushpendra Singh

Designation : Senior QA at Trimantra Software solution

1What 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.Why ? What ? How? Who? Why to test ?

What to test ?

How to test ?

Who test ?3Why 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.

Why is testing necessary ?Software should be

Error free as per requirement

Efficient

SecuredStart Testing-when?Testing starts right from the requirementsphase and continues till the release time .Participations in testing Customer

User

Developer

Tester

AuditorCommon problems in thesoftware development process ?Poor requirements Unrealistic scheduleFeaturesMiscommunication8Misconception 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.9What 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 10Software Development Life Cycle (SDLC)The seven stages of SDLC process are

Requirement Gathering

Analysis.

Design

Development

Testing

Implementation

Maintenance11There are few recognized models.....

Water Fall Model

Prototype Model

Incremental Model

RAD (Rapid Application Development) Model

Spiral Model

V Model

Agile ModelSDLC Models 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). Requirements Analysis

Test Planning

Test Analysis

Test Design

Test Construction and Verification

Test Execution and Bug Reporting

Final Testing and Implementation

Post ImplementationSTLC Stages Verification and ValidationRequirement review Requirement Functional specification CODE REVIEW Design Build software CodeRelease For use Build system Functional space review Design Review Unit testing Integration testing System testing Acceptance testing Verification also known as quality assurance.Static testing is done on this.

Walkthrough Inspection Technical review Audit VerificationA step-by-step presentation by the author of the documentInspection - A type of peer review that relies on visual examination of documents to detect defects.Technical review Audit :- a. internal b. external 16ValidationValidation 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.Levels Of Testing Unit Testing

Integration Testing

System Testing

User Acceptance TestingUnit - 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 Functionality testing

Smoke testing

Sanity testing Functional Testing Type1. This testing is performed by the developers or testers.2. Smoke testing is a subset of Regression testing.3. Smoke testing is like General Health Check Up.

Sanity testing is usually performed by testers.Sanity testing is a subset of Acceptance testingSanity Testing is like specialized health check up

20 Recovery Testing Compatibility Testing Configuration Testing Inter system Testing Installation Testing performance Testing Load Testing Stress Testing Data Volume TestingSecurity testingNon-Functionality Testing TypePerformance testingis a type oftestingintended to determine the responsiveness, throughput, reliability, and/or scalability of a system under a given workload.

Load testingis the process of putting demand on a system or device and measuring its response.Load testingis performed to determine a system's behavior under both normal and anticipated peakloadconditions.

Many a times, an application is hosted across locations; however, all data needs to be deployed over a central location. The process of testing the integration points for single application hosted at different locations and then ensuring correct data flow across each location is known as inter system testing.

21Usability Testing Use interface (GUI)

Manual support testing Black Box and White box TechniquesBlack 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 )Test Case Design methods:

Equivalence Class partitioning method

Boundary value analysis

Decision Tables

State transition testing

Use case based testing

Error guessingBlack box testingequivalence class represents a set of valid or invalid states for input condition.

Test the boundary of the field (2-25 )

Decision Tables: login - make condition

State transition testing: - look at each and every possible way.

Use case based testing:- go through the usecase document and try to use software

24White box TestingTesting 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.White Box - testing techniques Statement coverage

Decision coverage

Condition CoverageStatement coverageExecute all the statements at least once

Weakest form of coverage as it requires every line of code to be checked?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 conditionTrueFalse?Condition CoverageExecute each decision with all possible outcomes at least once

It requires all cases.

Checks each of the ways condition can be made true or falseCondition Coverage?12??123??123430Cyclomatic ComplexityIt 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 GCyclomatic complexity is a source code complexity measurement that is being correlated to a number of coding errors. It is calculated by developing a Control Flow Graph of the code that measures the number of linearly-independent paths through a program module.Lower the Program's cyclomatic complexity, lower the risk to modify and easier to understand. It can be represented using the below formula:

31Read 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=3Cyclomatic Complexity

I f A is less thene 0Print ?A

32