2009-02-20 32 views
9

Tôi đang viết một ứng dụng web rất phức tạp về giao diện người dùng và dựa chủ yếu vào các thao tác AJAX, DOM và hình ảnh.Cách tốt nhất để kiểm tra đơn vị cho một ứng dụng web

Có thực hành tiêu chuẩn nào (tôi không muốn các công cụ) có thể được theo sau để giảm lỗi không?

+0

Câu hỏi hay. Tôi đã tự hỏi điều tương tự. – RSolberg

+0

Đây là một câu hỏi rất mơ hồ. Câu hỏi của bạn thường có thể được trả lời với một danh sách các công cụ, nhưng bạn làm cho nó âm thanh như có một số cách kỳ diệu để có được ít lỗi trong mã của bạn. Chính xác là bạn đang hỏi cái gì? – ryeguy

+0

@ryeguy Câu hỏi của ông là một câu hỏi định hướng thiết kế. Anh ấy hỏi làm thế nào phong cách thử nghiệm đơn vị phù hợp với một ứng dụng giao diện người dùng nặng nề. Carlten đã có thể trả lời điều đó. – DevinB

Trả lời

5

Phân tách logic và phần giao diện người dùng - không có tất cả mã nghiệp vụ và mã phức tạp của bạn trong mã phía sau trang. Thay vào đó, hãy xây dựng chúng ra khỏi cấu trúc tầng tiêu chuẩn (lớp dữ liệu, quy tắc nghiệp vụ/lớp logic, lớp giao diện người dùng). Điều này sẽ đảm bảo rằng mã logic của bạn mà bạn muốn thử nghiệm không tham chiếu đến biểu mẫu, mà thay vào đó sử dụng các lớp có thể dễ dàng kiểm tra đơn vị.

Đối với một ví dụ rất cơ bản, không có mã nào này:

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

Thay vào đó giải nén logic thành một lớp riêng biệt với phương pháp:

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

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

Bằng cách này bạn có thể viết kiểm tra đơn vị để xác minh rằng DoWork đang trả lại giá trị chính xác:

string return = DoWork("TestThisString"); 

Bây giờ tất cả logic của bạn là đơn vị tes bảng, chỉ với mã HAS để tham chiếu trang trực tiếp trong lớp giao diện người dùng của bạn.

8

Kỹ thuật rất đơn giản là thử nghiệm khói, nơi bạn tự động hóa nhấp qua tất cả ứng dụng của mình. Nếu tập lệnh chạy và không có lỗi nào ở bất kỳ đâu trong nhật ký, bạn có ít nhất một mức chất lượng được xác định.

Kỹ thuật này thực sự bắt được một số lượng hợp lý các kỳ nghỉ hồi quy và hiệu quả hơn nhiều so với âm thanh. Chúng tôi sử dụng selenium cho việc này.

+0

Bạn có nghĩa là một thử nghiệm chức năng với các kịch bản thử nghiệm cụ thể hoặc nó chỉ cần nhấp vào tất cả các mục tiêu có thể? – legesh

+0

Phiên bản đơn giản nhất chúng tôi thực hiện là nhấp qua các trường hợp sử dụng là các sản phẩm chính của chúng tôi. Tối thiểu chúng tôi cũng bao gồm các luồng thay thế/lỗi chính. Điều này không nhất thiết có nghĩa là chúng tôi sẽ nhấp vào mỗi nút/mục có. – krosenvold

2

Watin là công cụ tuyệt vời cho việc này.

1

Danh sách kiểm tra đơn giản (ngay cả trên một tờ giấy!) Là cách tốt nhất để đảm bảo bạn không bao giờ bỏ qua những điều quan trọng. Đó là một "thử nghiệm khói" tốt mà không có gì "tiêu chuẩn" đã bị phá vỡ.

Các vấn đề liên quan