ITTreats.com
Enter your Search term and Hit "Enter"

Wed, 10 Mar 2010 9:39:37 AM +00:00


Software Testing in Detail

Software Testing in Detail
Posted on March 8th, 2009 in Software Testing by babafakruddin

Software testing is probably the most complex task in the software development cycle. It

often takes longer to test the software than it does to write the code. The problems

discovered during the software testing phase add more time onto the coding phase,

resulting in further delays in the product’s release, and so this vicious cycle goes.

It’s nearly impossible to attribute the problems that arise during the software testing

cycle to any single factor. Before going any further, it’s important to clarify one

point. Software that works, but not the way it is supposed to work, is not considered an

error in the coding (also known as a bug). Rather, this situation is the result of an error in

the design phase. Software engineers refer to these differences as a â€oefaultâ€vs. a

â€oefailureâ€. Faults can turn into failures, but that’s a subject for another time.

So why is software testing such a time-consuming and frustrating process? One factor is

the complexity of the software being developed. The more complex the project is, the

more there is to test. Also, complex projects typically involve multiple development team

members, including those working directly for the company and those working as subcontractors.

Software testing troubles directly attributable to the human factor include poorly

documented code and employee turnover. And if the person who is not properly

documenting the project is the same person who leaves the company midway through the

project cycle, the problem quickly compounds.

Another software testing difficulty arises when those developing the software are the

same ones testing that software. These individuals have a much higher level of

understanding about software and computer system. They’re not likely to make the

same types of mistakes during the software testing phase that end users might make using

the finished software. For example, software engineers understand that you never press

the power button before you properly close all applications. End users, in their rush to

burst out of the office at 5:00 pm just want the computer off, and some won’t wait

until every application closes properly.

Plenty of software testing applications are available to help during the software testing

phase. These products are designed to facilitate and enhance the software testing phase,

provided they can be made to work with the software being tested.

The main purpose of software testing is to discover software failures. As failures are

discovered, they can be corrected. However, software testing cannot guarantee that the

software is problem-free. Testing finds many bugs, but even the most extensive testing

processes can’t fix failures that are not uncovered. Never rely on software testing as

proof that no problems exist. That’s considered software verification, an entirely

different process.

Regardless of the difficulties involved with software testing, one truth remains. Software

failures discovered early on cost far less to correct than those that occur in latter stages of

software development, or worse, after the software has been released to the general

public.

Software Testing Tools – Are they really useful? There’s no easy answer to this question.

Software testing is a crucial part of the development process, and tools definitely help

with this oftentimes overwhelming task. But to be useful, software testing tools must

support the testing process.

What does this mean? It means you need to start by understanding the different phases of

software testing. For example, do you understand the difference between black box and

white box testing? Black box confirms only that the software meets its stated

requirements and functions accordingly. White box testing looks at the actual software

code to ensure paths, conditions, code statements and branches are written properly.

Do you know which software testing tools work best for unit testing, integration testing

or system testing? Each of these testing processes addresses a different aspect or view of

the software. Starting to understand that software testing tools are not a “one size fits all”

solution?

Some rounds of software testing are better accomplished using humans, not software

testing tools. Do you know which ones? Functional testing, alpha testing, acceptance

testing and usability testing fall into this category. To confuse matters even a bit further,

you’ve got to make sure you’re using the right type of human for the different “human”

software testing processes.

Software testers work closely with developers throughout all stages of development and

use software testing tools. End users are those individuals for whom the software has

been created. Beta testers are humans with more technical backgrounds (generally) who

get involved in software testing just before the software is ready to be released into

production. They look for last minute bugs and functionality issues. User acceptance

testing ensures the resulting software is “user friendly” and satisfies the end users’ needs;

also important before the software goes into production.

There are even more phases of software testing that go on during the software

development lifecycle. Determining which of the phases are better accomplished using

software testing tools and which are better left to human intervention takes effort. In

larger development houses, the IT department has a pretty good grasp on this. And

they’re the ones who ultimately decide which of the hundreds of software testing tools on

the market are best for their development/testing teams; definitely not an easy task.

Software testing tools are themselves software. As such, each of these testing tools

undergoes the whole development, testing, maintenance and upgrade cycles that other

types of software do. So before making purchasing decisions, it’s best to try out these

products, talk with existing users, research the product’s track record, and know how

much configuration you’ll need to do to get the product up and running.

And remember, software testing tools can’t work miracles. They cannot make poorly

designed software better. They can’t do anything about unrealistic development

schedules. And most importantly, software testing tools will never work properly if

management or others are allowed to continually change software specifications after

development has begun.


P.S. : Please post us Your Valuable Comments on this Article

Written by : babafakruddin
( Treats Given : 9 Treats Attended : )

Post a comment