Testing

ReportCore – customowy moduł raportujący

Styczeń 11, 2016 0
Podziel się:

W czasach skomplikowanych i wielowarstwowych systemów informatycznych prawidłowe testowanie oprogramowania jest ogromnym wyzwaniem. Testy manualne wykonywane przez użytkowników są dobrym sposobem na walidację aplikacji, jednak dla rozbudowanych programów są zbyt czasochłonne. Dlatego dobrym uzupełnieniem jest automatyzacja testów. Testy napisane raz mogą być wykorzystywane wielokrotnie. Sprawdza się to idealnie przede wszystkim w testach regresyjnych, gdzie drobna modyfikacja kodu wymaga wielokrotnego sprawdzenia. Byłoby dobrze, gdyby można było uruchomiać testy codziennie w nocy a rano dostawać pełny raport, zgodny z oczekiwaniami, standardami Klienta. Dlatego dzisiaj pokrótce omówiony zostanie customowy moduł raportujący napisany w Visual Studio Express for Desktop, ale można go wykorzystać w każdej innej wersji Visuala.

W Solution tworzymy nowy projekt, który nazywamy ReportCore. W References dodajemy niezbędne referencje wymagane przy robieniu zrzutów ekranu, np. System.Drawing. Tworzymy 5 plikow .cs : AbstractReporter – klasa abstrakcyjna, w której zadeklarujemy metody odpowiedzialne za stworzenie szablonu raportu; ColorStatus – enum zawierający zmienne odpowiedzialne za kolor pozycji w raporcie; UltimateReporter – klasa odpowiedzialna za tworzenie szkieletu pliku html, dziedzicząca po klasie abstrakcyjnej; SavingReport – klasa zapisująca raport w danej lokalizacji, tworząca folder itd.; Reporter – klasa właściwa, w której wywołujemy odpowiednie metody z UltimateReporter, aby dodać pozycję z odpowiednim tekstem i statusem do pliku html. Całość opiera się na wzorcu obserwatora, który opisany został tutaj: http://www.oodesign.com/observer-pattern.html

To, jak będzie wyglądał nasz customowy raport zależy od tego czego oczekuje Klient: czy będzie on pokolorowany, czy będą w nim screeny z miejsca, w którym wystąpił błąd itd. Aby użyć naszego raportu, należy w teście stworzyć nowy obiekt Reportera, podając w konstruktorze nazwę testu – ta informacja zostanie dodana do końcowego pliku html, dzięki czemu przy puszczeniu 20 różnych testów dostaniemy 20 różnych raportów, odpowiednio zatytułowanych. W klasie GUI należy zaś napisać konstruktor, który przypisze odpowiednio instancje obiektu reporter, np.:

public PurchaseGUI(Reporter report) : base(report){

report = reporter;

}

Aby notyfikować  kolejne kroki do raportu, należy w metodach w klasie GUI wywoływać funkcję Notify(), która w argumentach przyjmie treść, jaką ma wpisać do raportu oraz status, dzięki czemu ustawiony zostanie odpowiedni kolor. Gotowy raport może wyglądać jak poniżej:

ReportCore - przykład raportu

ReportCore – przykład raportu

Oceń ten post
Kategorie: Testing
Paulina Łojszczyk
Autor: Paulina Łojszczyk
W Sii pracuję od niemalże 5 lat, moją specjalizacją są testy aplikacji mobilnych. Ponadto zajmuję się także poznawaniem i rozwijaniem testów w narzędziu Tosca. Prywatnie jestem szczęśliwą żoną i mamą rocznej Hani.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz