Comprehensive automated system test cycle

Comprehensive automated system test cycle

May 16, 2008

While testing is usually carried out by a programmer, a group of programmers of even potential end users with no specialist knowledge, performance tests are often fulfilled through the use of purpose-built software. The purpose of this process is to uncover problems in design or coding, and to check that there are no other requirements or necessary changes and additions to the software build.

The company developed a full cycle project to automate the testing of client software. This involves testing the entire scope of the software by systematic means, conducting rigorous error detection to ensure maximum program functionality, and ensuring that each element is functional in accordance with set parameters. The system as a whole as well as specific components are tested, including their possible interactions.

The automated element of the testing process involves automating as many of the manual testing processes already in use as possible, vastly reducing human input in tasks which are repetitive (a simple command can correct the number of executions), unskilled (human judgement would not be necessary in the pre-evaluation stage of the task), or redundant (these tasks can be excluded from the cycle entirely). This is partly achieved through the creation of a test environment, which is able to accommodate and adjust with regard to changes to the software. Specific aspect of testing can be automated, including tests to see if operations perform as expected, tests which attempt to force errors in the system, tests to check that system behaviour is consistent, tests to measure the limits of the application and infrastructure's capacity, and tests of performance and load.

Automation in testing first and foremost removes human error and is completely consistent – if the unit test is written perfectly it will run perfectly. Secondly, automation development can be repeated as many times as is required and can be easily replicated for testing on other applications. Furthermore, automated testing, where available, is significantly faster than manual testing and many tests can be run simultaneously. All of this means that automation in the systematic testing of software is an enormous cost-saving innovation. All results of tests are presented to the client, in an easy to understand, visualized presentation.

Software development company

Stress testing of fail-safe server components

Development of a computer-aided software testing (CAST) package for a software system. This is intended to ensure the maximum quality and stability of its critical components. This work included:

  • Testing plan development
  • Testing automation implementation
  • The implementation of test suites
  • Daily test creation and execution
  • Daily reporting on defects for software quality assurance specialists while the system is being developed
  • GUI testing which imitates user activity
  • We paid maximum attention to the development of the unit and stress testing of SDKs. The testing covered every line of SDK code. In addition, we developed test cases on memory and other resource leakage

Online auction

Security testing by intrusion method

Project for upcoming Australian online auction. Our task was to provide online security.

  • Coding of critical review and checking for ‘back doors’ that may have been left open by developers.
  • Fixing and testing of all known vulnerable components.
  • Hosting testing, stress testing, DoS, port testing.
  • Hacking and penetration attempt.

Slot machine network

Update of a casino on C++, Python, Django, SQL, Linux

We received a gaming system for a local network in source code.

  • Third-party code analysis.
  • Closing trapdoors which could have allowed for manipulation of user statistics.
  • Development of gaming result analytics in real time.
  • Error and freeze elimination.