2009-02-20 11 views
9

Piszę aplikację internetową, która jest bardzo złożona pod względem interfejsu użytkownika i polega w dużym stopniu na manipulacjach AJAX, DOM i obrazem.Jak najlepiej wykonać testowanie jednostkowe dla aplikacji internetowej

Czy istnieje standardowa praktyka (nie chcę narzędzi), którą można zastosować w celu ograniczenia błędów?

+0

Świetne pytanie. Zastanawiam się nad tym samym. – RSolberg

+0

To jest bardzo niejasne pytanie. Na twoje pytanie zwykle można uzyskać listę narzędzi, ale wydajesz się, że jest jakiś magiczny sposób na zmniejszenie liczby błędów w kodzie. O co dokładnie pytasz? – ryeguy

+0

@ryeguy Jego pytanie jest ukierunkowane na projektowanie. Pyta, w jaki sposób styl testowania jednostek pasuje do aplikacji o dużej liczbie użytkowników. Carlten był w stanie odpowiedzieć na to pytanie. – DevinB

Odpowiedz

5

Rozdziel logikę i porcje interfejsu użytkownika - nie przechowuj całej logiki biznesowej i skomplikowanego kodu w kodzie źródłowym. Zamiast tego zbuduj je ze standardowej struktury warstw (warstwa danych, reguły biznesowe/warstwa logiczna, warstwa interfejsu użytkownika). Zapewni to, że Twój kod logiczny, który chcesz przetestować, nie odwołuje się do formularza, ale zamiast tego używa klas, które są łatwo testowane jednostkowo.

Dla bardzo prosty przykład, nie mają kodu, który wykonuje to:

string str = TextBox1.Text.ToString(); 
//do whatever your code does 
TextBox2.Text = str; 

Zamiast wyodrębnić logiki do osobnej klasy ze sposobem:

TextBox2.Text = DoWork(TextBox1.Text.ToString()); 

public class Work 
{ 
    public string DoWork(string str) 
    { 
     //do work 
     return str2; 
    } 
} 

ten sposób można napisać testy jednostkowe sprawdzające, czy DoWork zwraca poprawne wartości:

string return = DoWork("TestThisString"); 

Teraz cała twoja logika to jednostki tabela, z jedynym kodem, który ma odnieść się do strony bezpośrednio w twojej warstwie interfejsu.

8

Bardzo prostą techniką jest test dymu, w którym zautomatyzujesz klikanie całej aplikacji. Jeśli skrypt działa i nie ma żadnych błędów w dziennikach, masz co najmniej jeden określony poziom jakości.

Ta technika faktycznie przynosi sporą liczbę przerw w regresji i jest znacznie bardziej efektywna niż to się wydaje. Używamy do tego celu selenium.

+0

Masz na myśli test funkcjonalny z konkretnymi scenariuszami testowymi lub po prostu - kliknij każdy możliwy cel? – legesh

+0

Najprostszą wersją jest klikanie przypadków użycia, które są naszymi głównymi efektami. Jako minimum uwzględniamy również główne strumienie alternatywne/błędy. Nie musi to oznaczać, że klikniemy każdy przycisk/element, który istnieje. – krosenvold

2

Watin to doskonałe narzędzie do tego.

1

Prosta lista kontrolna (nawet na kawałku papieru!) To najlepszy sposób, aby nigdy nie pominąć ważnych rzeczy. To dobry "test dymu", że nic "standardowego" nie zostało złamane.

Powiązane problemy