Integrujemy proces testowania z naszym procesem SCRUM. Moją nową rolą jest pisanie testów akceptacyjnych naszych aplikacji internetowych, aby zautomatyzować je później. Dużo czytałem o tym, jak należy pisać przypadki testowe, ale żaden nie dał mi praktycznych porad, jak napisać przypadki testowe dla złożonych aplikacji internetowych, a zamiast tego rzucił sprzeczne zasady, które trudno mi zastosować:
Przypadki testowe powinny być krótkie: weź przykład CMS. Krótkie przypadki testowe są łatwe w utrzymaniu i pozwalają zidentyfikować dane wejściowe i wyjściowe. Ale co jeśli chcę przetestować długą serię operacji (np. Dodawanie dokumentu, wysyłanie powiadomienia do innego użytkownika, inny użytkownik odpowiada, dokument zmienia stan, użytkownik otrzymuje powiadomienie). Wydaje mi się raczej, że przypadki testowe powinny reprezentować kompletne scenariusze. Ale widzę, jak to da jawnie złożone dokumenty testowe.
Testy powinny identyfikować dane wejściowe i wyjściowe:: Co jeśli mam długą formę z wieloma interaktywnymi polami i różnymi zachowaniami. Czy piszę jeden test na wszystko, czy jeden na każdy?
Przypadki testowe powinny być niezależne: Ale jak mogę to zastosować, jeśli testowanie operacji przesyłania wymaga pomyślnego połączenia? A jak to się ma do pisania przypadków testowych? Czy powinienem napisać test dla każdej operacji, ale każdy test deklaruje swoje zależności, czy powinienem przepisać cały scenariusz dla każdego testu?
Przypadki testowe powinny być lekko udokumentowane: zasady te są specyficzne dla projektów Agile. Czy masz jakieś porady, jak wdrożyć tę zasadę?
Chociaż myślałem, że pisanie przypadków testów akceptacyjnych będzie proste, czułem się przytłoczony każdą decyzją, którą musiałem podjąć (FYI: Jestem programistą, a nie profesjonalnym testerem). Więc moje główne pytanie brzmi: jakie kroki lub porady masz, aby napisać możliwe do utrzymania przypadki testów akceptacji złożonych aplikacji. Dziękuję Ci.
Edycja : Aby wyjaśnić moje pytanie: Zdaję sobie sprawę, że testy akceptacyjne powinny zaczynać się od wymagania i traktować całą aplikację jako czarną skrzynkę. Moje pytanie dotyczy praktycznych kroków do napisania dokumentu testowego, zidentyfikowania przypadków testowych, radzenia sobie z zależnościami między testami ... dla złożonych aplikacji internetowych
Sprzeczne informacje mogą być frustrujące i trudne do uogólnienia i zastosowania w konkretnej sytuacji. Ergo, być może będziesz musiał zrobić to, co działa najlepiej w twoim kontekście.
Nie jestem wielkim fanem długich dokumentów testowych i dość skutecznie korzystałem z wizualizacji w kilku mniejszych projektach. Spróbuj tego? Jak schemat blokowy (lub jakikolwiek inny diagram UML, taki jak diagram stanu itp.) Zamiast używania samego tekstu? Wskaż dane wejściowe, wyjściowe, warunki, pętle, linie, stany, interakcje z innymi komponentami itp., A następnie wskaż, czy są one udane, nieudane, przeniesione, inne (?) W oparciu o twoje kryteria.
Na początku może być trochę pracy, ale na dłuższą metę może pomóc ci zachować rozsądek. Niezależnie od wybranej metody, im więcej z nią będziesz pracować, tym lepiej ją uzyskasz.
HTH i powodzenia!
KM
źródło
Myślę, że już ustaliłeś kilka dobrych kryteriów. Drugi punkt to dobry sposób na zdefiniowanie zakresów testów. Sugeruję także testowanie pod kątem błędów i bufix (zalecam, aby każda poprawka zawierała co najmniej jeden nowy test jednostkowy). To może wydawać się teraz przytłaczające, ale po prostu zanurz się, a po zdobyciu odrobiny doświadczenia rozpoznanie, co czyni dobre testy, stanie się łatwiejsze.
źródło