2011-07-01 31 views
5

Phần lớn đã được viết về thử nghiệm mã. Nhưng làm cách nào để đảm bảo rằng thiết kế của chúng tôi có chức năng chính xác ngay từ đầu? Cũng giống như chúng ta có JUnit để thử nghiệm mã Java, có một số công cụ có thể được sử dụng, để thử nghiệm một thiết kế dựa trên UML, nơi mà các bài kiểm tra được thể hiện dưới dạng các yêu cầu chức năng?khả năng kiểm thử của thiết kế

Đây là một số suy nghĩ mơ hồ, nhưng muốn biết liệu có cách tiếp cận có phương pháp, tự động hóa để kiểm tra thiết kế trước hay không. Nói cách khác, chúng ta có thể có 'Test Driven Design' không?

+0

Tôi nghĩ 'xác minh chính thức' là những gì bạn đang tìm kiếm. – leppie

+0

Có, nhưng theo cách 'lập trình' và 'có thể tự động' hơn. Do đó tôi tự hỏi nếu chúng ta có thể đưa ra một cái gì đó như 'UMLUnit' - để cho phép viết và thực hiện các bài kiểm tra cho các thiết kế UML. – shrini1000

+0

Tại sao xác minh không thể được lập trình và tự động? – leppie

Trả lời

1

Chủ đề thú vị! Đầu tiên, không có kiến ​​trúc sư phần mềm nào trong mạng cá nhân của tôi sử dụng UML như là cách duy nhất để thiết kế hệ thống của họ, và tôi cũng biết không có kiến ​​trúc sư phần mềm nào tạo ra UML ở mức chi tiết cần thiết để thực hiện kiểm tra cơ học.

Thứ hai, cá nhân tôi có một sự không thích sâu về các công cụ lập mô hình UML. Nếu một phương pháp xác minh chính thức như vậy được thực hiện, nó có khả năng giống như Rational Rose - tôi đã thề từ lâu rồi tôi sẽ không bao giờ đi đâu gần đó nữa. Tuy nhiên, đã nói tất cả điều đó - trong các cửa hàng phần mềm chính thức, thường có yêu cầu truy nguyên, thường được thực hiện như một ma trận hiển thị các yêu cầu nghiệp vụ trên một trục và các tạo phẩm thiết kế trên một trục khác. Bằng cách này, bạn có thể xem liệu có bất kỳ yêu cầu nào không phù hợp với giải pháp tương ứng hay không hoặc nếu có các yếu tố trong giải pháp không đáp ứng được yêu cầu kinh doanh cụ thể.

Giữ ma trận này được cập nhật là một nỗi đau, vì vậy nó không thường được sử dụng trong các nhóm nhanh, nhưng nếu bạn đang xây dựng phần mềm mềm cho một ngân hàng hoặc tàu con thoi thì đó là một kỹ thuật có giá trị.

Điều này cho bạn biết liệu thiết kế của bạn có hoàn chỉnh hay không - mặc dù không phải là "đúng".

Không có cách nào tôi biết để nói liệu một thiết kế là "đúng" mà không xây dựng nó và thử nghiệm, hoặc dựa vào kinh nghiệm và kiến ​​thức của con người.

2

đang có một số công cụ có thể được sử dụng để thử nghiệm một UML thiết kế dựa, nơi các cuộc thử nghiệm được thể hiện dưới hình thức yêu cầu chức năng?

Bạn không thể kiểm tra thiết kế dựa trên yêu cầu chức năng vì sự hài lòng của các yêu cầu chức năng phụ thuộc vào việc triển khai chứ không phải trên thiết kế.

Nói cách khác, bạn có thể làm theo một thiết kế xấu (bất kỳ một trong những thiết kế vô hạn có thể) và vẫn đáp ứng mà bộ yêu cầu chức năng nếu bạn thực hiện các hành vi được yêu cầu.

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