Testing
Testing means checking a unit for its functional operability, whereby a unit can be a software module, a component as well as the entire system sein. Testing is aimed at detecting and rectifying of faults. When testing is planned well, faults can be detected and rectified early on, so that the quality of the designed unit increases.
Testing management
The start of a project is the start testing management. Our testing managers, certified to ISTQB®-have the know-how to establish an efficient testing process. This allows you to have a complete overview over the testing status at all times. You will know when and which tests are planned and when and which what release they have been carried out and what the test results were. You will receive documentation regarding the test environment and the test tools used for the individual stages of the test (unit test, module test, integration test, system test). You will also receive an overview over the resource and project planning.
By setting up testing management early, you will define the test cases for the individual test stages, the way of logging the results, the key aspects of the tests as well as the test results right at the start of a project. The test results will be derived in dependence of the quality targets and safety levels to be reached. It is also advisable to establish the way the test results should be recorded and how the results should be evaluated per test stage at the start of the project.
Static Test
Static tests are carried to increase the quality and maintainability of your software. This means checking that programming guidelines have been adhered to and programming language dependent matrices are being used. This involves analysing the software source code (ideally supported by tools) (see Source code analysis for further information on the process).
Dynamic Test
A dynamic test is a functional of the units to be tested. You can determine different test key aspects and test targets in line with the applied test process and depending on the test stage (unit test, module test, integration test, system test):
- The unit test is especially aimed at checking the robustness of the software, i.e. checking for memory overflow, nil pointers, adherence to the values margin etc.
- During the module test you will want to fully test the self-contained partial functionality of a module, e.g. whether a square root is calculated correctly, is the correct article derived from the database, is the braking curve of the train calculated correctly.
- The integration test is to test the interaction of the hardware with the software or the interaction of several modules to establish whether the requirements on the hardware and software or the different modules is also met overall.
- When carrying out the system test you want to ensure prior handing over the system to the customer that all customer requirements are contained within your system.
To this end, our testers and testing managers, all certified to ISTQB®, will carry out the tasks drawing up the test case, carrying out the test case and test case evaluation for the respective test stages together with you.
Test automation or automating the tests?
Test automation is the basis for a successfully conducted project. Test automation allows you to carry test out again and again. This saves time for the project and resources, because the test is carried out automatically in the test environment. The test sequence is always the same and they are therefore are very suitable for regression tests, also enabling interim test of interim versions of the unit in very short time spans.
Automation solutions such as Jenkins, Rational Quality Manager, HP Unified Functional Testing (UFT) et al support administration and execution of automated tests. Robotframework, the xUnit family and similar test frameworks offer the parameters for the creation of automated tests.
The selection of tools to be used is essential for a successful project delivery since different requirements are made on the test automation, depending on the respective application (e.g. web application or embedded system)
Our ISTQB® certified testers and testing managers have many years’ experience in the most varied projects to support you in the choice of tools, the set-up of the test environment and the associated testing management for your projects.
Testing in an agile environment
In the case of agile projects the test process must also be agile. Especially in safety critical environments (transportation, medical devices, automotive etc.) there are conflicts between the agile approach and providing orderly evidence of the development processes as well as the presentation of the results for assessment and approval of the product.
Our trained and iSQI® certified agile testers have gained experience in diverse projects within this environment. They successfully been part of agile projects and where applicable Created the necessary documentation in agreement with the consultants, which allowed for the products to be approved successfully.
Reference Project
The Passenger Rail Agency of South Africa SOE (PRASA) – a state-owned transport enterprise in South Africa – is having large parts of its railway network renewed. This includes the regions around Johannesburg, Durban and Cape Town. certitudo GmbH was part of the sub project “Western Cape region“, consisting of 10 interlockings (90 stations), 250 km of line and a control centre and supported the interlocking manufacturer in introducing the agile methods of the SCRUM process into the testing field and to continue to meet the normative requirements from the applicable standards (EN 50128, EN 50126 und EN 50129). Key aspects were setting up a testing process, testing automation as well as the validation of all testing activities.