What actually distinguishes a good application from a mediocre or bad one? From the user's point of view it is certainly the efficiency of the processes, the user guidance within the application, an intuitive usability and of course in general the design and performance.
For developers and also the decision maker or project manager there is another important unit of measurement to evaluate the quality of a software, namely the general code quality. Have coding standards been adhered to and have even the rather trivial case scenarios been covered? In order to keep the quality standard as high as possible and to continuously improve the source code, the software development process includes testing all areas of the software for perfect functionality and, of course, for security.
In order not to have to manually test all areas with every change to the source code, it is part of the good standard to automatically test every area of the software with so-called unit tests for possible weak points and errors and to continuously improve these in the development process.
In my projects I therefore like to use the PHP testing framework PHPUnit, PHPStan, Codeception and for the automation of frontend tests the Selenium framework.
Tailor-made web development from the experts in Halle - Start now with a professional website or app for your company. As a web developer I am your competent partner for your next online project. With my flexible web solutions, there are no more limits to your corporate website, online shop and app.
Niels Langlotz
Web-Developer
Tel: +49 176 45 606 488
E-Mail: info(at)typoniels.de
I would like to use my project experience as a developer for your next project, just contact me.
The answer to the following questions may also interest you
In order to maintain software quality at the highest possible level throughout the entire development cycle, it is part of professional development to accompany all essential components of this process with quality analyses.
Thus, in practice, if not developed directly according to the TDD method (Test-Driven Development), the application is equipped with unit, functional, integration and, in larger projects, acceptance tests.
TYPONiels development projects currently use these forms of testing, depending on the requirements and scope of the project:
Unit tests
Unit testing, also called module testing or component testing, is a testing process in which the smallest testable parts or units of an application, called units, are individually and independently tested for proper operation. Unit tests are normally performed by the software developers themselves and are usually run again automatically in the CI pipeline whenever code changes are made. In the event of failures, the import of changes into the main branch of the application is usually blocked (merge blocking).
Sanity tests
Sanity tests are plausibility checks. These include, for example, plausibility checks of values, simple model-based checks, but also consistency checks of requirements. The validation of a software system often begins with the creation of sanity tests.
Functional tests
Functional tests check a software (or a system) with regard to functional requirement characteristics, i.e. whether the behavior of the software or the system meets the requirements in the functional specification. Functional tests are used for system tests and acceptance tests (also called acceptance tests, procedure tests or user acceptance tests). These types of tests are black box tests, since "only" the external behavior is tested without considering the internal structure or code. Test cases are created on the basis of descriptions of the software, such as specifications and requirements.
Integration tests
In software development, integration tests are a coordinated series of individual tests that are used to test various interdependent components of a complex application structure in interaction with each other. Integration tests are usually used to quickly find errors that could trigger a change in system A during operation than in system B.
Approval tests
Approval tests are usually performed by a natural person from project management using a test system and involve viewing the change from the perspective of a real user. If the changes to the system meet the requirements of the ticket / user story, approval is carried out and the new functions / changes can be transferred to the live system.
User acceptance tests
In software engineering, user acceptance testing is a method of verifying that software works as intended from the user's perspective and that the user accepts the software. Software vendors often test this with beta testing, where a specific group of users get the new feature unlocked and feedback is solicited or an analysis of usage behavior is performed.
One way to check the quality of software is by performing tests. There are various types of tests that can be used to check the quality of software, including:
Unit tests: These tests check if individual parts of the software (called "units") function as expected.
Integration tests: These tests check if different parts of the software work together properly.
System tests: These tests check if the entire software functions as expected.
Acceptance tests: These tests check if the software meets the customer's requirements.
At TYPONiels, automated tests are used to ensure the quality of the software. In addition, the tools Gitlab CI and SonarQube are used to monitor, ensure, and optimize code quality.
Another way to check the quality of software is by performing code reviews. In code reviews, code is reviewed by other developers and improvement suggestions are made. Code reviews have the advantage of improving the quality and standard of the code and promoting teamwork at the same time. They can also help to identify and fix errors early on before they become bigger issues.
In legacy projects, it makes sense to take a close look at the code base and subject it to a qualitative evaluation.
On the basis of this evaluation, you can usually make an initial assessment of whether it makes sense to develop the system from scratch or whether the code base is already in good condition and can be used as a basis, especially since a lot of development time, money and experience has already flowed into legacy projects.
I will gladly support the refactoring of your legacy projects. Please contact me.
For me, automated testing is part of a professional and, above all, up-to-date software development workflow, and so the implementation of simple functional tests, which act as a quality gate during each rollout, is already included in the project price.
The coverage of special edge cases will be discussed with you separately during the course of the project, validated regularly and billed according to actual effort.