Entwicklung und Test werden grundsätzlich als getrennte Bereiche im Entwicklungsprozess gesehen und viele Vorgehensmodelle trennen sie auch zeitlich voneinander. Es ist aber auch durchaus denkbar beide Bereiche besser zu verschmelzen und zu parallelisieren, denn beide können viel voneinander lernen und auch profitieren. Test sollte Qualität beweisen, die Entwicklung sollte Qualität liefern.
In Symbiose entwickeln
Durch die starke Trennung der Bereiche Entwicklung und Test ist es oft undurchsichtig – vielleicht sogar unverständlich – warum der jeweils andere Bereich in dem bekannten Stil arbeitet. Desto besser die Bereiche in die Tätigkeiten, Arbeitsweisen und deren Hintergründe und Prozessabläufe des jeweils anderen Einsicht haben, um so eher kann man sich gegenseitig unterstützen und voneinander lernen – also in Symbiose entwickeln. Eine gute Ausgewogenheit zwischen Geben und Nehmen ist auch hier von Relevanz und kann die Mitarbeiterzufriedenheit und auch die Produktqualität merklich steigern.
Qualität liefern und beweisen
Test sollte Qualität beweisen, die Entwicklung sollte Qualität liefern. Test hat nur begrenzte Möglichkeiten die Qualität merklich zu verbessern, vielmehr können nur Beweise geliefert werden. Die Qualität muss also die Definition und Entwicklung liefern. Hier gilt es sich vorher gute Gedanken über Software Architektur, Requirements, Coding Standards oder Design Richtlinien zu machen, aber auch die Wartbarkeit, eng verbunden mit der Testbarkeit, sollte bedacht werden. Je höher die Qualität der Arbeitsprodukte aus der Entwicklung ist, desto niedriger sind die Verifikationskosten.
Entwickeln um zu testen
Zuerst muss man etwas entwickeln, um es testen zu können… warum nicht Testen was noch gar nicht entwickelt ist? So etwas würde man dann Test-Driven-Development bezeichnen und ist bereits eine bewährte Vorgehensweise, die viele Vorteile bietet. Dieser Prozess ist sicher schwieriger umzusetzen, aber mit einem erfahrenen und eingespielten Team keinesfalls unmöglich.
Wir bieten Unterstützung bei:
- Programmierung (Python / C / C++ / …)
- UML und OOP
- CAPL Programmierung
- Basis Software Entwicklung
- Funktionssoftware Entwicklung
- Software Integration auf Eigen- oder Fremdhardware
- Software Architektur
- Test Driven Development