Sunday, September 30, 2007

Test Stratagizing

Overview

This phase involves selecting the best suited approach and arriving at the effort & cost estimation for executing the project. Various components of this phase can be found below


Entry-criteria:
1. Requirements Documents
2. Requirement Traceability matrix.
3. Test automation feasibility document.


Activities:
1. Analyze various testing approaches available
2. Finalize on the best suited approach
3. Preparation of test plan/strategy document for various types of testing
4. Test tool selection
5. Test effort estimation
6. Resource planning and determining roles and responsibilities.

Metrics & Measures:
Effort spent on
1. Test plan/strategy preparation
2. Test plan/strategy review
3. Test plan/strategy rework
4. Test tool selection
Defects
1. Test Plan/strategy review defects.

Deliverables:
1. Test plan/strategy document.
2 Effort estimation document.

Exit-criteria:
1. Approved test plan/strategy document.
2. Effort estimation document signed off.

Monday, July 30, 2007

Requirement Analysis Level

Requirement Analysis

Overview

 

During this phase, test team studies the requirements from a testing point of view and identify the testable requirements. This also includes interaction with various stakeholders involved in the project to understand requirements in detail to define the scope of the work. Automation feasibility analysis (checking the applicability of various test tools to carry out and manage the testing) is also one of the activities done in this phase. Requirements could be classified as

Functional Requirements: These specify the functions that a system or system component must be able to perform.

Non Functional Requirements: Non-functional requirements specify system's quality characteristics/attributes like performance/security/availability etc.

 
Various components of this phase can be found in the below diagram.

 

Entry-criteria

 

1.Requirements Document available (both functional and non functional)

2.Acceptance criteria defined.

3.Application architectural document available.

 

Activities under Analysis Stage:

 

1.Analyse business functionality to know the business modules and module specific functionalities.

2.Identify all transactions in the modules.

3.Identify all the user profiles.

4.Gather user interface/authentication, geographic spread requirements.

5.Identify types of tests to be performed.

6.Gather details about testing priorities and focus.

7.Prepare Requirement Traceability Matrix (RTM). Refer to Test Deliverables (RTM section) for the details of this.

8.Identify test environment details where testing is supposed to be carried out.

9.Automation feasibility analysis (if required).

 

Measures

 

1.Effort spent on

a.   Requirement Analysis to prepare RTM

b.  Review and rework of RTM
c. Automation feasibility analysis (if done)

       2.Defects

                        a. RTM review defects.

Exit-criteria

 

Signed off RTM

Test automation feasibility report signed off by the client

 

Monday, July 2, 2007

History

History

 

Banking is one of the most important services in financial sector. It also provides fuel for economic growth of a country. It offers safety and liquidity for the investors. Banks are the principal source of credit for dealers, households, small businesses like retail traders and large business houses. Efficiency of a bank depends on their ability to satisfy their investors by offering comparatively a better interest rate to depositors and at the same time offering credit to their borrowers comparatively at cheaper interest rates. With a narrow interest rate spread (difference between borrowing and lending rate), they should make profit also.

Looking into the present profile of a bank, it has grown up phenomenally offering large number of products other than the traditional functions of accepting deposits and lending funds. It is worth analyzing the historic background of evolution of banking services. When and how the banks appeared? Linguistics (the science of language) and etymology (the study of origin of words) suggest an interesting story about the origin of banking. Both the old French word ' banque' and the Italian word ' banca' were used centuries ago to mean a 'bench' or 'money changers table'. This describes quite well what historians have observed concerning the first bankers who lived more than 2000 years ago. They were money changers situated usually at a table or in a small shop in the commercial district aiding travelers who came to town by exchanging foreign coins for local money or discounting commercial notes1 for a fee in order to supply merchants with working capital.

Software Test Life Cycle

Software Test Life Cycle

Different stages involved in testing and certifying a software product is called as Software Test life cycle (STLC). Each of these stages has definite entry criteria, exit criteria, measures/metrics, set of activities & deliverables as involved.

 

The different lifecycles involved in a testing project are given below.

1.      Requirement Analysis

2.      Test Stratagies

3.      Test Case Development

4.      Environment Selection

5.      Test Execution

6.      Test Cycle Closure

Monday, June 11, 2007

Testing Overview

1. What is Testing?

 

“Testing is an activity in which a system or component is executed under specified conditions; the results are observed and recorded and an evaluation is made of some aspect of the system or component

·       

 

Software testing is a process used to identify the correctness, completeness and quality of developed computer software. It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before the product is released to the end users.

2. Why we need Testing?

 

It is the primary duty of a software vendor to ensure that software delivered does not have any defects and that the customer’s day-to-day operations do not get affected. This can be achieved by rigorously testing the software.

To protect an organization from any trouble and in order to address various risks involved during a change to an organization, testing is important. Risks can be related to the ones affecting reputation or resources or could be the ones leading to legal issues.

The following is a list of major computer system failures caused by software bugs. These examples highlight the kind of catastrophic consequences that software bugs have on business, on life and property:

 

ü      In April of 1999 a software bug caused the failure of a $1.2 billion military satellite launch, the costliest unmanned accident in the history of Cape Canaveral launches. The failure was the latest in a string of launch failures, triggering a complete military and industry review of U.S. space launch programs, including software integration and testing processes. Congressional oversight hearings were requested.

ü      On June 4 1996 the first flight of the European Space Agency's new Ariane 5 rocket failed shortly after launching, resulting in an estimated uninsured loss of a half billion dollars. It was reportedly due to the lack of exception handling of a floating-point error in a conversion from a 64-bit integer to a 16-bit signed integer.

ü      The computer system of a major online U.S. stock trading service failed during trading hours several times over a period of days in February of 1999 according to nationwide news reports. The problem was reportedly due to bugs in a software upgrade intended to speed online trade confirmations.

ü      In November of 1997 the stock of a major health industry company dropped 60% due to reports of failures in computer billing systems, problems with a large database conversion, and inadequate software testing. It was reported that more than $100,000,000 in receivables had to be written off and that multi-million dollar fines were levied on the company by government agencies.

ü      Software bugs caused the bank accounts of 823 customers of a major U.S. bank to be credited with $924,844,208.32 each in May of 1996, according to newspaper reports. The American Bankers Association claimed it was the largest such error in banking history. A bank spokesman said the programming errors were corrected and all funds were recovered.

 

All the above incidents only reiterate the significance of thorough testing of software applications and products before they are pushed to production. It clearly demonstrates that cost of rectifying defect during development is much less than rectifying a defect in production.   

 

Monday, June 4, 2007

How Imp Testing Is?

Testing is a very important activity in product development lifecycle as it measures the quality of product and helps in determining production readiness of an application. It checks whether all requirements are implemented correctly and detects non-conformances if any, before deployment. Testing makes software predictable in nature, improves quality and reliability. It also helps marketability and retention of customers.

The various factors that contribute to making testing a high priority of any software development effort include:
1. Reduction of software development cost - Testing software in the initial stages of development reduces the cost of developing the program. A problem that goes undetected in the initial software development lifecycle stages can be much more expensive to resolve at a later stage. The following diagram can be used to explain the same.
2. Ensures completeness of the product - Testing a software product ensures that the customer requirements map to the final product that is delivered.
3. Reduction in total cost of ownership- By providing software that looks and behaves as shown in the user documentation, customers require fewer hours of training support from product experts and thus reduce the total cost of ownership.
4. Accretion of revenues - A bug free code (which is obtained only after intensive testing) also brings in customer satisfaction, which leads to repeat business and more revenues.

Sunday, June 3, 2007

Introduction

I would like to write about few software testing facts, like How important is testing in building up a project in a software field, what kind of effect it will make on financial investments kept on projects.