Software Test Life Cycle

Software Test Life Cycle / Software Test Process

Manual Test Process and Automated Test Process (using UFT/QTP and Selenium).

Software Test Process or Software Test Life Cycle may vary from One compay to another and one project to another, but what I am going to explain is Industry Standard process. Some companies may not follow formal process due to lack of documentation and Time etc...

I) Software Test Process (Manual Testing)

Four Important phases of Software Test Life Cycle or Software Test Process,

i) Test Planning

ii) Test Design

iii) Test Execution

iv) Test Closure
-----------------------------------------------------------
i) Test Planning

Roles:

1) Test Lead / Team Lead / Test Manager - Test Planing and Guidence to Team Members

2) Testers / Team Members - Contribution to Test Plan

a) Input or Reference Documents for Test Planning Phase

Test Requirements,
Project Plan,
Test Strategy,
-------------------
Design Documents
Corporate Standard documents etc...

b) Tasks

1) Understanding and Analyzing Test Requirements
2) Risk Analysis
3) Test Strategy Implementation
4) Test Estimations (Scope, Time, Resources, Budget etc...)
5) Team Formation
6) Test Plan Documentation
7) Configuration Management Planning
8) Traceability Matrix documentation
9) Define Test Environment Setup

c) Output

Test Plan Document
---------------------------------------------
ii) Test Design

Roles:

Test Lead - Guidance, Monitoring and Control the Test Process.

Testers - Test Case Documentation and Test Data Collection

a) Input or Reference Documents for Software Test Design Phase

Test Requirements
Test Plan Document
----------------------
Test Case Template 
-----------------------
Design docs
Process guidelines docs
Corporate Standards docs

b) Important Tasks in Test Design Phase

1) Understanding Test Requirements
2) Generate Test Scenarios
3) Test Case Documentation
4) Test Data Collection

c) Output

Test Case documents

Test Data
-------------------------------------------------------
iii) Test Execution

a) Input or Reference Documents for Software Test Execution Phase

Test Requirements
Test Plan document
Test Case docs
Test Data
--------------------
Defect Report Template
----------------------
Readiness of AUT (Application Under Test)
Readiness of Test Environment (Test Lab)

b) Important Tasks in Test Execution Phase

1) Verify Test Environment Setup

2) Create Test Batches
3) Test Execution
Smoke Testing
Comprehensive Testing 
Reporting Defects
Tracking Defects
Re & Regression Testing Cycle 1
Sanity Testing
Execute Regression Test Cases
Reporting Defects
Tracking defects
Re & Regression Testing Cycle 2
Sanity Testing
Execute Regression Test Cases
Reporting Defects
Tracking Defects
.
.
.
Final Regression
-----------------------------------
c) Output

Opened and Closed Defect Reports

Tested Software
-----------------------------------------------
iv) Test Closure

a) Input or Reference Documents for Software Test Closure Phase

Test Requirements
Traceability Matrix document
Test Plan Document
Opened and Closed Defect Reports
------------------------------
Test Summary Report Template
----------------------------

b) Important Tasks in Test Execution Phase

1) Evaluating Exit Criteria
2) Collect all documents and prepare Test Summary Report.
3) Send Test deliverables to Customer.
4) Improvement suggestions for future projects.
-----------------------------------------------------
II) Selenium Test Process

Five Important Phases in Selenium Test Process

i) Planning

ii) Generate Basic Test Cases

iii) Enhance Test Cases

iv) Running and Debugging Test Cases

v) Analyzing Test Results & Reporting Defects
-----------------------------------------------------------
i) Test Planning

• Get Application Environment (UI design and Database) details from Development Team.

• Analyze the AUT (Application Under Test) in terms of Object Identification.

         Using Recording feature in Selenium IDE
         Using Element Inspectors we can inspect elements. (Page Inspector in                Mozilla Firefox, IE or Google Chrome -Developer tools)

• Select Test cases for Automation

1) Test cases that we have to execute on Every build (Sanity Tests)
2) Test cases that we have to execute on every modified build(Regression               Tests)
3) Test cases that we have to execute using multiple sets of Test data                     (Data Driven Tests)

•  Choose Selenium Tools and Setup Selenium Test Environment.

Ex: Select Selenium Tool (Selenium WebDriver), programming language (Java) and Testing Framework(TestNG) etc...
-------------------------------------------------------------
ii) Generating Basic Tests

If you choose Selenium IDE:
a) Using Recording
b) Type Test steps using Element locators and Selenese Commands.

If you choose Selenium WebDriver
Using Element locators and Webdriver Methods/commands
------------------------
iii) Enhancing Tests

1) Inserting Verification points

Selenium IDE:
Using Assert/Verify Commands

Selenium WebDriver
a) Using Java Conditional Statements 
b) Using JUnit or TestNG Framework Assertion methods.

2) Parameterization

Selenium IDE:
Selenium IDE doesn't support Parameterization.

Selenium WebDriver
By importing External files (Test data) we can Parameterize Test cases.

3) Synchronization

In Selenium IDE: Increase default Synchronization Time

In Selenium WebDriver:  Use Java Thread.sleep or WebDriver implicitlyWait command.

4) Error Handling

Handling expected and unexpected errors.

5) Adding Comments (Optional)

Etc...
-------------------------------------------------
iv) Running and Debugging Test Cases

Running /Executing Test cases (Mandatory)

Types of Test Run

Single Test Run

Test Batch Run
Using Testing Framework (JUnit/TestNG) we can conduct Batch testing
-----------------------
Debugging Test Cases (Optional) 

When Debugging is Required?

Scenario 1: Test case is not showing any errors and providing correct output/result - Debugging is not required.

Scenario 2: Test case is showing errors - Debugging is Optional.

Scenario 3: Test case is not showing any errors and Not providing correct output/result - Debugging is required.
---------------------------------------------------
v) Analyzing Test Results and Reporting Defects

Analyzing Test Results

• Selenium IDE provides test result (Summary only) for every Test case iteration.

• Selenium WebDriver doesn't have Reporting facility.

• Using either JUnit or TestNG we can generate Test Reports.
--------------------------------------------------
Status of Test results in Functional Test Automation

1) Pass (if Expected = Actual)

2) Fail (if Expected Not equals Actual)

3) Done (if there are no verification points  in a Test Case)

4) Warning (if any interruption during test execution)
----------------------------------------------------------
Reporting Defects

Selenium doesn't integrate with other tools for Test management/Defect management. After analyzing the Test Results, if you find any deviation from expected then Report Defects using your company Defect Management System.
-----------------------------------------------------------------------
Note:

In Selenium Testing (Test Automation using Selenium) focus on,

1) Selenium WebDriver to Create Test Cases using Element Locators and WebDriver API Commands.

2) Java Programming to Enhance Test Cases

3) TestNG Framework to group Test Cases, prioritize Test Cases, execute Test Batches and generate Test Reports.
-----------------------------------------------------------------------

III) UFT / QTP Test Process

Five Important phase in UFT Test Process

i) Planning

ii) Generate Basic Tests


iii) Enhance Tests


iv) Running and Debugging Tests


v) Analyzing Test Results & Reporting Defects

--------------------------------------------------------------
i) Test Planning

1) Get Environment (UI Design Technology and Database)Details from Development Team and select appropriate Add ins

2) Analyze the AUT in terms of Object Identification

3) Select areas / Test cases for Automation
        a) Tests that we have to execute on every build (Sanity Tests)
        b) Tests that we have to execute on every modified build (Regression Tests)
        c) Tests that we have to execute using multiple sets of Test Data (Data Driven Tests)

4) Tool settings Configuration and Globalize

5) Automation Framework Implementation (Optional)

ii) Generate Basic Tests

In two ways we can create Tests in UFT (formerly QTP)

1) Object Repository based Test Design
    a) Recording
    b) Keyword Driven Methodology

2) Descriptive Programming / Programmatic Descriptions
    a) Static Programming
    b) Dynamic Programming

iii) Enhance Tests

We have several methods for Enhancing Tests, some methods belong to UFT and Some methods belong VBScript. You can use both UFT Tool features and VBScript features to enhance Tests.

1) Inserting Checkpoints 

2) Inserting Output Values

3) Parameterization

4) Adding Comments (Optional)

5) Inserting Transaction Points 

6) Synchronization

7) Define Test Result

8) Calling Actions, Functions (Reusable Components)

9) Inserting Flow Control Statements

10) Error Handling Etc...
------------------------------------------------------
iv) Running and Debugging Tests

• We can Debugging UFT / QTP Tests using VBScript Debug commands and Breakpoints.

• We can Run Single Test and Test Batches (Series of Tests).
---------------------------------------------------
v) Analyzing Test Result & Reporting Defects

• UFT provides Test Result for every Test iteration and we can Defined Test Result using Reporter utility object.

Note: Generally UFT tool provides test result for every test iteration if we use UFT Tool features like Checkpoints, Transaction points, Synchronization point, Out put values etc…, if we use our own logic like Conditional statements, loop statements user defined functions etc… then we need to define Test Result.

Status of Test Result:

(UFT supports 4 types of Status for Test Result)

        1) Pass (If expected = Actual then Pass)
        2) Fail (If expect <> Actual then Fail)
        3) Done (If there is no verification point, only plain execution then Done                 status)
        4) Warning (Problems during test execution then Warning status)

Reporting Defects

• After analyzing the Test Results, if you find any deviation from expected then Report Defects using your company Defect Management System.

• If we integrate UFT with ALM then we can send Defects directly form UFT Result window to ALM Project.
------------------------------------------------------------

16 comments:

Manual Testing and Selenium document is very short,clear and very easy to learn and understand for those who are searching job in Software Testing line. Thank you.

Very helpful easy to understand thank you

Hi Sir, I am following your Selenium WebDriver tutorials, which are really incredible. Thank you sir for posting.

Very useful notes..than you sir !!

Hello Sir,
Its a good article for brushing your manual testing skills.
Appreciate your support.

Thank you sir,
one can know complete overview of entire testing process through this page.

Tutorials provided by you are easy to understand and helpful. I always looked to your tutorials if facing any issues. Thank you.

very helpful and easy to understand.Thank you so much sir,

its very useful...Thanks..

Very helpful and useful. Easy to understand.

Good high level information, detailed as I have come to expect from all your material.

Thanks you very much Sir for your valuable contribution for the success of IT aspirants.

Hi Sir, your testing tutorials are very easy to follow and very useful.

Post a Comment