Software Testing Types
Conformance Testing: Verifies implementation conformity
with industry standards. The standards cover portability,
interoperability, and compatibility. Conformance Testing checks
behavior for all of these categories.
Smoke Testing: A good starting point that
is just a simple procedure. Without requiring much time or
effort, a test like this allows you to determine if the
product is ready for more detailed testing. This got its
name from traditional hardware testing, where testers would
turn on the product just to see if it would catch fire.
Black Box Testing: Testers don’t know
anything about the internal design or coding for this
process. The focus is on requirements and functionality.
White Box Testing: Here the testers
actually know all the details behind the internal design and
codes to the application. This helps them work on the
coverage of code statements, branches, paths, and
conditions. White Box Testing may be referred to as Glass
Box Testing.
Unit Testing: The individual parts of the
software are approached separately in these tests. Because a
perfect knowledge of the internal program is essential, the
test is typically reserved for the programmer. Test driver
modules or a test harness might be needed to complete this
process.
Incremental Integration Testing: This is a
bottom up approach, with continuous testing of the
application as functionality is added in pieces. This can be
accomplished by either the programmers or
testers.
Integration Testing: This checks the
combined functionality after the integration process. Code
modules, individual applications, client and server
applications on a network are all involved with this. This
especially is crucial for client/server and distributed
systems.
Functional Testing: While completely
ignoring the internal aspects, this zeroes in on the output
using black box strategy. You can use this to validate an
application, make sure a Web site meets specifications, or
the product does everything it’s intended to. A series of
tests are used for this, using normal and bad data. The
product’s interface, APIs, database management, security,
installation, networking, and other components are all
involved. Some of the testing can be done with automated
tools.
System Testing: This checks the entire
system against requirements.
End-to-end Testing: Along the lines of
system testing, this analyzes the complete application
environment, exposing it to realistic situations. This
includes interactions with databases, using network
communications, and interacting with other hardware,
applications, or systems.
Sanity Testing: This is an easy and fast
test just used to decide if the software can stand up to
more extensive testing. If too much crashing or corruption
is occurring, then immediate improvements are made.
Regression Testing: This completed after
changes have been made. It covers the entire system, so it’s
generally done with automation tools. It accurately proves
that defects have been completely resolved for the upcoming
release, and also that no new problems were created during
the modifications.
Acceptance Testing: This simply gathers
the customers? opinions to make sure it meets their
standards. Acceptance Testing is only done by users or
customers that haven’t been involved with the product
previously.
Load Testing: This observes what the
system does under a heavy load. Testers look to see at what
exact point the product begins to lose efficiency or fail.
This is a broad term that covers Performance Testing and
Stress Testing.
Performance Testing: This assures that the
system matches the performance requirements. The tools used in these
tests allow you to understand your application or WWW site’s
scalability. You can also get a point of reference in an
environment of third party products, like servers and
middleware. Automated tools are crucial for doing these
tests quickly and efficiently.
Stress Testing: Stress greater than the
specifications is introduced to the system, so that testers
can understand the exact point it will fail. Inputting large
numbers that exceed storage capacity, using complex database
queries, and having continuous input is used to achieve
this. The ideal result is an elegant degradation without
catastrophic failure.
Usability Testing:This checks the ease of
use. Making sure that the application is easy to follow and
has clear help documented throughout is essential for
customer happiness.
Install/Uninstall Testing: Using a variety
of operating systems with different hardware and software,
the product is fully installed, partially installed,
upgraded, and uninstalled. The product should respond the
same in all environments.
Recovery Testing: This sees how fast and
well the system is able to recover after crashes, failures
with the hardware, and other major
malfunctions.
Security Testing: This makes sure that
hacks aren’t able to access the system. Unauthorized
internal or external access is considered, so that it can be
prevented.
Compatibility Testing: Using different
combinations of hardware, software, operating systems, and
networks, the testers make sure that the product is
consistently flawless. It’s possible to do this manually,
but easier with automated or regression suite
tools.
Comparison Testing: The product is
analyzed based on standards created by existing products
already on the market.
Alpha Testing: This is user testing done
under the supervision of the testers. It happens as one of
the very last steps, with only minor design changes under
consideration.
Beta Testing: The product is released as a
beta version, for users to try on their own sites. If any
errors are found, the users send in the results.
|