We offer a special set of services
to address the software industry's need for
adequate quality assurance and testing. From simple usability
testing to compatibility analysis and functional verification,
most software does not get the testing it needs.
This results in costly defects that make their way into the released
product, and into the hands of customers. A small
investment in early detection can result in a great deal of savings
over the life of a product.
Our resources are ideally suited to the task of testing
software at the macro and fine-grained levels. We design
and execute test plans that include a combination of white-box
and black-box methods, manual and automated scenarios, and
other verification techniques tailored to your specific application
needs. We have the manpower and resources to meet your
demanding quality assurance requirements on an ongoing basis.
For more information about our quality initiative and QA
consulting services, please contact
quality@clockworksoft.com.
The Testing Strategy
A testing strategy is a customized approach to your software
and testing goals. Below are some of our approaches to
planning and executing a quality assurance program:
Test Plan
During the initial phase, we define the scope of the testing
domain and coverage requirements. Based on this information, we
specify the tools and methods that will make up the test
program. This will be documented in the Test Plan.
Hands-on Testing
Hands-on testing involves manually exercising the application's
features. This can follow a general usage scenario, or a detailed
script. Emphasis can be placed on specific features and on full
system testing. Any behavior which appears anomalous is logged
for further analysis.
Automated Testing
Record scripts for automated playback. Using third-party testing
tools, we can record the interaction between the user and your
application and then replay these sessions automatically to ensure
that new defects do not appear in the software.
Customized Test Programs
We can program testing extensions into your current application,
or write specialized test programs that exercise your application's
functionality.
Compatibility Testing
Ensure that the software functions properly in a wide array
of environments. Depending on the nature of your application,
this may involve testing under various versions and patch-levels
of the OS, using different web browsers, running with different
hardware configurations, and varying network connections.
Performance and Load Testing
If scalability is a feature of your product, you will want to ensure
that your application can handle load. For web sites, we can simulate
thousands of users and analyze how your site reacts. For specialized
client/server applications we can create a custom test environment
that will simulate extreme load conditions. In addition, we can profile
your software to determine which functions are limiting performance.
Dynamic Memory Checking
In C/C++ applications, failure to manage memory properly can lead to
defects and crashes. Using third-party tools, we can analyze the
run-time behavior of your application and identify memory management
issues (overwrites, leaks, etc.).
Code Review
Analyze your entire application using source code analysis tools. This
process will identify potential programming errors, and suspicious
code constructs. In addition, we can manually audit specific sections
of your code for compliance with standards.