| |
|
Software testing
|
|
|
|
In today's highly-competitive market, poorly tested product releases can result in unexpected problems.
The more emphasis you place on testing from the beginning, the less trouble you'll have in the end. Testing,
as a separate process, requires close integration with the core work on the project from its early stages.
We achieve this through our emphasis on close relationships with our clients.
Our goal is to vastly improve our clients' products through scrupulous testing. The effectiveness of our
testing service is demonstrated by our years of experience in exactly that field, by the scientific research
we have carried out in testing and optimization as well as providing a full range of testing services which include
all methods and types of testing, from specification reviews to optimizations.
What Software testing service includes
- Test engineering:
- determining testing strategy and development of test case specifications;
- test suite structure design;
- development of test suite build / run / result analysis and test case generation tools;
- test case code and documentation development;
- analysis of existing test suites for a product or technology for re-using;
- porting of other vendor's test suites;
- Executions of test cycles:
- code, specification and product documentation reviews;
- scheduled and on-demand test runs, results analysis and reporting;
- bug reports tracking, verification of bug fixes;
- investigation of source codes for bug fixing;
- Testing quality improvement analysis:
- measurement and analysis of assertion coverage by test suites;
- measurement and analysis of source code coverage by test suites;
- determining strategies for improving assertion / source code coverage;
- Investigations for optimization:
- development and running of code analyzing tools, results analysis;
- investigations of system architecture, design and source codes for identifying performance bottlenecks;
Types of testing provided
UniPro's Testing service includes both black- and white-box testing, and provides the following key types of testing:
- certification / conformance testing - black-box testing based only on the specifications or standards to which the tested
product must conform, strong conformance to the standards or specifications is verified, no assumptions are made based on
product functionality.
- functional testing - tests to check product functionality corresponds to the functional requirements and product specifications.
- testing for optimization - a process closely related to testing, bottlenecks are identified and removed by algorithms /
design model / technologies investigations and improvement and fine-tuning the software / hardware.
- UI testing - automatic and interactive testing of product's User Interface for functionality and usability.
- reviews - these include reviewing the specifications to check they are complete and correct, reviewing product
documentation, User Guides, etc.
Methods of testing established by software process
The company's software process ensures that the following testing is performed during a software development life-cycle:
Tools
We always try to automate testing process as much as possible. During our time as a testing service we developed
many tools which are used for testing purposes. The tools are based on various technologies - from shell scripts
to Java and XML, and are targeted at various aspects of testing:
- automatic test generation tools;
- test porting tools;
- test suite building tools;
- coverage measurement tools;
- optimization tools;
- static analysis tools;
- test run automation tools;
Our principles of testing are:
- Close integration into development processes - our team works in close cooperation with development teams
strictly following the established plans and tracking all the changes in requirements and the product.
- Testing starts from the beginning - we start testing from the early project stages - from the requirements
identification, our experience shows that close attention to the requirements in the beginning allows
to eliminate a lot of problems.
- Reviews - this is essential part of our testing service. Almost all produced project's work products
starting from requirements pass reviewings.
- Objective testing - testing team is independent from development management. This provides the objectiveness of
testing results.
- Scrupulous testing - we always test software diligently. When developing software or providing testing service we use
all types and methods of testing defined by our software process and/or required due to the product specifics. We test
the product in all required configurations, platforms and environments.
- Permanent improvement of quality of testing - we always know provided quality of testing expressed in precise
numbers and the ways for quality improvement. We develop and use tools for measurement of coverage provided by testing
and work on coverage improvement.
- Testing automation - we develop and use automatic test generation / building / run / reporting systems.
Testing automation allows us to improve effectiveness of testing and significantly reduce testing cost.
Examples of successful projects:
- Testing of J2SE, J2ME implementations
- Testing of Fortran compilers and tools
- Development of Fortran testbase and testing tools
- Testing of Internet-based business decision system
- Testing of dbx debugger tool
- Performance testing of Java-based Integrated Development Environment