DE
PL
Einführung
Wstęp
Heute wird eine kurze Einführung sein und in der Folge werde ich Dir erzählen was ist ein ALM. Wozu wird er benutzt? Womit hilft er?
also loss damit.
Dzisiaj krótki wstęp a odcinek będzie o tym co to jest ALM. Do czego służy? W czym pomaga?
Was ist ein ALM? Wozu dient er?
Co to jest ALM? Do czego służy?
Wenn ich an ALM denkte dann faellen mit dazu Test ein, aber das ist wahrscheinlich durch mein beruf verursacht. Aber ich fange Vorne an, ich habe gehört, dass es am besten ist. Die Abkürzung ALM bedeutet Application Lifecycle Management, leider Abkürzungen haben es an sich, dass sie sagen nicht viel. Eine Applikation die den Lebenszyklus verwalte, also es kommt die Zeit um zu schauen wie der Zyklus aussieht.
Am häufigsten alles fängt an mit eine Idee. Auf diese Stufe ALM ermöglicht sammlung von Anforderungen die die Applikation erfüllen soll. In der nächste Stufe sind sie Anforderungen in Funktionen überarbeitet. Danach die Funktionalität wird getestet, ob sie so wie erwartet wirken. Wenn ein Test endet mit einen Fehler, dann entsteht ein Defect. Wie du siehst ergibt sich eins aus dem anderen, dank dessen ist es einfach, das gesamte Projekt zu verfolgen.
Es gibt viele ALM Anwendungen auf den Markt. Eine der populärsten ist HP ALM. Solche Anwendungen haben viele Funktionen, weil Verwaltung von einer Anwendung veil Aspekte hat. Als ein Tester von Beruf ich kenne ALM hauptsächlich aus diese Seite. Aber ich werde versuchen auch andere Aspekte mit dir zu erkunden.
Mi ALM przede wszystkim kojarzy się z testami, ale to zapewne skrzywienie spowodowane moim zawodem. Zacznę od początku, słyszałem, że ponoć tak najlepiej. Skrót ALM oznacza Application Lifecycle Management, niestety skróty mają to do siebie, że często niewiele mówią. Aplikacja do zarządzania cyklem życia aplikacji, więc pora się zastanowić jaki jest cykl życia.
Najczęściej wszystko zaczyna się od pomysłu. Także na tym etapie ALM umożliwia gromadzenie wymagań jakie aplikacja ma spełniać. W kolejnym etapie wymagania muszą zostać przetworzone na funkcje. Następnie funkcje muszą być przetestowane, czy działają zgodnie z oczekiwaniami, zgodnie z wymaganiami. Jeśli Test zakończy sie błędem, to powstaje defekt. Jak widać jedno wynika z drugiego, dzięki temu łatwo prześledzić cały projekt.
Samych aplikacji ALM na rynku jest dużo. Jedna z popularniejszych to HP ALM. Tego typu aplikacje mają wiele funkcji jako że temat zarządzania aplikacją ma wiele aspektów. Jako tester z zawodu znam głównie aplikacje ALM głównie od tej strony. Jednak postaram się z wami zgłębić nie tylko ten element.
Elemente des ALM-Systems
Elementy systemu ALM
Die Anforderungen, was sollen sie beinhalten, dass sie einfach zu einführen sind? Sie sollten detailliert Beschrieben und präzise sein. Scheint einfach zu sein, aber oft ist es nicht der Fall. Es passiert weil, die Person, die die Anforderung schreibt hat selber sie ausgedacht, was Naturell ist. Aber dadurch dass der Autor von der Idee die Anforderung beschreibt, ist sie für ihn offensichtlich und seine meinung nach alles ist klar beschrieben. Es hat auch einen Namen Fluch des Wissens, wenn man unfähig ist sich in der Rolle von jemanden der das Thema nicht kennt zu stellen. Wenn ein Entwickler liest später dieses Anforderung es stellt sich heraus, dass nicht alles ist klar. Zusätzlich ab und zu passierte es, dass die Anforderung unpräzise ist. Mein lieblingsbeispiel von ein nicht präzises Anforderung, auf die ich während meine Arbeit gestoßen bin ist "Die Funktionalität soll fast automatisch sein”. Ich wette, dass das “fast automatisch” hat der Autor anders verstanden als der Entwickler der das implementieren sollte.
Die Funktion - was soll eine Funktionsbeschreibung enthalten, beschreibt man eine Funktion überhaupt? Wenn ein ALM-System separat Informationen über Funktionen aufbewahrt, dann enthält sie keine Beschreibung was sie machen soll, weil das in der Anforderung steht. Die Funktion in ALM beinhaltet solche Informationen wie: wann soll die Arbeit Anfangen und wann Enden, wer ist dafür Verantwortlich - das kann eine Person sein oder ein Team. Also wie du siehst es ist so ein Element von den ALM, der die Arbeit ordnet.
Die Tests prüfen ob die Implementation erfüllt die Anforderung, ob die Funktion erfüllt die Anforderung die sie Implementiert. Das Testteam macht sich mit den Anforderungen vertraut und auf diese Basis schreibt die Testfälle, dessen Ziel ist zu prüfen ob die Funktion wirkt wie die Anforderung es vorgesehen hat. Solche Testfall besteht aus Vorbedingungen, also was in der Anwendung Erfüllt sein muss bevor man mit dem Test anfangen kann. Es kann z.B. Einloggen sein und auf die jeweilige Seite gehen. Danach ist der Testablauf beschrieben, also was ein Schritt nach dem anderen gemacht sein muss um die Wirkung der Funktion zu prüfen. Am Ende von jeden Schritt ist das erwartete Ergebnis beschrieben. Jeder Testfall endet mit Nachbedingungen, also das Aufräumen nach den Test. Das kann z.B. sien löschung von Daten die während den Test entstanden sind oder das Ausloggen.
Defekte entstehen wenn ein Test mit einem Fehler endet. Er enthält solche Informationen wie: welcher Test ist fehlgeschlagen, in welchen Testschritt kamm der Fehler vor, wann war der Test durchgeführt, auf welche Anwendung (man kann die Versionsnummer eingeben), Tester Daten. Der Tester pflicht ist auch den Fehler zu beschreiben, was genau passiert ist und ein Screenshot einfügen. Wie es man sagt “ein Bild sagt mehr als 1000 Wörter”. Ich habe auch über die Wichtigkeit des Screenshots in der Folge über Fehler in Anwendungen. Ein so vorbereitet Defekt wird dann analysiert und wenn das Problem gelöst ist muss ein Retest stattfinden, also wiederholte ausführung des Tests um zu prüfen ob alles wirklich korrekt funktioniert.
Aus das was ich gesagt habe ergibt sich ein Bild wozu ein ALM System genutzt wird. Er ermöglicht Daten über Implementierung von eine Anwendung in einen Ort zu sammeln. Die Anforderungen sind in einen Platz, man sieht welchen Entwickler Team jeweilige Anforderung Implementiert hat. Alle Testfälle befinden sich in einen Ort und die Testergebnisse. Dadurch ist es möglich zu analysieren welche Teile der Anwendung größere Aufmerksamkeit benötigen, weil es dort viele Fehler gibt und welche Anwendungsteile Stabil sind. Basierend darauf kann man benoten ob die Testabdeckung genügend ist.
Soll ALM nur bei entwicklung einer Anwendung benutzt werden? Mein erachtens nein. So lange wie eine Anwendung existiert soll sie ein Projekt in ALM-System haben. Dadurch wenn eine Weiterentwicklung notwendig ist kann man in den ALM-System neue Anforderungen hinzufügen und sie an die alte Funktionalität anzupassen. Dank den Regressionstests sieht man auf den Laufenden ob die Anwendung weiter so stabil ist, wie am den Tag in den man die Entscheidung traf die Anwendung zu veröffentlichen, ob kein Patch sie instabil gemacht hat bevor sie zu den Nutzer geht.
Wymagania, co powinny mieć, żeby można było je wdrożyć? Powinno być szczegółowo opisane i precyzyjne. Wydaje się proste, jednak często tak nie jest. Dzieje się tak dlatego, że osoba która je pisze sama je wymyśliła, co jest natrualne. Jednak przez to, że sama jest autorem pomysłu dla niej to wymaganie jest oczywiste i jej zdaniem wszystko jest jasno opisane. Ma to nawet swoją nazwę - klątwa wiedzy, gdy nie potrafimy postawić się w roli osoby która się na danym zagadnieniu nie zna. Gdy później deweloper czyta to wymaganie okazuje się, że nie wszystko jest jasne. Dodatkowo zdarza się, że wymaganie jest nieprecyzyjne. Mój ulubiony przykład nieprecyzyjnego wymagania, na które natknąłem się w pracy to: “funkcja ma działać niemal automatycznie”. Założe się, że “niemal automatycznie” jest czymś innym dla autora wymagania i dla dewelopera który je implementuje.
Funkcje - co powinien mieć opis funkcji, czy się funkcję w ogóle opisuje. Jeśli dany system ALM przechowuje osobno informacje o funkcjach to nie zawierają one opisu co funkcja robi, gdyż to znajduje się w wymaganiu. Funkcja w ALM przechowuje takie informacje jak: kiedy ma zacząć i skończyć się praca nad jej wykonaniem, kto jest odpowiedzialny za jej wykonanie, może być wskazana konkretna osoba bądź zespół. Także jak widzisz jest to element systemu ALM który pomaga w porządkowaniu pracy.
Testy, sprawdzają czy implementacja spełnia wymagania, czyli sprawdza się czy funkcja spełnia wymaganie, które implementuje. Zespół testerski zaznajamia się z wymaganiem i na tej podstawie pisze przypadek testowy, który ma na celu sprawdzenie czy funkcja działa zgodnie z wymaganiem. Taki przypadek testowy składa się z warunków wstępnych, czyli co musi być zrobione w testowanej aplikacji zanim zacznie się wykonywać właściwy test. Może to być np. zalogowanie się do aplikacji i przejście na właściwą stronę. Następnie opisuje się przebieg testu, czyli co krok po kroku trzeba zrobić aby sprawdzić działanie funkcji. Na koniec każdego kroku jest podawany spodziewany rezultat. Na koniec są wykonywane warunki końcowe, czyli posprzątanie po teście. Może to być np. usunięcie danych stworzonych podczas testu lub wylogowanie się z aplikacji.
Defekty powstają gdy jakiś test skończy się niepowodzeniem. Zawiera on takie informacje jak: który test się skończył błędem, w którym kroku testu wystąpił błąd, kiedy był on wykonywany, na jakiej aplikacji (może też być podany nr wersji), dane testera. Obowiązkiem testera jest też opisanie błędu, co dokładnie się stało i załączenie screena. Jak to się mówi “obraz mówi więcej niż 1000 słów”. Wspominałem też o konieczności załączania screena w odcinku o błędach w aplikacji. Tak stworzony defekt jest później dalej analizowany i gdy problem zostanie rozwiązany musi być przeprowadzony retest, czyli ponowne wykonanie testu aby sprawdzić czy faktycznie wszystko już działa jak powinno.
Z tego co powiedziałem wyłania się obraz po co używa się systemów ALM. Pozwala on na zebranie w jednym miejscu danych na temat wdrażania aplikacji. Są zebrane wymagania, widać kiedy i przez jaki zespół deweloperski dane wymaganie było implementowane. Są w zebrane wszystkie przypadki testowe i wyniki ich wykonywania. Dzięki czemu można analizować które obszary aplikacji wymagają więcej uwagi z powodu większej ilości będów, a które obszary są już stabilne. Można też na tej podstawie stwierdzić czy pokrycie testami jest wystarczające.
Czy ALM powinien być użyty tylko przy tworzeniu aplikacji? Moim zdaniem nie. Tak długo jak aplikacja istnieje powinna posiadać swój projekt w ALM. Dzięki temu gdy pojawi się konieczność dalszego rozwoju aplikacji można w systemie dodać kolejne wymagania i wpasować implementację do już istniejących funkcji. Natomiast dzięki testom regresji widać na bieżąco czy aplikacja jest nadal tak samo stabilna jak w dniu podjęciu decyzji o wypuszczenie jej na produkcję, czy żaden patch aplikacji jej nie zdestabilizował zanim zostanie wdrożony u użytkowników.
Zusammenfassung
Podsumowanie
Danke, dass du zugehört hast. Wie immer hoffe ich dass der Inhalt dieser Folge nützlich für dich war. Wenn dir etwas zu diesem Thema fehlte sag es mir Bescheid, entweder in den Kommentaren unten den Artikel, oder per Mail niemieckidlait@gmail.com.
Dzięki że wysłuchałeś do końca. Jak zwykle mam nadzieję, że zawartość tego odcinka będzie dla ciebie przydatna. Jeśli czegoś ci brakowało w tym temacie to daj mi znać albo przez komentarz pod artykułem lub przez maila niemieckidlait@gmail.com. Przypominam o akcji, ze wszystkie pieniądze jakie do końca roku dostanę za pośrednicwem buymeacoffe.com wpłacę na rzecz UNICEF Polska. Na stronie www.niemieckidlait.mn.co będzie artykuł poświęcony tej zbiórce z podsumowaniem miesięcznym aby zachować transparentność. Dziękuję jeszcze raz i zapraszam już dziś na kolejny odcinek.
Das Wokabular | Słownictwo:
die Anforderung - wymaganie
die Stufe - etap
der Fehler - błąd
die Vorbedingung - warunek wstępny
die Nachbedingung - warunek końcowy
Komentarze
Prześlij komentarz