2010-02-20 6 views
6

Nếu bạn đang ở vị trí của tôi, bạn có một ứng dụng WebForms lớn đã leo thang đến điều không thể duy trì này. Mọi thứ xảy ra khi bạn thêm các tính năng mới và bạn cần một cách duy trì không tốn kém để thực hiện một số loại thử nghiệm tự động.Kiểm tra các ứng dụng webforms ASP.NET

Bây giờ, từ sự hiểu biết của tôi, điều đúng đắn cần làm là cố gắng xây dựng bố cục trừu tượng của trang và mô hình điều khiển người dùng hiện diện trong ASP.NET WebForms, vì nó đòi hỏi một khoản đầu tư lớn vào một ứng dụng hiện có Nó không phải là một lựa chọn.

Tôi đang cố gắng và thúc đẩy sự phát triển giống như REST càng nhiều càng tốt vì nó có một số thuộc tính tốt đẹp. Và trong khi thực hiện điều này, tôi đã viết một bot nhện đơn giản thu thập tất cả các URL mà nó có thể tìm và thử, chỉ cần nhận chúng. Điều này cho phép tôi nhanh chóng tìm thấy dữ liệu xấu đã gây ra sự cố và tránh người dùng cuối của tôi nhấp vào những thứ bị hỏng, tuy nhiên, điều này tất nhiên là không đủ.

Tôi tiếp tục làm việc trên trình thu thập thông tin của mình và nó được phát triển thành một ứng dụng REST đơn giản cố gắng kết hợp đầu vào khác nhau, tìm kiếm lỗi hoặc sự cố có thể xảy ra. Thông minh hơn là tìm kiếm đầy đủ (vì nó biết về lớp ứng dụng ASP.NET WebForms) và mục tiêu của tôi ở đây là khám phá trạng thái của ứng dụng web, hy vọng sẽ đạt được tất cả các trường hợp góc trước người dùng của chúng tôi.

Có ai có kinh nghiệm làm điều gì đó tương tự không?

Ngoài ra, để bạn kiểm tra rất kinh nghiệm ở đó. Đây có phải là một sự lãng phí thời gian hoàn toàn, hoặc tôi sẽ có thể thực sự nói điều gì đó về chất lượng ở đây? Theo quan điểm của tôi, nó có vẻ là một điểm nhạy cảm ở chỗ nó sẽ thử những thứ mà một người dùng cuối tiềm năng sẽ là một trình duyệt.

Như tôi đã nói trước đây, chúng tôi bị kẹt ở một nơi tồi tệ. Và chúng ta cần một cách đơn giản, ngay bây giờ.

Chúng tôi đã thử những thứ như Selenium, nhưng nó đòi hỏi nhiều công việc phụ và chúng tôi thay đổi mọi thứ mọi lúc, không thể duy trì nhiều bộ thử nghiệm selenium cho 50 ứng dụng khác nhau.

Trả lời

4

Trong số tất cả các loại thử nghiệm để triển khai, kiểm tra đơn vị vừa dễ nhất vừa có khả năng mang lại kết quả tốt nhất, về mặt lỗi ít hơn và mã dễ bảo trì hơn. Nhận được rằng làm việc ra trước khi bạn đối phó với thử nghiệm tích hợp tự động

  1. Chọn một IOC container - Tôi thích Ninject cho cá nhân này
  2. Tìm một nơi thuận tiện để tiêm lớp "dịch vụ" vào trang của bạn (consturctor của một cơ sở Lớp trang hoặc ghi đè mô-đun tải trang, bất kỳ thứ gì phù hợp với bạn)
  3. Chọn khung kiểm tra đơn vị và nếu bạn không có bản dựng tự động, hãy thiết lập một cấu hình; bao gồm việc chạy một bộ kiểm tra đơn vị đầy đủ trong tòa nhà đó
  4. Mỗi lần bạn đi gần một đoạn logic trong aspx.Tệp cs, xem bạn có thể không cô lập nó trong một dịch vụ và kiểm tra đơn vị quấn quanh nó
  5. Hãy xem liệu MVP Pattern có phù hợp với bạn hay không - chúng tôi nhận thấy nó giảm năng suất càng nhiều càng tốt. cả hai rất nhiều), nhưng nó hoạt động đối với một số người
  6. Xem về chậm chuyển ứng dụng của bạn trên để MVC, a page at a time if necessary

Và hãy nhớ, bạn sẽ không để khắc phục vấn đề này qua đêm, bạn không có thời gian . Chỉ cần tiếp tục cải thiện phạm vi kiểm tra và bạn sẽ thấy các lợi ích theo thời gian.

+0

Cảm ơn câu trả lời của bạn, bạn đã có kinh nghiệm với MEF chưa? Bạn có thể bình luận về sự khác biệt? –

+0

Không, xin lỗi, tôi không có. Về mặt thương mại, tôi không muốn chạm vào sản phẩm MS [Tôi tin rằng nó yêu cầu .NET 4?] Cho đến khi chúng được phát hành và thử nghiệm, không cố định và thử nghiệm lại :) – pdr

+0

Xem trước MEF hiện tại không yêu cầu .Net 4. –

1

Phần nào của ứng dụng của bạn đang vi phạm? Giao diện người dùng hoặc logic nghiệp vụ?

Logic nghiệp vụ phải được tách biệt hoàn toàn với giao diện người dùng và phải được kiểm tra riêng. Đặc biệt, việc sử dụng các công cụ kiểm tra đơn vị tự động đối với logic nghiệp vụ được tách biệt dễ dàng hơn nhiều so với giao diện người dùng.

+0

Yeah, nhưng hãy tưởng tượng một thế giới chúng tôi điều này không được thực hiện bởi các cuốn sách, và đã không được thực hiện trong một thời gian dài. Và ngay cả khi nó đã được, công việc làm mận mà đẩy giá trị vào lớp kinh doanh có thể có lỗi trong nó là tốt. Giao diện của tôi để thử nghiệm là HTTP/REST là lớp trừu tượng duy nhất đáng tin cậy. Điều này đã khá nhiều biến thành một hoạt động cứu hộ. –

0

Nếu tôi cứng nhắc, bạn có biểu mẫu web lớn và muốn chạy một số thử nghiệm người dùng cuối tiêu chuẩn mỗi lần bạn thực hiện bản phát hành mới.

Tôi có thể đề xuất số Selenium IDE adon for firefox.

nó sẽ cho phép bạn ghi lại hành động của người dùng, ví dụ: điền vào biểu mẫu và cho phép bạn phát lại những hành động đó bất kỳ lúc nào. một cách dễ dàng để chạy một số thử nghiệm trên một biểu mẫu với dữ liệu differnt.

Để thử nghiệm mã nội bộ viết một số bài kiểm tra đơn vị sử dụng NUnit

+0

bạn có thể vui lòng cung cấp liên kết đến selenium ide adon một lần nữa? Trang không tồn tại nữa – harry180

+1

Tôi đã cập nhật liên kết. – TheAlbear