Nguồn gốc của các mô hình test và cách sử dụng dựa trên các biểu đồ UML

Một phần của tài liệu Tìm hiểu về công cụ tự động sinh test case tự động kiểm thử phần mềm (Trang 44)

UML

Trong phần này, những hướng dẫn từng bước một được đưa ra mô tả một cách tiếp cận có thể dẫn tới một hệ thống từ các biểu đồ use case được đưa ra tới một cơ sở cho việc sinh tự động của các Test case. Biểu đồ hoạt động (hình 24) cho thấy trình tự của các hoạt động trong ngữ cảnh của quá trình phát triển phần mềm. Với các mục đích minh họa, một ví dụ đơn giản được lấy từ một dự án thư viện được sử dụng.

(1) Cải tiến các use case

Khởi đầu bằng việc định nghĩa các use case, một quan điểm toàn diện được đơn giản hóa về các chức năng được yêu cầu của hệ thống được tạo ra. Do sự giới hạn của việc diễn đạt, các biểu đồ use case bản thân chúng sử dụng rất ít-trừ khi các use case riêng biệt được cải tiến trong một dạng nguyên văn thông thường, và thường có đăng ký.

Mục đích của hệ thống hóa bắt nguồn từ các mô hình cách sử dụng cho một hệ thống phần mềm mà đòi hỏi các diện mạo động được mô hình hóa từ một điểm được định hướng tới cách sử dụng của quan điểm, cụ thể sự tương tác của hệ thống với môi trường, ví dụ, sự phản hồi của nó tới tác nhân hoạt động; các phản hồi bên trong thì chỉ liên quan đến bởi vì chúng cho ra các kết quả bên ngoài.

Một mẫu được trình bày thành dạng bảng phù hợp cho việc cải tiến nguyên bản các use case. Ý tưởng đằng sau là để đạt được một sự mô tả hoàn chỉnh đơn nhất của một use case bằng việc xác định và liên hệ lẫn nhau tới tất cả của các kịch bản nó đưa vào. Thêm vào đó, các điều kiện trước và sau xác định trạng thái cách sử dụng trước và sau tương ứng, việc thực hiện các thủ tục use case tượng tự như vậy. Kể cả các use case phụ bên trong một use case cho phép các liên hệ có thứ bậc trong số các use case. Một phiên bản mẫu (bảng 2) được mở rộng bởi các tác nhân và các lượng bất biến được cho thấy ở hình 25; một ví dụ minh họa đầy đủ nữa của một mẫu được cho trong hình 26.

Bảng 2: Mẫu cải tiến các use case

Một mẫu như được nói trong công việc được đặt tên cần được mở rộng cho nhiều điều kiện:

Nhiều điều kiện trước: Điều kiên trước xác định ngữ cảnh, ví dụ, trạng thái cách sử dụng, trong đó một use case có thể được thực hiện; sự mở rộng này cho phép đa ngữ cảnh.

Nhiều điều kiện cao hơn: Một use case đơn nhất có thể dẫn tới một vài trạng thái có thể cao hơn (thông qua những biến đổi hoặc những sự mở rộng); các vị trí cao hơn có thể khác biệt phụ thuộc vào kịch bản nào được áp dụng. Cho sử dụng sau đó; nhiều điệu kiện cao hơn nên được đánh số, và việc định nghĩa các kịch bản nên được làm rõ điều kiện cao hơn nào chúng đưa đến.

Một mẫu chi tiết như vậy phải được điền vào trong cho mỗi use case. Tính chất như hột của các đặc tả kịch bản xác định tính chất có hột của các công việc test thậm chí cách tiếp cận dẫn đến, ví dụ, một bước kịch bản tương tự một tác nhân kích thích sẽ được đưa vào trong một đầu vào test nguyên tử và một bước kịch bản mô tả một câu trả lời sẽ trở thành một câu trả lời có thể quan sát được nguyên tử.

(2) Từ use case tới các biều đồ trạng thái

Mục đích của việc lấy được các Test case dựa vào các mô hình cách sử dụng đòi hỏi một sự miêu tả giống đồ thị hơn của quan điểm hướng đến cách sử dụng. Các biểu đồ trạng thái tạo ra một bước khởi đầu phù hợp với hai lý do:

• Quan điểm là hướng đến trạng thái và sự phù hợp để đưa ra các trạng thái khác nhau của cách sử dụng.

• Nguyên mẫu của các chuyển tiếp trạng thái là một biến khởi động, đó là, một tác nhân khiến cho hệ thống mô hình thay đổi trạng thái của nó.

Chi tiết các mẫu use case đã được giới thiệu được nâng cao để hỗ trợ sự bắt nguồn hệ thống của một đặc tả cách sử dụng được dựa vào biểu đồ trạng thái. Chi tiết use case đã được thực hiện bởi con người, nhưng sự chuyển tiếp theo sau có thể được tự động bởi cách tiếp cận này.

Bảng 3: Một ví dụ về mẫu chi tiết các use case

Ý tưởng (mà sinh ra một vài sự tương đồng là để mô hình hóa mỗi use case trong một biểu đồ trạng thái tách biệt và giữ chặt những biểu đồ đó trong một biều đồ mức độ cao nhất. Biểu đồ mức độ cao nhất này tương tự một framework trong đó use case có thể được thực hiện phụ thuộc vào những điều kiện đầu tiên của chúng, và trong đó có thêm các trạng thái cách sử dụng toàn bộ, được ngoại suy từ các điều kiện ban đầu của tất cả các use case, có thể được chuyển đổi giữa chúng, thêm nữa bằng các công cụ của use case. Một biểu đồ trạng thái mức độ cao hoặc một trật tự như vậy,

với các hệ thống phức tạp hơn) là được xây dựng bằng cách tôn trọng triệt để các hướng dẫn sau:

• Từ tất cả các điều kiện ban đầu và cao hơn của tất cả các use case, các trạng thái toàn thể của cách sử dụng là được ngoại suy. Trong ngữ cảnh đó, “các trạng thái của cách sử dụng” tham chiếu tới sự liên hệ của hệ thống người sử dụng. Ví dụ, trong một ứng dụng dựa trên GUI tương tác, những trạng thái như vậy mô tả các thực đơn khác nhau. • Các biều đồ trạng thái của use case xuất hiện như những người có địa vị, có nghĩa là chỉ đường viền trạng thái của chúng và tên được đưa vào cùng, tham chiếu tới biểu đồ trạng thái thực tế. Bên trong chúng, các bộ nối biểu đồ phù hợp với các điều kiện cao hơn được lấy ra. Một bộ nối biểu đồ là một sự tham khảo biểu trưng tới một sự xuất hiện khác của cùng biểu tượng trong một biểu đồ khác, cho phép các kết nối này trong số các biểu đồ tách biệt. Cơ chế này là một sự mở rộng của các biểu đồ trạng thái UML. Các bộ nối cho phép các biểu đồ trạng thái tách biệt của mỗi use case hơn một biểu đồ phức tạp và giúp ích cho việc sửa lại/sử dụng lại (cải thiện tính dễ hiểu và tránh các lỗi). Sự đa dạng và sự mở rộng của các use case đưa thêm các điều kiện cao hơn trong các biểu đồ trạng thái được cải tiến thường xuyên cung cấp thêm các bộ nối biểu đồ.

• Các trạng thái quan trọng của mỗi use case nhận các chuyển tiếp hồi lại từ tất cả các trạng thái toàn bộ mô tả các điều kiện ban đầu của use case trong tiều đề cập đến. Sự khởi động của mỗi chuyển tiếp là bước đầu tiên của kịch bản thành công chính (ví dụ, các tác nhân kích thích khởi động sự thực hiện của use case). Nếu có đa tác nhân kích thích khởi động, một sự chuyển tiếp tách biệt cần được đưa vào cho mỗi tác nhân kích thích.

• Các bộ nối biểu đồ bên trong các trạng thái quan trọng (place-holding) của các use case là được kết nối tới các trạng thái hệ thống toàn bộ tương ứng với điều kiện cao hơn được tương đồng bởi bộ nối biểu đồ trong điều được đề cập đến. Những chuyển tiếp này được chuyển tiếp tự động (và sẽ khó tránh khỏi sự chuyển tiếp ở giai đoạn sau).

• Các chuyển tiếp đầu tiên và kết thúc được thêm vào, mô tả sự kích hoạt và kết thúc của phần mềm, tương ứng.

Để giải thích cho các tác nhân khác nhau và các hiện trạng cách sử dụng khác nhau, người ta gợi ý để tạo ra một biểu đồ mức độ cao tách biệt cho mỗi tác nhân. Cách này, các hiện trạng cách sử dụng độc lập mà đã được mô tả bởi các biểu đồ trạng thái mức độ cao có thể được cải tiến độc lập, giữ lại và xây dựng trên đặc tả chung được bắt nguồn trong các bước trước đó. Hình 25 cho thấy một biểu đồ mức độ cao có thể cho một ứng dụng giả mạo không hoàn chỉnh mẫu use case trong bảng 3 có thể thuộc về nó.

Lấy ra mẫu các chi tiết được điền vào, mỗi use case được chuyển vào trong một biểu đồ trạng thái riêng biệt bằng cách theo sau các hướng dẫn bên dưới:

• Mô hình hóa các kịch bản thành công chủ yếu như biểu đồ trạng thái: Các phản ứng hệ thống được đưa vào trong các trạng thái, các tác nhân kích thích trở thành sự chuyển tiếp được khởi động. Các trạng thái và chuyển tiếp được đặt tên và đánnh mã trong một hình thức mà giúp tương quan giữa chúng với các thực thể tương đương trong mẫu use case tương ứng.

• Các thay đổi và mở rộng được kết hợp bằng cách thêm vào các trạng thái và các chuyển tiếp. Có thể trong các biểu đồ trạng thái thấp hơn.

• Mỗi một điều kiện cao hơn khác nhau trở thành một bộ nối biểu đồ mà chỉ các chuyển tiếp trở về được phép kết nối với. Ghi nhớ rằng nó là hợp pháp để có các đa chuyển tiếp kết nối tới bộ nối biểu đồ giống nhau bởi vì những vạch dấu này tại trạng thái muốn được thay thế bởi các trạng thái ở mức độ cao hơn.

• Các điều điện đầu tiên không được mô hình hóa bên trong biểu đồ trạng thái use case tương ứng, và không là các tác nhân kích thích mà là các bước đầu tiên của các kịch bản chính (trừ khi có các biến đổi và /hoặc sự chấp thuận của bước đầu tiên trong các kịch bản thành công chính, các case trong đó biểu đồ chuyển tiếp ban đầu có thể bị tách rời việc sử dụng một thanh mẫu điều kiện (using a conditional fork).

• Các hành động hệ thống có thể được quan sát đã được mô hình hóa như các hành động (thực thể) trong các trạng thái tương ứng.

Hình 26 cho thấy một biểu đồ trạng thái được cải tiến cho ví dụ thư viện. Các bộ nối biểu đồ tham chiếu tới biểu đồ của hình 25 và tới các mở rộng trong bảng 3.

Kết quả của bước này là một hệ thống cấp bậc của các biểu đồ trạng thái và một trình độ cao hơn của sự hình thức hóa. Các use case giờ đây được buộc lại cùng nhau thông qua một biểu đồ trạng thái mức độ cao nhất. Một lợi thế khác của việc sử dụng các biểu đồ trạng thái là một bước đầu tiên gồm vào trong đó, nếu được yêu cầu và tính khả thi đã cho ra một cấu trúc của hệ thống, các mô hình cách sử dụng tách biệt có thể được tạo ra mỗi biểu đồ trạng thái, cho phép ứng dụng về cách tiếp cận tại một thành phần hơn là mức hệ thống.

Hình 26. Cải tiến biểu đồ trạng thái cho ví dụ use case của bảng 3.2

(3) Từ các biểu đồ trạng thái tới đồ thị cách sử dụng

Trong bước này, các biểu đồ trạng thái mức độ cao nhất được chuyển vào trong các đồ thị cách sử dụng. Một đồ thị cách sử dụng có một sự khởi đầu duy nhất và một sự kết thúc duy nhất. Thêm vào đó các trạng thái mô tả các trạng thái cách sử dụng. Những sự chuyển tiếp giữa các trạng thái được đánh mã với các hành động của người sử dụng khiến sự chuyển tiếp được thực hiện hoặc, là một sự mở rộng khái niệm chung, các chuyển tiếp ε.Epsilon là các chuyển tiếp được thực hiện một cách tự động, được đưa ra để cho phép các chuyển tiếp giữa các trạng thái cách sử dụng không có các tác nhân kích thích bên ngoài.

Các biểu đồ trạng thái mức độ cao hơn có thể được chuyển vào trong các đồ thị cách sử dụng gắn chặt với các hướng dẫn sau đây:

• Việc làm phẳng của các biểu đồ trạng thái được thực hiện bằng cách đệ quy các trạng thái thấp hơn mà đã được thay thế bởi những người có địa vị cao hơn. Các bộ nối biểu đồ đã đưa ra như là những người có vị trí cao hơn cho các trạng thái mức độ cao hơn tương ứng với một điều kiện cao hơn nhất định được thay thế bởi các trạng thái mức độ cao hơn chúng tượng trưng cho. Các chuyển tiếp đầu tiên của các trạng thái thấp hơn được thay thế bằng các hình cung đưa đến trạng thái tương ứng trong một biểu đồ mức độ cao hơn. Các nhãn trạng thái nên được thêm vào đầu lặp đi lặp lại với tên của biểu đồ trạng thái (như được xác định từ use case tương ứng) để tránh xung đột tên. Kết quả sẽ là một biểu đồ trạng thái mà không có các trạng thái có thứ bậc và các bộ nối biểu đồ.

• Các tác nhân kích thích được xác định, ví dụ, tất cả sự xuất hiện của các tác nhân kích thích giống nhau được thay thế bởi một biểu tượng miêu tả duy nhất tác nhân kích thích đó. Điều này dẫn đến các biểu đồ dễ hiểu hơn.

• Các chuyển tiếp tự động (ví dụ không có điều kiện) được thay thế bởi các chuyển tiếp với ε như là một sự khởi động. Những sự lựa chọn khác nhau sẽ là để rời đi các trạng thái này từ các trạng thái tự động mở rộng và gán các chuyển tiếp trở về các hành

động trạng thái của chúng là các hành động mạng tính chuyển tiếp. Cách tiếp cận epsilon tăng cường tính dễ hiểu và sự tương quan của đồ thị cách sử dụng với các biểu đồ trạng thái nó được dựa trên. Thêm vào đó, nó tránh kết hợp các module được mô tả bởi các biểu đồ trạng thái và do đó không rõ ràng các đường viền của chúng.

• Các chuyển tiếp đầu tiên của biểu đồ mức độ cao nhất được thay thế bởi một trạng thái được đặt tên Sofware Not Invoked, có sự tương đồng với ứng dụng phần chưa được dẫn chứng cho đến nay của ứng dụng, và một sự chuyển tiếp dẫn về từ đó tới mục tiêu của chuyển tiếp ban đầu. Sự chuyển tiếp ban đầu mới được gán một biểu tượng đưa ra mô tả sự kích hoạt của phần của phần mềm.

• Trạng thái cuối được thay thế bởi một trạng thái được đặt tên Software Terminated trong một cách tương đương tới đó được xác định cho chuyển tiếp ban đầu. Nói một cách khác, một biểu tượng tương tự sự kết thúc của phần mềm được gán cho các chuyển tiếp mới tương ứng.

• Không phải là sự kết thúc của cái chết (ví dụ, các trạng thái không có bất kỳ sự chuyển tiếp sắp tới nào) hoặc các trạng thái không thể đạt tới được. Nếu bất kỳ cái nào được tìm thấy, sự xem xet lại nhiều lần sẽ được yêu cầu.

• Các hành động trạng thái được giữ thay cho. Bởi vì việc dán nhãn của các trạng thái của đồ thị cách sử dụng là một sự tùy tiện, chúng có thể được xem xét một phần của một tên hoặc nhận xét và trong bất kỳ trường hợp nào cho phép việc xác định chậm hơn của kết quả của hệ thống được mong đợi khi một trạng thái cách sử dụng nhất định được đạt tới.

Môt sự minh họa về việc làm thế nào một đồ thị cách sử dụng về ví dụ được sử dụng bên trên có thẻ nhìn giống như đã được cho ra (là một mô hình cách sử dụng hoàn thiện thu được không có các chỉnh sửa thêm từ đồ thị cách sử dụng) trong phần tiếp theo.

(4) Từ các biểu đồ cách sử dụng tới các mô hình cách sử dụng

Để có được các mô hình cách sử dụng sự phân phối khả năng của cách sử dụng về phần mềm đối với hiện trạng cách dùng đã được mô tả bởi biểu đồ cách dùng phải được xác định. Không có cách tiếp cận hệ thống chung cho việc lấy được điều đó. Nó

Một phần của tài liệu Tìm hiểu về công cụ tự động sinh test case tự động kiểm thử phần mềm (Trang 44)

Tải bản đầy đủ (DOCX)

(72 trang)
w