You can't test every feature of an application. Before you begin
testing, define the aspects of the application that you want to test, focusing
on the features that are most likely to affect the product's installation and
performance in your environment.
Begin the planning process by defining which questions you want your tests
to answer. Do you want to find out how much network throughput you need to
prevent excessive network delays? Do you want to know whether your server is
causing most of a delay? Do you need to know how many users an application can
run concurrently? Do you wonder how the software will work with your other
applications? Do you want to find out how many packets the network transmits and
how large the average packet is?
After you have specified the questions you want to answer, determine which
type of application test will best meet your needs. You have a choice of five
types of tests: throughput, reliability, functionality, regression, and
acceptance.
Throughput testing detects bottlenecks in a system and pinpoints where the
bottlenecks occur. These tests determine an application's throughput as it
performs various functions, which lets you figure out how much throughput your
network needs to avoid long delays in the application's performance.
Reliability testing ensures that the application functions properly for an
acceptable percentage of the time. To perform reliability testing, load an
application onto a test network and run it continuously for 3 days, monitoring
it for errors the entire time. If you don't detect any errors, you can increase
the load. Sooner or later, components will begin to fail.
Functionality testing verifies that all of an application's features
perform appropriately. Application designers usually perform functionality tests while designing and debugging the application. However, when you place the application on your network and increase the load, you might find problems the application designers didn't find. Use loads similar to your production network's load to test applications' functionality.
Regression testing evaluates the performance and functionality of software or hardware upgrades. Regression testing differs from functionality testing because it tests features that the hardware or software carries over from its previous version, rather than testing new features. Regression testing
demonstrates how a new version of software fixes bugs from the previous version and finds bugs that the new version introduces.
Acceptance testing tells you whether your application and network will
perform as you expect them to. Many contractors and consultants who offer
acceptance testing provide a Service Level Agreement (SLA) that guarantees the application generates a certain level of throughput.