Software testing and quality control

Testing is monitoring of the software functions in specific conditions with the purpose of defining extent of compliance with initial software requirements. Depending on the tasks we are using the following types of testing:

  • Unit Testing – testing of separate «bits» of programming code as to verify its compliance with real behavior of the program compared to the expected one. This testing is fulfilled directly by a programmer in the process of software creation.
  • Change Testing – is testing of changes that are made by a programmer into a program in order to check correspondence with declared specifications of the change. This testing is accomplished by a tester by means of passing predefined testing scenarios (so called “Test Cases”): a setting of sequence of steps and expected results.
  • Exploratory Testing – is the type of testing, fulfilled by tester manually without a predefined scenario (Test Case) and directed towards searching mistakes in software functionality by means of creation non-standard situations in which program may malfunction.
  • Spot Testing – is the type of testing for the purpose of checking basic (base) software functionality. It is carried out by a tester by means of passing testing scenarios.
  • System Testing – is a testing directed towards checking deep software functionality. Unlike Change Testing not only the change itself is tested but the functionality that relates to the change. It is fulfilled by a tester by means of passing testing scenarios.
  • Regression Testing – is a testing with the purpose of checking if the change that is made influenced all the functionalities of the software. It is carried out by a tester by means of passing Test Cases.
  • Integration Testing – is a testing directed towards checking correctness of interactions of different programming modules between themselves in the integrated systems. It is carried out by a tester by means of passing Test Cases.

It is also noteworthy in itself to make a mention of Automated Testing. Automated Testing is such a type of testing during which testing scenarios are fulfilled not manually but via a program, which is acting like a virtual user (one or several) allowing to save time for passing testing scenarios as compared to the manual testing. Automated testing can include any of the above-mentioned testing types except for the Exploratory.

We provide quality of the products in development not only by means of testing of the software products but also by means of quality realization of the process of design, development and testing of the product. This is the main task of the department of QA (Quality Assurance).

We specify 2 main directions in activities of the QA department: reduction of probability of mistakes and guaranteed processing of all the mistakes found. For the reduction of probability of mistakes that occur we:

  • Develop and apply standards for different programming languages;
  • Develop and apply system of measuring quality of work of our programmers and testers;
  • Provide initial preparation of our colleagues.

In order to guarantee processing of all the defects:

  • There exists a system of notifications and reminders for programmers, testers and follow-up teams concerning new and open defects;
  • A regular monitoring of the existing problems is which should be resolved and are at the different stages of resolution;
  • A hard method of defects processing is used.