15

Click here to load reader

Software test life cycle

Embed Size (px)

DESCRIPTION

Now to answer, “What is Testing?” we can go by the famous definition of Myers, which says, “Testing is the process of executing a program with the intent of finding errors”

Citation preview

Page 1: Software test life cycle

Software test life cycle

“ Why testing is essential for Software.”

Author :- Sumit SinhaSoftware Business AnalystCSM®,EPGBM from IIM-C

Page 2: Software test life cycle

Agenda... Introduction to Software test life cycle Black box and White box testing GUI testing Regression testing Phases of testing Integration testing Acceptance testing System testing Unit testing

Page 3: Software test life cycle

Every testing project has to follow the mini waterfall model of the testing process and scrum framework in each steps as well.The waterfall model is as given below

1.Test Strategy & Planning

2.Test Design

3.Test Environment setup

4.Test Execution

5.Defect Analysis & Tracking

6.Final Reporting

According to the respective projects, the scope of testing can be tailored, but the process mentioned above is common to any testing activity.

Introduction to Software test life cycle

Page 4: Software test life cycle

Requirement Study

Low Level Design

High Level Design

Unit Testing

Integration Testing

System Testing

User Acceptance Testing

Production Verification Testing

SDLC - STLC

Regression Round 3

Performance Testing

Regression Round 2

Regression Round 1

Design Review

Architecture Review

Specification Review

Requirements Review

Requirements

Specification

Architecture

Detailed Design Unit Testing

Integration Testing

System Testing

Code Code Walkthrough

Software testing in all phases of the software development life cycle has become a necessity as part of the software quality assurance process. Right from the Requirements study till the implementation, there needs to be testing done on every phase. The V-Model of the Software Testing Life Cycle along with the Software Development Life cycle given below indicates the various phases or levels of testing.

“V” model & “W” model

Page 5: Software test life cycle

Black box and White box testing

Black-box test design treats the system as a literal "black-box", so it doesn't explicitly use knowledge of the internal structure. It is usually described as focusing on testing functional requirements. Synonyms for black-box include: behavioral, functional, opaque-box, and closed-box.

White-box test design allows one to peek inside the "box", and it focuses specifically on using internal knowledge of the software to guide the selection of test data. It is used to detect errors by means of execution-oriented test cases. Synonyms for white-box include: structural, glass-box and clear-box.

While black-box and white-box are terms that are still in popular use, many people prefer the terms "behavioral" and "structural". Behavioral test design is slightly different from black-box test design because the use of internal knowledge isn't strictly forbidden, but it's still discouraged. In practice, it hasn't proven useful to use a single test design method. One has to use a mixture of different methods so that they aren't hindered by the limitations of a particular one. Some call this "gray-box" or "translucent-box" test design, but others wish we'd stop talking about boxes altogether!!!

Page 6: Software test life cycle

GUI testing

GUI is the abbreviation for Graphic User Interface. It is absolutely essential that any application has to be user-friendly. The end user should be comfortable while using all the components on screen and the components should also perform their functionality with utmost clarity. Hence it becomes very essential to test the GUI components of any application. GUI Testing can refer to just ensuring that the look-and-feel of the application is acceptable to the user, or it can refer to testing the functionality of each and every component involved.

The following is a set of guidelines to ensure effective GUI Testing and can be used even as a checklist while testing a product / application.

1. Section 1 - Windows Compliance Testing...

1.1 Application,1.2 Text Boxes,1.3 Option (Radio Buttons),1.4 Check Boxes, 1.4 Command Buttons

1.5 Drop Down List Boxes,1.6 Combo Boxes1.1.1List Boxes

2. Section 2 - Screen Validation Checklist...

2.1 Validation, 2.2 Navigation, 2.3 Usability, 2.4 Data Integrity, 2.5 Modes (Editable Read-only),

2.6 General,

Page 7: Software test life cycle

Regression Testing

Regression testing is the process of testing changes to computer programs to make sure that the older programming still works with the new changes.

Regression testing is a normal part of the program development process. Test department coders develop code test scenarios and exercises that will test new units of code after they have been written.

Before a new version of a software product is released, the old test cases are run against the new version to make sure that all the old capabilities still work. The reason they might not work because changing or adding new code to a program can easily introduce errors into code that is not intended to be changed.

The selective retesting of a software system that has been modified to ensure that any bugs have been fixed and that no other previously working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software. Also referred to as verification testing

Regression testing is initiated after a programmer has attempted to fix a recognized problem or has added source code to a program that may have inadvertently introduced errors.

It is a quality control measure to ensure that the newly modified code still complies with its specified requirements and that unmodified code has not been affected by the maintenance activity.

Page 8: Software test life cycle

Phases of Testing

The Primary objective of testing effort is to determine the conformance to requirements specified in the contracted documents. The integration of this code with the internal code is the important objective. Goal is to evaluate the system as a whole, not its partsTechniques can be structural or functional.Techniques can be used in any stage that tests the system as a whole (System testing ,Acceptance Testing, Unit testing, Installation, etc.)

Phases of testing...

Page 9: Software test life cycle

Integration testing

Integration testing tests integration or interfaces between components, interactions to different parts of the system such as an operating system, file system and hardware or interfaces between systems.

Also after integrating two different components together we do the integration testing. As displayed in the image below when two different modules ‘Module A’ and ‘Module B’ are integrated then the integration testing is done.

What is IntegrationTesting

Integration testing is done by a specific integration tester or test team. Integration testing follows two approach known as ‘Top Down’ approach and ‘Bottom Up’approach as shown in the image below:

Page 10: Software test life cycle

Integration testing

1. Big Bang integration testing:

2. Top-down integration testing:

3. Bottom-up integration testing:

Page 11: Software test life cycle

Acceptance testing

In software engineering, acceptance testing is formal testing conducted to determine whether a system satisfies its acceptance criteria and thus whether the customer should accept the system.

The main types of software testing are:

Component, Interface, System, Acceptance, Release.

Acceptance Testing checks the system against the "Requirements".

Hence the goal of acceptance testing should verify the overall quality, correct operation, scalability, completeness, usability, portability, and robustness of the functional components supplied by the Software system.

Severity Levels :-

These levels will range from (say) 1 to 6 and will represent the relative severity, in terms of business / commercial impact, of a problem with the system, found during testing. Here is an example which has been used successfully; '1' is the most severe; and '6' has the least impact :-

Show Stopper - It is impossible to continue with the testing because of the severity of this error / bug

Critical Problem - Testing can continue but we cannot go into production (live) with this problem

Page 12: Software test life cycle

Continued...

Major Problem - Testing can continue but live this feature will cause severe disruption to business processes in live operation

Medium Problem - Testing can continue and the system is likely to go live with only minimal departure from agreed business processes

Minor Problem - Both testing and live operations may progress. This problem should be corrected, but little or no changes to business processes are envisaged

'Cosmetic' Problem - Colours, fonts, pitch size However, if such features are key to the business requirements they will warrant a higher severity level.

Page 13: Software test life cycle

System testing

In system testing the behavior of whole system/product is tested as defined by the scope of the development project or product.

It may include tests based on risks and/or requirement specifications, business process, use cases, or other high level descriptions of system behavior, interactions with the operating systems, and system resources.

System testing is most often the final test to verify that the system to be delivered meets the specification and its purpose.

System testing is carried out by specialists testers or independent testers.

System testing should investigate both functional and non-functional requirements of the testing.

Page 14: Software test life cycle

Unit testing

When is it performed?

Unit Testing is the first level of testing and is performed prior to Integration Testing.

Who performs it?

Unit Testing is normally performed by software developers themselves or their peers. In rare cases it may also be performed by independent software testers.

TASKS...

Unit Test Plan : -

Prepare, Review, Rework, Baseline

Unit Test Cases/Scripts :-

Prepare, Review, Rework, Baseline,

Unit Test ;-

Perform

Page 15: Software test life cycle

Thank you!

Name :- Sumit Sinha

Contact :- [email protected]

https://www.linkedin.com/pub/sumit-sinha-csm%C2%AE-iim-calcutta/19/aa5/78a