Sunday 6 January 2008

The Benefits of early test design

Benefits of early test design

> 60% of the defects have already been made before coding/implementation has started.
> The thought process of designing tests early int eh lifecycle helps to verify the test basis inconsistencies and omissions.
> Their removal will increase the quality of the test basis and help to prevent defects from being introduced into the code.


As we know that the later in the lifecycle defects are detected, the more expensive they are to fix. It is most cost effective to find and fix requirements defects at the requirements stage. Building the right software correctly gives a lower cost overall.

The thought process of designing tests in the early lifecycle can help to prevent defects from being introduced into code. We some times refer to this as 'verifying the test basis via the test design'. The test basis includes documents like the requirements and design specification.

According to ISTQB
Requirement : A condition or capability needed by a user to solve a problem or acheive an objective that must be met or prossessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document.

Test Basis : All documents from which the requirements of a component or system can be inferred. The documentation on which the test cases are based. If a document can be amended only by way of formal amendment procedure, then the test basis is called a frozen test basis.

Test Case : A set of input values, execution preconditions, expected results and execution post cnditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement.

> Documents reviewed can help to prevents defects occuring in to the code.
> Static analysis of code can identify defects in the cde and give a measure of complexity of the code.
> Time invested in early life cycle test activities will reap many benefits
* Quality of product and documentation improved
* Defects found are relatively cheap to fix.
* Fewer defects by reducing fault multiplication.

There are different types of reviews we can carry out, but an objective of all types of reviews is to find defects.

Time invested in early lifecycle test activities will reap many benefits:
* Quality if product improved at all stages in the process
* Reduce the number of faults to detect by reducing fault multiplication
* Less rework at later development stages.
* System implemented on time and to budget.

ISTQB defines
Review : An evaluation of the product or project status to ascertain discrepancies from planned results and to recommend improvements. Examples include management review, informal review, technical review, inspection, and walkthrough.

When we look at the test principles you will see the following test principle is related to this discussion:
Testing Principle - Early Testing : Testing activities should start as early as possible in the software or system development lifecycle, and should be focused on defined objectives.

9 comments:

Unknown said...

its realy helpfull..thx a lot

Shalini said...

i am shalu,new to your blog.thanx for providing u.seful information

Shanthi said...

Hi Shilaja,

Really the sample qusetions that you have published is really helpful and informative...
Thanks a lot!!!

Unknown said...

Really Great Job.

Anonymous said...

Its great to see ablog so informative...thanks for the sample papers

Satish said...
This comment has been removed by the author.
Software testing training  said...

I always think that there is not benefit to make test design early. After reading your post my mind has completely changed as I knew so many benefits of it.

Anonymous said...

Thanks this is a good topic to discuss. Writing test cases is one of the major and most important activities which any tester performs during the entire testing cycle. The approach for writing good test cases will be to identify, define and analyse the requirements.
When you begin writing the test cases, there are few steps which you need to follow to ensure that you are writing good test cases

If you are interested then also go through the following article to check a step by step approach to write a good test case:

How to write a good test case?

My 2 cents :-)

Unknown said...

Awesome! Found an Exact one