Friday, April 5, 2013

What is Test Automation?

Software Testing has always been an essential part of the software industry. With crunch in timelines and increasing scope of testing, Automation can play a key role for getting the Testing phase complete within the stipulated time. Test automation is the process of reducing and whenever possible removing human interactions from an existing manual testing process. There are different tools available in the market o achieve test Automation of the Application under Test (AUT). With variety of environments available in the market to develop an application, it gets difficult to get one tool which can cater to all the needs of the Applications. Quick test Pro (QTP) does support a lot of environment through the use of Add-ins specified to the environment.

Contributed by: Vamsi Gowtham
m.vamsigowtham@gmail.com

Thursday, April 4, 2013

Risk Life Cycle

The life cycle involved the below stages

    • Risk Identification.
    • Risk prioritization.
    • Risk planning.
    • Risk monitoring.

In Risk identification stage, all the members of the projects do a brain storming and identify the possible risks for the project. Few risks will also be included from the risk database that is maintained by the organization.

In Risk prioritization stage, the impact would be measured using a formula that includes the probability and the impact. Depending on this prioritization would be done to focus on the high severe risks. During this stage few risks will be eliminated if they don’t have a considerable impact on the project variables.

In Risk planning stage, the mitigation and contingency plans for each of the prioritized risks will be identified and implemented.

In Risk monitoring stage, all the risks will be monitored to ensure that the mitigation plan that is in plan is yielding results and the risks doesn’t occur or if occurred the impact is minimized. If the mitigation plan is not yielding the expected results then the plan would be changed and few more controls would be placed to ensure that the impact is minimized. Also risk identification would be done regularly during the course of the project to identify new risks and then the life cycle follows

Risk

Risk Definition

Risk is the possibility that an unforeseen event will occur.

Risk has three components

    The risk – the event that has occurred.
    The probability that the event will occur.
    The impact of the event occurs.

Risk once occurred would have the impact on the project variables which is not expected. Hence Risk management is an activity that has to be performed which involves the activities of defining, measuring, prioritizing, and managing risk in order to eliminate or minimize the impact of it. There can be positive or negative impacts on the project variables. Hence all risks need be eliminated or addressed.

Function point estimation

If the function points are clearly identified and defined, this technique can be considered as the most accurate one.

A function point is a unit of measurement used to know the amount of business functionality provided to the end user. Once the function is identified and categorized into a type, it is then assessed for complexity.

The Function Point Analysis is done using following requirements

    Inputs
    Outputs
    Files
    Inquires
    Interfaces

Requirements Simple Average Complex
Inputs 1 3 5
Outputs 2 4 6
Files 3 6 9
Inquires 2 4 6
Interfaces 3 5 7

Depending on the functional points for each case the above factor would be multiplies.

For example if there are 3 simple inputs then the factor would be 3 X 1 = 3.
Then project adjustment factor have to be calculated which is the sum of the below parameters.
    Complex internal processing.
    Code to be reusable.
    High performance.
    Multiple sites.
    Distributed processing.
Productivity = No of outputs/ No of inputs.
Function Points = Productivity/ Inputs.
Adjustment calculation: Using this Adjusted FPs the final effort estimate would be calculated.

Test case point estimation

In this case, all the test cases that are to be executed should be finalized and approved by client. The number test cases are the main part of this technique. Each test case has to have a complexity defined as high, medium and simple. Now, the complexity and the no. of test cases along with the historic data of how many test cases can be executed by a resource for a day will be considered for the estimating the project.

This technique also require good amount of experience.

Now no. of test cases for each complexity should be calculated and for each complexity the amount of effort required should be defined and total effort will be calculated.

A buffer time will be added for the project management activities after the effort is arrived.

3 point estimation

3 point estimation is most widely used technique and has to be only done experienced people. In this technique the project or task is divided into sub modules or sub tasks. For each task 3 possibilities would be considered. They are

    a. worst case scenario.
    b. best case scenario.
    c. most likely scenario.

These can be defined depending on the experience of similar projects or past experience or historical data of the organization.

After arriving at the 3 values, the effort is calculated by averaging the worst case, best case and 4 times the most likely case.

The formula is


Effort = (best + 4 most likely + worst) / 6.

Why Estimations

Why Estimations?

    1. Estimating is mandatory task for any project or task as performing without any plan will not result in a quality output.

    2. Estimations provide predictability though they are not accurate in practical scenarios.

    3. The resources can be planned if estimations are in place.

    4. The cost of the project or task would be clear and can be projected to the management if estimations are done.

    5. Estimations form an input for the training plan and risk plan.


AI in Software Testing: How Artificial Intelligence Is Transforming QA

For years, software testing has lived under pressure: more features, faster releases, fewer bugs, smaller teams. Traditional QA has done her...