[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/