Software Testing in Detail
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.
Pages: 1 2
Written by : babafakruddin
( Treats Given : 9 Treats Attended : )




