Sunday, October 19, 2008

Testing Is Important, So Plan It Soon

First of all, I want to apologize to all my readers for being away for so long. Personal reasons have kept me away from posting but things are settling down, so I want to resume this enjoyable task, and I hope you keep following my work.

I left my work a few months ago trying to define all the strategies every software development project should define before any work is done. I described many of them, which you will find in earlier posts. Today, I will talk about testing.

I have never talk to anyone in the software development industry who did not believe that testing was one of the most important task in any project. You can ask anyone, and they will tell you that if you want to develop high quality software, you need to test your product. Even so, different people have different opinions on how to test software, and to be honest, they all have a point. This is why you need a testing strategy. You need to make very clear how the software you are developing is going to be tested, and whose responsibility is to test the different parts of your application.

Automation Is Your Friend

Testing is not fun. Manual testing is even worst, and it takes a long time and many resources. Invest in automation, so you can test quicker and more often. There are many tools out there that can help you automate your tests. Learn them and use them. In the long run, it will be worth it.

You Need Manual Tests

There is no way you can automate every single scenario. The reason is very simple. It is impossible that you will think of every possible scenario in advance to implement an automated test. However, when people are manually testing a program, they will come up with very clever ways to break it. Manual testing is important to allow people to be creative about testing.

Once you have found a scenario you did not think about before, you should document it and automate it to make sure you can test it over and over again.

Testing Starts During Development

Testing is a responsibility that begins in the development team. The higher percentage of defects in software can be found by testing during development.

Automated unit tests can help you to test often and insure the code is exercised at the lower level, where most of the defects are initially introduced. They will also help to validate the defects are fixed after they are found.

Testing Continues After You Ship

Some people think that once the product is out the door testing is complete. Unfortunately, there will be defects you have not found because of scenarios you have not think about. You should keep testing after you ship your product. Maybe, you will find defects that can be fixed in a service pack.

Furthermore, your customers will find defects you have not seen before or think about. Treat these defects with the same importance as if they were reported by your QA team. Even give them a higher importance. The defects your customers are reporting are really annoying them and giving your software a perception of poor quality.

The longer it takes to find a defect, the more expensive and difficult it is to fix it. The only way you can find defects is by testing, so the sooner you start testing, the sooner you will start finding the defects and fixing them. The sooner you define a testing strategy, the sooner you can start testing. Your testing strategy is key to the success of you software development project, so start planning before any development is performed.


ritesh shinde said...

Read all the related Posts:

64 Software Manual Testing Interview Questions

Answers To Common Job Interview Questions

Behavioral Questions In Interviews

Questions to Ask at an Interview

Competency based Interview Questions

Read all the related Posts:

How to avoid missing defect in Software Testing?

Defect Management Process

What is the difference between a Test Strategy and Test Plan?

Beginners Guide to ETL Testing

Step by step guide from Test Case Development to Test Execution

Programming @ Prologic said...

This is a good article & good site.Thank you for sharing this article. It is help us following categorize:
it consulting, retail, manufacturing, CRM, digital supply chain management, Delivering high-quality service for your business applications,
Solutions for all Industries,
Getting your applications talking is the key to better business processes,
Rapid web services solutions for real business problems,
Understanding Your Data is the Key to Good Decision-Making,
Web-based Corporate Document Management System,
Outsourcing Solution,
Financial and Operations Business Intelligence Solution,


Anonymous said...

I totally agree that automated testing is really important - there are so many great tools out there now in the testing space. Like Travis CI for continuous testing on every deploy and for software testing coverage and statistics