Perspective
In today’s software engineering, as never before, tests have become a critical ingredient. The stability and functionality of the software is now at the core of the software development process. Methodologies such as TDD (Test Driven Development) or BDD (Behaviour Driven Development) clearly indicate the trends in the future development of software engineering.
Such tests can be subdivided into many different types – depending on their intended use, application design, test duration and testing method. Consequently, a single test can be on the one hand a functional test, and on the other hand a part of the acceptance test, while some software developers will also regard it as an element of the regression test.
The names of the tests determine their design and logic. A test should primarily be a tool to create, maintain and use a system whose quality is continuously being improved.
Approaches
Tests in terms of the time of creation of the tested parts of the application:
- Manual tests of newly developed parts of the system, including both functional testsand non-functional tests, integration tests, etc. concerning the current sprint/evolution/prototype/iteration.
- Automatic regression tests of parts of the system developed during previous sprints/evolutions/prototypes/iterations, which were tested manually during the previous cycles.
We perform the following tests:
- Functional black-box tests from the level of the user interface (WWW)
- Structural white-box tests
- Integration tests
- Performance tests.
Testing procedure
The cyclical testing procedure usually looks like this:
- Creating test scenarios
- Providing the Continuous Testing service implemented using automatic tests
- Repeating the automatic testing process (regression tests) after completing a particular fragment of software development
- Manual tests based on the previously defined test scenarios
- Determining test scenarios to be automated
- Implementing test scenarios as an element of automatic regression tests in the next test run.