2008-12-09 19 views
5

Myślę, że rozumiem testowanie jednostkowe. Zastanawiałem się jednak: czy istnieje sposób na zautomatyzowanie czegoś wizualnego, na przykład upewnienie się, że działa anty-aliasing lub że zaokrąglone rogi na stronie wyglądają tak, jak powinny? Mam wrażenie, że to po prostu nie jest praktyczne, ale mam niewielkie doświadczenie w świecie QA.Jak testujesz elementy wizualne?

Odpowiedz

2

"działa antyaliasing lub czy zaokrąglone rogi na stronie wyglądają tak, jak powinny?"

Teoretycznie można pisać zautomatyzowane narzędzia do robienia migawek renderingów i jakoś je analizować i porównywać z makietami.

Potrzebowałbyś jakiegoś mechanizmu "kotwiącego", aby dopasować odpowiedź modelu do renderowanego wyjścia, a następnie wykonać na nim różnicę kolorystyczną, gdzie wynikowy wynik to kompletny czarny obraz == perfekcyjna zgodność.

Jednak robi to bez wątpienia skomplikowany sposób wyczerpujący, a przyzwyczajenie zrekompensować percepcyjnych awarie takie jak jak to jest widoczne na Colourblind osoby na ekranie z źle skalibrowany colourmap.

Zamiast tego należy utworzyć pełne drzewo ze wszystkimi ścieżkami nawigacyjnymi możliwymi w aplikacji (nieco łatwiejszym programowo/opartym na pakiecie testowym), a następnie przekazać specyfikację grupie ludzi do przejścia i wykonywać na różnych platformach.

To zajmie w tym tygodniu, ale będzie powtórzyć testy manualne Evey czas Państwo dokonać zmiany kodu? Lub co kiedy wydasz wersję? Testy ręczne po prostu nie będą skalowane. Są tanie w krótkim, ale beznadziejnie kosztowne w na dłuższą metę. - Tim Ottinger

FWIW, Nawet Firefox nadal ma pakiet testów napędzanych przez człowieka. Ludzie są po prostu lepsi w rozpoznawaniu zachowań, które przy spełnieniu określonego standardu nie spełniają innych standardów, które nie zostały jeszcze arbitralnie zdefiniowane, a zatem nie zostały jeszcze zapisane w teście testowym.

1

Można też rozważyć automatyzację na poziomie GUI za pomocą narzędzia takiego jak TestComplete. Istnieje wiele takich narzędzi dostępnych w różnych cenach z ogromnym zakresem funkcjonalności. Sprawdź SQAF automation forum, aby uzyskać kilka dobrych dyskusji na ten temat.

1

To jest trudny problem z testowaniem urządzenia i nie ma dobrej odpowiedzi. Sprawdzanie wyników wyświetlanych na ekranie technicznie nie jest już testowaniem jednostkowym (jest to testowanie bardziej funkcjonalne).

Najlepszym podejściem, jakie znalazłem, jest uporządkowanie kodu tak, aby warstwa widoku była możliwie najcieńsza jako cienka. Wzory takie jak MVC i model prezentacji są do tego przydatne. Po wykonaniu tej czynności programowo można przetestować logikę biznesową widoku (jak w przypadku konkretnych interakcji między komponentami widoku) bez konieczności wyświetlania czegokolwiek.