Die Grundlagen des agilen Softwaretestens
Agiles Softwaretesten ist ein häufig verwendeter Begriff in IT-Kreisen. Aber was verbirgt sich hinter diesem Konzept? In diesem Artikel lernst du die wichtigsten Grundlagen kennen!
Einführung
Agilis, agile, agilis módszertan: sokszor halljuk ezeket a kifejezéseket a mindennapokban. De mit jelentenek pontosan? Valójában nem egy módszertanról van szó, helyesebb lenne agilis módszertanokról beszélni. 2001. februárja óta, amikor 17 amerikai fejlesztő először megfogalmazta az Agile alapjait az agilis kiáltványban, az alapelvek figyelembevételével sok-sok módszertan fejlődött ki, és honosodott meg a gyakorlatban. Változatosságuk ellenére azonban mindegyik azonos célokat tűz ki maga elé: a lehető legmagasabb ügyfélélmény elérése, gyakori, vagy folyamatos közvetlen kommunikációval, minél hatékonyabb – lehetőleg rövid iterációkban – megvalósítva. Legyen tehát szó kanban, scrum, vagy egyéb megvalósulásáról, az agilis fejlesztés fő célja egy gyakran változtatható, piaci- és ügyféligényekre azonnal reagáló megoldás kialakítása. Ilyen módon a csapat mindig a legfontosabbnak számító feladatokkal foglalkozik.
Das Konzept und die Vorteile des agilen Softwaretestens
Wenn wir über Softwaretesten beszélünk, sok esetben az a szituáció juthat eszünkbe, hogy a fejlesztési feladatok lezárultával, mintegy következő projekt feladatként kezdetét veszi az adott alkalmazás implementációjának következő, tesztelési fázisa. Ezt tapasztalhatjuk egy vízesés módszertan szerint haladó projekt esetében. Agilis környezetben azonban azt látjuk, hogy ez a megközelítés nem működőképes. Helyesebb tehát önmagában tesztelés helyett minőségbiztosításról beszélni, ami a szoftver fejlesztéssel egy időben kezdődik. Az agilis szoftvertesztelés ezáltal a fejlesztők és a tesztelők folyamatos együttműködésén alapulva képes rugalmas és hatékony környezetet biztosítani arra, hogy a hibákat minél hamarabb kiszűrjük. Időigényes dokumentációs feladatok helyett csak a lényeget rögzítve készüljünk fel a gyakori iterációk – és ezáltal változások – által támasztott kihívásokra.

Was sind die Prinzipien des agilen Softwaretestens?
Bár az agilis tesztelésnek köszönhetően rengeteget profitálhatunk annak bevezetésén, a megvalósítás sokszor nem könnyű, és számos nehézséggel találkozhatunk a gyakorlatban. Van azonban néhány alapelv, amelyek megértése gördülékenyebbé teszi az áttérést. A továbbiakban ezeket vesszük sorra. Fontos megjegyezni, hogy egy agilis szoftver fejlesztése során sok-sok módszertannal dolgozhatunk. A továbbiakban most a leggyakoribbat vesszük adottnak: a scrum alapján haladunk a tesztelés bemutatásakor.
Verkürzung der Rückkopplungszeit
A vízesés módszertannal megvalósított projektben sokszor hónapok, vagy félévekben mérhető idő telik el a követelmények megfogalmazása, a fejlesztés valamint a tesztelés között. Nem is beszélve arról az időpontról, amikor a megrendelő először láthatja az igényére adott megoldást. Ezzel szemben az agilis tesztelés alkalmazása lehetővé teszi, hogy a visszajelzés már egy-két hetenként megtörténhessen. Ennek előnyei rögtön megmutatkoznak: minél hamarabb történik visszacsatolás, annál könnyebben tud a csapat alkalmazkodni az esetleges változásokhoz, annál hamarabb kiderül, ha nem a megfelelő irányban indultunk el.
Entwicklung und Testen erfolgen gleichzeitig
Mindannyian szembesülhettünk azzal a helyzettel, hogy a projekt egymást követő fázisainak esetleges időbeli csúszása mindig a projekt későbbi szakaszaiban bosszulja meg magát. Egy vártnál jobban elhúzódó fejlesztést követően a tesztelési szakaszban feltorlódnak a feladatok, ami sokszor a minőség rovására tud menni. Az egymásra épülő fázisokat eleve nehéz megvalósítani egy kéthetes iterációban, az agilis módszertan azonban más okokból is eltérő megközelítést alkalmaz. A tesztelő és a fejlesztő szorosan együttműködik már a fejlesztés kezdetétől fogva, az egységtesztektől egészen a felületi és üzleti tesztekig. Ennek köszönhetően a fejlesztési ciklus végére nem a tesztelés kezdetéig tudunk eljutni, hanem a minőségi szoftver közös leszállításáig.
Die enge Zusammenarbeit der Test- und Entwicklungsteams
Láthattuk az előző szakaszban, hogy a teljes csapat egyszerre dolgozik, egy cél, az értékteremtés érdekében. De hogyan tud ez megvalósulni a gyakorlatban? Fontos, hogy a tesztelők a fejlesztési ciklus legelső, tervezési feladataitól kezdve be legyenek vonva a közös munkába. Így már a tesztesetek megtervezése is közösen, a sprint célok figyelembevételével történhet. A csapatnak napi szinten, kölcsönösen tisztában kell lennie, ki mivel dolgozik, hogy az akadályozó tényezők elhárításában a legkompetensebb szereplő tudjon azonnali segítséget nyújtani.
Vereinfachte Dokumentation
Wir stoßen häufig auf das Bestreben, in einem Wasserfallprojekt die Aufgaben der Testphase so genau wie möglich zu dokumentieren, damit jede Phase auch nachträglich reproduziert werden kann. Natürlich hat dies seine Vorteile, aber es ist unbestreitbar ein zeitaufwändiger Ansatz. Aus dieser Perspektive wird die agile Testmethodik oft kritisiert, weil sie angeblich auf Dokumentation verzichtet. Dies ist jedoch nicht der Fall. Gemäß einem der Grundprinzipien von Agile ist die geleistete Arbeit wichtiger als detaillierte Dokumentation. Wir dokumentieren das, was nützlich und zweckmäßig ist, und das prägnant. Diese Aufgabe obliegt jedem, der mit testbezogenen Informationen arbeitet: sei es Entwickler oder Tester.
Kundenfeedback während des Entwicklungsprozesses
Az agilis szoftvertesztelés egyik fő előnye ugyanaz, mint magának a módszertannak: a megrendelő a fejlesztési folyamat lehető legkorábbi pontján, vagy akár folyamatosan jelen van. Így már a tervezési feladatokhoz közeli időpontban láthatja az ügyféligény megvalósítását. Ezáltal azonnal visszacsatolást tud adni, mielőtt túl sok erőforrást fordítanánk egy esetleges rossz elképzelésbe.

Der Prozess des agilen Softwaretestens
Die Prinzipien und Praktiken des agilen Softwaretestens unterscheiden sich von traditionellem Testing. Wir haben die theoretischen Aspekte bereits im vorherigen Kapitel betrachtet. Jetzt schauen wir uns an, was in der Praxis beachtet werden muss, um das agile Testen erfolgreich einzuführen. Es gibt wesentliche Aufgaben, die für erfolgreiche Tests unverzichtbar sind, und oft ist der Tester während seiner Arbeit am besten mit den für diese Aufgaben benötigten Informationen ausgestattet.
- Auswirkungsanalyse: Entwicklung eines geschäftlichen Denkens im Zusammenhang mit der Software; Identifizierung von Randbedingungen, Risiken; architektonische Überlegungen.
- Teszttervezés: meg kell határozni, hogy milyen tesztelési szinteket alkalmazunk, és azokat hogyan valósítjuk meg. Az egység- és komponenstesztelés; a folyamati és prototípus tesztelés; az üzleti és használhatósági tesztek, valamint a nem-funkcionális követelmények ellenőrzése mind a kiadható szoftver elengedhetetlen minőségbiztosítási kritériumai. Ezekre mindenképpen tekintettel kell lennünk.
- Napi eligazítás: a tesztelő ugyanúgy része a csapatnak, mint bárki más, ezért a napi kommunikációban ő is részt vesz. Rövid, kötött idejű és tematikájú napindító eligazítással elejét vehetjük annak, hogy üresjáratok vagy blokkoló tényezők tartósan kialakuljanak.
- Feedback: Es mag trivial erscheinen, aber es kann nicht genug betont werden – wir testen, um Fehler zu finden. Ob es sich um eine unangemessene Implementierung oder ein missverstandenes Geschäftsanforderung handelt, es muss so schnell wie möglich behoben werden, idealerweise während das Entwicklungsteam noch an derselben Aufgabe arbeitet wie die Tester.
- Verifikation: Bevor das Produkt bereit ist, von den Benutzern übernommen zu werden, müssen alle Aufgaben und Dokumentationen abgeschlossen sein. Oft sind Tester am besten vertraut mit der Funktionsweise der Software, daher ist es ratsam, sie im Zusammenhang mit der Veröffentlichung zu schulen oder zu unterweisen, für diejenigen, die die Software unterstützen oder verwenden werden.
Häufig gestellte Fragen
Was bedeutet agil?
Eine Softwareentwicklungsmethodik, die durch kurze Iterationen, kontinuierliche Kundenbeteiligung und Anpassung das Ziel hat, den höchsten Wert zu liefern.
Was ist agiles Softwaretesting?
Im Gegensatz zum traditionellen Testing wird agiles Softwaretesting durch Zusammenarbeit mit Entwicklern, wesentliche Dokumentation und flexible Arbeitsorganisation Teil der Methodik.
Was sind die Vorteile des agilen Softwaretestens?
Der Hauptvorteil der Einführung und Anwendung besteht darin, dass sie Leerlaufzeiten des Testteams beseitigt, indem es kontinuierlich mit dem Entwicklungsteam zusammenarbeitet und sicherstellt, dass wir so schnell wie möglich eine Software veröffentlichen können, die für den Kunden einen Mehrwert bietet.
Aus welchen Schritten besteht es?
Die Schritte des agilen Testens sind die Auswirkungsanalyse, Testplanung, tägliche Stand-Up-Meetings, Feedback und Verifikation.
Schlussfolgerung
Oben haben wir gesehen, was genau die agile Softwareentwicklungsmethodik ist, wo der Ort des Testens darin ist und was die Prinzipien und wichtigsten praktischen Überlegungen der letzteren sind. Wenn Sie Unterstützung bei der Implementierung oder Unterstützung einer der effektivsten Testmethoden erhalten möchten, dann schreiben Sie uns über das Kontaktformular unten auf der Seite.