1097 Budapest, Illatos út 9. | information@sinonis.hu

Test methodology

The level of testing which we use and correspond to the hierarchy of software specifications are:

  • Unit Testing, in which each unit (basic component) of the software is tested to verify that the detailed
    design for the unit has been correctly implemented.
  • Software Integration Testing, in which progressively larger groups of tested software components
    corresponding to elements of the architectural design are integrated and tested until the software works as
    a whole.
  • System Testing, in which the software is integrated to the overall product and tested to show that all
    requirements are met.

A further level of testing is also concerned with requirements:
Acceptance Testing, upon which acceptance of the completed software is based. This will often use a subset of the system tests, witnessed by the customers for the software or system.
Once each level of software specification has been written, the next step is to design the tests. An important point here is that the tests should be designed before the software is implemented, because if the software was implemented first it would be too tempting to test the software against what it is observed to do (which is not really testing at all), rather than against what it is specified to do.

Within each level of testing, once the tests have been applied, test results are evaluated. If a problem is encountered, then either the tests are revised and applied again, or thesoftware is fixed and the tests applied again. This is repeated until no problems are encountered, at which point development can proceed to the next level of testing.
Testing does not end following the conclusion of acceptance testing. Software has to be maintained to fix problems which show up during use and to accommodate new requirements. Software tests have to be repeated, modified and extended. The effort to revise and repeat tests consequently forms a major part of the overall cost of developing and maintaining software. The term regression testing is used to refer to the repetition of earlier successful tests in order to make sure that changes to the software have not introduced side effects.