2008-08-25 15 views
12

Jakie strategie zastosowano w testowaniu opartym na modelu?Modelowe strategie testowania

  • Używasz go wyłącznie do testowania integracji lub rozgałęziać się do innych obszarów (jednostkę zakwaterowania/funkcjonalnego/system/weryfikacji SPEC)?
  • Czy budujesz zogniskowane "zamknięte" modele czy ewoluujesz złożone modele onibus w czasie?
  • W cyklu produktowym inwestujesz w tworzenie MBT?
  • Jakie rodzaje podstawowych bibliotek testowych tworzysz wyłącznie dla MBT?
  • Jaką różnicę robisz w swoich funkcjonalnych bibliotekach testów podstawowych, aby lepiej wspierać MBT?

Odpowiedz

1

Nie zrobiliśmy prawie wyłącznie any/bardzo mi & T i stosowanie testów jednostkowych, doprawione odrobiną testowania systemu. Ale skupiamy się na testowaniu jednostkowym. Mam dość ścisłe API, które budujemy/dostarczamy, więc zakładamy, że jeśli działa samodzielnie, będzie działał w połączeniu i nie było w nim jeszcze zbyt wiele złego.

Nasze modele koncentrują się na jednym celu/module z jak najmniejszą liczbą zależności.

Koncentrujemy się zawsze, aby rozpocząć jak najwcześniej (TDD-kinda), ale niestety nie zawsze do niego docieramy. Problem polega na tym, że zawsze musisz go sprzedać kierownictwu, a potem jest ciężko, ponieważ podczas testowania poprawia stabilność (ogólna kontrola jakości), ludzie z zewnątrz (poza technologią) nie mogą naprawdę odnosić się do tego, co to znaczy, dopóki coś złego się nie stanie.

Ponieważ używamy PHP, do testów jednostkowych używamy PHPUnit. W sumie robimy CI z różnymi różnymi narzędziami. :)

14

[Jest kilka esejów wartych przeczytania. Stack Overflow nie pozwoli mi opublikować więcej niż jednego, więc połączyłem je w poście na blogu, link pod koniec tej odpowiedzi.]

Po pierwsze, krótka notatka na temat warunków. Zwykle stosuję definicję testowania Jamesa Bacha jako "kwestionowanie produktu w celu jego oceny". Wszystkie testy opierają się na/mental/model testowanej aplikacji. Termin "testowanie oparte na modelu" jest jednak zazwyczaj używany do opisania programowania modelu, który można zbadać za pomocą automatyzacji. Na przykład można określić liczbę stanów, w których może znajdować się aplikacja, różne ścieżki między tymi stanami i pewne twierdzenia o tym, co powinno nastąpić podczas przejścia między tymi stanami. Następnie można mieć skrypty wykonywać pół-losowe permutacje przejść w modelu stanu, rejestrując potencjalnie interesujące wyniki.

Istnieje realne koszty tu: budowanie użyteczny model, tworzenie algorytmów do odkrywania go, systemy, które pozwalają pozbyć poprzez ciekawych awarii itp, czy koszty są uzasadnione ma wiele wspólnego z zalogowaniu co są pytania, na które chcesz odpowiedzieć? Zaczynając od słów "Co chcę wiedzieć? I jak mogę się tego lepiej nauczyć? "Zamiast szukać sposobu na ciekawą technikę.

Wszystko to powiedziawszy, niektórzy znakomici testerzy uzyskali wiele kilometrów z zautomatyzowanych testów opartych na modelach. Czasami mamy ważne pytania dotyczące testowanej aplikacji, które najlepiej sprawdzają się w zautomatyzowanych testach przeprowadzanych na półkolejnych losowaniach.Harry Robinson (jeden z czołowych teoretyków i zwolenników testowania opartego na modelach) opisuje jeden bardzo kolorowy przykład, w którym odkrył wiele interesujących błędów w drogach Google przy użyciu testu opartego na modelu (napisanego przy użyciu biblioteki Watir Rubiego). 1

Robinson użył MBT z powodzeniem w firmach, w tym Bell Labs, Microsoft i Google, i ma wiele przydatnych esejów. [2]

Ben Simo (kolejny świetny tester-pisarz i myśliciel) napisał także całkiem sporo na temat testów opartych na modelach. [3]

Wreszcie kilka uwag: Aby dobrze wykorzystać strategię, trzeba zbadać zarówno jej mocne strony, jak i słabe strony. W tym celu James Bach ma doskonałą rozmowę na temat ograniczeń i wyzwań związanych z testami opartymi na modelach. Ten wpis na blogu z linkami Bacha do jego godzinnej rozmowy (i powiązanych slajdów). [4]

Zakończę notatką o tym, co Boris Beizer nazywa Paradoksem Pestycydów: "Każda metoda, której używasz do zapobiegania lub znajdowania błędów pozostawia resztkę subtelniejszych błędów, przeciwko którym metody te są nieskuteczne." Testy skryptowe (wykonywane przez komputer lub osoba) są szczególnie podatne na paradoks pestycydów, dążąc do znalezienia coraz mniej użytecznych informacji za każdym razem, gdy wykonywany jest ten sam skrypt. Ludzie czasami przechodzą do testów opartych na modelach, myśląc, że radzą sobie z problemem pestycydów. W niektórych kontekstach testowanie oparte na modelach może znaleźć znacznie większy zestaw błędów niż dany zestaw testów skryptowych ... ale należy pamiętać, że jest on zasadniczo ograniczony przez Paradoks Pestycydów. Pamiętając o swoich ograniczeniach - zaczynając od pytań, na które MBT zajmuje się dobrze - może to być bardzo potężna strategia testowania.

Linki do wszystkich wymienionych wyżej eseje można znaleźć tutaj: http://testingjeff.wordpress.com/2009/06/03/question-about-model-based-testing/

0

Najlepszym sposobem jest spróbować samemu oparty narzędzie do testowania modelu. To najlepszy sposób na sprawdzenie, czy testy oparte na modelu są dostosowane do twojego kontekstu. A jakie strategie są dobre.

radzę wam "MaTeLo" narzędzie All4Tec (www.all4tec.net)

„MaTeLo jest generator przypadków testowych dla testów funkcjonalnych czarnej skrzynki i systemu. Upodobnić się do podejścia model Based Testing wykorzystuje MaTeLo Łańcuchy Markowa do modelowania testu Ten statystyczny dodatek umożliwia walidację produktów w sposób systematyczny Efektywność jest osiągana dzięki redukcji potrzebnych zasobów ludzkich, zwiększeniu ponownego użycia modelu oraz poprawie trafności strategii testowej (ze względu na cel niezawodności) MaTeLo jest niezależny i przyjazny dla użytkownika, oferuje działania walidacyjne umożliwiające przejście ze skryptów testowych do prawdziwej inżynierii testowej i skupienie się na rzeczywistej wartości dodanej testów: plany testów "

Możesz poprosić o licencję próbną i spróbować samemu.

Można znaleźć kilka exemples tutaj: http://www.all4tec.net/wiki/index.php?title=Tutorials