Adrin Amin Salehi
Software Egnineer
Basel, Switzerland
Actions
For almost 10 years, I turn code mess into something useful.
Links
Area of Expertise
Topics
Verifizieren von Business Rules mit Hilfe einer Testing-API
Automatisierte Tests sind ein integraler Bestandteil der Softwareentwicklung. Produktivcode sollte immer, so gut es geht, mit Code Tests (unit, integration, end-to-end) abgedeckt sein. Aber vor allem bei schwammigen oder unklaren Business-Anforderungen neigen wir zu struktureller Kopplung zwischen Produktivcode und Testcode. Im schlimmsten Fall gibt es für eine Methode im Produktivcode eine entsprechende Testmethode. Auf den ersten Blick scheint dieses Problem harmlos zu sein, da man dadurch eine sehr hohe Testabdeckung erreicht. Doch strukturelle Kopplung erschwert späteres Refactoring enorm.
Eine Testing-API zwischen Produktivcode und Testcode löst diese Kopplung. Basierend auf dem Softwaredesign-Prinzip "don't depend on volatile things" ermöglicht diese API das Verifizieren von Business Rules und entkoppelt unserer Tests von der Applikation. Die Erweiterbarkeit ist weiterhin gewährleistet und sollte sich der Produktivcode hinter der API einmal ändern, laufen unsere Tests immer noch durch.
Die Implementation einer solchen Testing-API ist kein Selbstläufer. Deshalb gilt es folgende Fragen zu beantworten:
- Wie konzipieren wir solch eine API am besten?
- Können wir solch eine API überhaupt in unser bestehendes Software-Design implementieren?
- Wie lässt sich solch eine Testing-API mit .Net aufbauen?
Scrum mit Azure DevOps von 0 auf 100
Am Anfang eines Softwareprojektes gibt es viele Fragen zu klären: Welche Architektur nutzen wir? Wie sieht das Software-Design aus? Welchen Tech-Stack wollen nutzen wir? Wenn man diese Fragen geklärt hat, will das Team meistens direkt mit der Entwicklung beginnen. Doch dann stellen sich noch weitere, größere Fragen.
Mit welcher Methodik wollen wir arbeiten und mit welchen Tools wollen wir unsere Prozesse abbilden???
Diese zwei Fragen sind genauso wichtig wie die vorherigen, wenn nicht sogar noch wichtiger. Denn ohne klar definierte Prozesse und Tools, stehen sich,insbesondere bei größeren Teams, die Teammitglieder oft gegenseitig im Weg. Dennoch wird recht voreilig auf Scrum oder Kanban als agile Methodik zurückgegriffen. Aber hier fehlt leider immer wieder das effiziente Zusammenspiel von Tools und Prozessen.
Azure DevOps bietet viele Möglichkeiten, um Teams innerhalb des agilen Prozesses zu unterstützen. Egal, ob Item-Tracking oder Kapazitätsplanung. Es gibt viele Einstellungsmöglichkeiten, um agile Prozesse sauber abzubilden.
Anhand der Erfahrung aus verschiedene Projekten stelle ich praktische Best Practices zum optimalen Einsatz von Azure DevOps im Scrum Prozess vor. Auf was muss geachtet werden, um beide Welten zusammenzuführen? Und was sind Stolpersteine, auf die man gerade am Anfang der Projektphase achten sollte?
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top