Thursday, April 4, 2013

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.


Configuration Management

Configuration management is all about having a detailed recording and updating of information that describes an organization’s computer systems including all hardware and software components or artifacts.

Few components or artifacts keep changing with time as the scope, objective or anything else changes. Such components or artifacts can be termed as configurable items. Such information typically includes the versions. Special configuration management software is available that maintains the different versions of the configurable items.

An advantage of a configuration management application is that the entire collection of systems can be reviewed to make sure any changes made to one system do not adversely affect any of the other systems.


Software CM is a discipline for controlling the evolution of software systems.

The activities to be performed are as below:

1. Identification: All the configurable items have to be identified to reflect the structure of the product. This involves identifying the structure and kinds of components, making them unique and accessible in some form by giving each component a name, version identification, and configuration identification. Each item can be given a unique id to identify them in a set of resources.

2. Change management: All the changes that take place to the software components or hardware of the artifacts are to be ported to the tools that are used for the purpose.

3. Status Accounting: any change in the configurable items will create a new version and these are to be recorded and reported and tracked through revision history.

4. Audit and review: reviews and audits have to be conducted to validate the completeness and correctness of the defined process.

The tools that can be used for this purpose are:

1. VSS
2. CVS
3. SVN
4. SharePoint etc.

Project management best practices

Project management best practices

1. Build a good working environment by treating the resources with courtesy.

2. Team member can be motivated by complimenting his good work done and when this is communicated in a public meeting

3. Working late with the team quite often gives a positive impact on the project

4. Meetings should be conducted involving the whole team so that it becomes a platform for a discussion and many new ideas would come up for the improvement. Always start a meeting with a agenda else the meeting cant be a time bound one.

5. Every team member should be assigned with a work on his interest to get a better outcome.

6. Rotate the resources if the resource is unable to perform and guide him or help him to overcome, else replacement would be the only option.

7. Training opportunities should be given to develop their skills that would impact the way they deliver their services

8. Every team member should be treated equally and

9. Avoid criticizing the members publicly. To point out the errors its always a good practice to talk to him personally

10. Avoid talking about team members with other team members

11. Plan properly to overcome working overtime. Working late continuously would bring down their productivity

12. Sincere hard work should be rewarded publicly to pass the positive waves to the team

13. Use of templates and tools cut down the time in achieving the targets

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...