Tạo thể hiện cho ontology

Một phần của tài liệu Tìm hiểu và xây dựng ca kiểm thử phần mềm ứng dụng ontology (Trang 61 - 85)

2.Thiết kế kiến trúc phân tầng và quan hệ trong ontology

Ontology kiểm thử được thiết kế với nền tảng kế thừa từ mô hình ontology kiểm thử phần mềm đã có (đã trình bày ở mục 4 – chương 1). Ontology kế thừa 2 nhóm khái niệm từ mô hình đã có đó là khái niệm cơ bản (Basic_Concepts) và khái niệm kết hợp (Compound_Concepts). Người làm luận văn phát triển mới 2 nhóm khái niệm là: kỹ thuật kiểm thử (Technical_Concepts) và dữ liệu kiểm thử (Testing_Data_Concepts).

Sau đây sẽ giới thiệu kiến trúc phân tầng các khái niệm chính trong ontology.

2.1.Khái niệm tổng quát

Hình 25. Các khái niệm tổng quát

 Basic_Concepts: bao gồm các khái niệm mô tả thành phần chính trong hoạt động kiểm thử phần mềm.

 Testing_Data_Concepts: bao gồm các khái niệm về dữ liệu trong kiểm thử phần mềm.

 Technical_Concepts: bao gồm các khái niệm về các kỹ thuật sinh testcase trong kiểm thử phần mềm.

62

2.2.Khái niệm cơ bản

Hình 26. Các khái niệm cơ bản

Các khái niệm này tham khảo từ mô hình ontology kiểm thử phần mềm đã trình bày ở mục 4 – chương 1.

2.3.Khái niệm về dữ liệu kiểm thử

Mục đích thực nghiệm của luận văn là xây dựng ontology kiểm thử phần mềm và sinh ca kiểm thử. Vì vậy người làm luận văn tập trung vào các khái niệm liên quan đến dữ liệu kiểm thử.

 QA_Report_Data: dữ liệu liên quan đến tạo báo cáo chất lượng (khái niệm này được xây dựng với mục đích mở rộng khả năng sử dụng ontology ngoài phạm vi luận văn).

 Test_Planning_Data: dữ liệu liên quan đến kế hoạch kiểm thử (khái niệm này được xây dựng với mục đích mở rộng khả năng sử dụng ontology ngoài phạm vi luận văn).

 Test_Coverage_Data: dữ liệu liên quan đến độ bao phủ.

 Test_Spec_Data: dữ liệu liên quan đến đặc tả ca kiểm thử.

 Common_Data: dữ liệu liên quan đến các khái niệm phổ biến - HistoryData: khái niệm về lịch sử của dữ liệu.

63

- ArtefactType: khái niệm về kiểu của tài liệu liên quan đến phát triển phần mềm

- Input_Data: khái niệm về dữ liệu đầu vào (của ca kiểm thử). - Output_Data: khái niệm về dữ liệu đầu ra (của ca kiểm thử)

 Extracting_Data: khái niệm liên quan đến dữ liệu trích xuất từ các tài liệu phát triển phần mềm

- Programming_Document_Data: khái niệm về dữ liệu trích xuất từ các tài liệu như yêu cầu chức năng, thiết kế vật lý, thiết kế logic.

 Module_Data: khái niệm về module  Function_Data: khái niệm về chức năng  Flow_Data: khái niệm về luồng xử lý.

64

Vì mục đích của hệ thống là sinh ca kiểm thử nên ta tập trung vào việc xây dựng khái niệm dữ liệu đặc tả kiểm thử (Test_Spec_Data)

- PreCondition_Data: khái niệm về điều kiện tiền đề của ca kiểm thử. - TargetTesting_Data: khái niệm về mục đích ca kiểm thử.

- ExpectedResult_Data: khái niệm về kết quả mong đợi của ca kiểm thử.

Hình 28. Các khái niệm về thông tin đặc tả ca kiểm thử

2.4.Khái niệm về kỹ thuật kiểm thử

Trong kiểm thử phần mềm, kỹ thuật kiểm thử (Technical_Concepts) đóng vai trò quan trọng trong việc quyết định phương pháp tạo các ca kiểm thử.

 Approach: khái niệm về cách tiếp cận để tạo ca kiểm thử

- Program_Approach: khái niệm về cách tiếp cận hướng tài liệu phát triển (thiết kế vật lý, thiết kế logic)

- Specifiaction_Approach: khái niệm về cách tiếp cận hướng tài liệu đặc tả

 Technique: khái niệm về phương pháp tạo ca kiểm thử

- Struture: khái niệm về phương pháp tạo hướng cấu trúc (cấu trúc hệ thống, chức năng, module)

65

- Error_Based: khái niệm về phương pháp tạo hướng vào các ca lỗi (với các ca lỗi kiểu này thì người kiểm thử có khả năng kiểm soát và phán đoán trước nguyên nhân gây lỗi).

- Fault_Based: khái niệm về phương pháp tạo hướng vào các ca thất bại (với các ca lỗi kiểu này thì người kiểm thử khó có khả năng kiểm soát và phán đoán trước nguyên nhân gây lỗi).

66

2.5.Khái niệm tổng hợp

Khái niệm tổng hợp là khái niệm kế thừa từ mô hình ontology kiểm thử đã có. Ở đây tập trung vào khái niệm Task. Task là khái niệm về một công việc trong kiểm thử phần mềm. Một Task có thể:

- Bao gồm 1 Activity, có thể là tạo tetscase, tạo test report, …

- Có hoặc không có hoàn cảnh thực hiện cụ thể. Nếu là tạo testcase thì cần xác định hoàn cảnh là unit test hay integration test, …

- Có hoặc không có phương thức thực hiện cụ thể. - Bao gồm 1 hoặc nhiều dữ liệu kiểm thử.

Hình 30. Khái niệm tổng hợp

2.6.Một số quan hệ cụ thể trong ontology

Quan hệ giữa dữ liệu kiểm thử và tài liệu tham chiếu

Dữ liệu kiểm thử có tài liệu tham chiếu để trích xuất dữ liệu cụ thể. Tài liệu tham chiếu chính là một Artefact của hệ thống phần mềm, mỗi artefact có

67

phân loại (artefact type) , định dạng (format), dữ liệu lịch sử (history data) cụ thể.

Hình 31. Quan hệ giữa dữ liệu kiểm thử và tài liệu tham chiếu

Quan hệ giữa phương thức với kỹ thuật và cách tiếp cận tạo ca kiểm thử

Mỗi phương thức kiểm thử có một kỹ thuật và một cách tiếp cận kiểm thử.

68

Quan hệ giữa dữ liệu trích xuất và các thông tin liên quan của ca kiểm thử

Dữ liệu trích xuất từ tài liệu phát triển như module, function, flow. Một module có thể mô tả về nhiều chức năng (function), mỗi chức năng có thể bao gồm nhiều luồng xử lý (flow ) khác nhau. Mỗi luồng xử lý bao gồm các thông tin sau:

- PreCondition_Data: khái niệm về dữ liệu tiền đề của ca kiểm thử. - TargetTesting_Data: khái niệm về mục đích ca kiểm thử.

- ExpectedResult_Data: khái niệm về kết quả mong đợi của ca kiểm thử. - FlowType: chứa thông tin về trạng thái kết thúc của luồng xử lý, cho biết

xử lý kết thúc ở trạng thái bình thường (normal) hay là bất thường (abnormal).

69

Hình 33. Quan hệ giữa dữ liệu trích xuất với thông tin đặc tả ca kiểm thử

Quan hệ giữa một số thông tin lưu trữ cơ bản

- Thông tin history data bao gồm: creator (người tạo), update date (thời gian cập nhật), version (thông tin phiên bản)

70

Hình 34. Quan hệ giữa một số thông tin cơ bản

- Thông tin đầu vào (input data), thông tin đầu ra (output data), mục đích test (target testing data) đều phải có nội dung tóm tắt (summary content) nhằm mục đích mô tả nội dung test case sau này.

71

3.Xây dựng ontology trên Protege 3.1.Danh sách các lớp 3.1.Danh sách các lớp

3.1.1.Các lớp tổng quan

Hình 36. Các lớp tổng quan

STT Tên Lớp Mô tả

1 Basic_Concepts Các khái niệm cơ bản của kiểm thử phần mềm

2 Compound_Concepts Các khái niệm kết hợp

3 Technique_Concepts Các khái niệm về kỹ thuật trong kiểm thử phần mềm

72

3.1.2.Các lớp khái niệm cơ bản về kiểm thử

Hình 37. Các khái niệm cơ bản về kiểm thử

STT Lớp Mô tả

1 Activity Khái niệm về các hoạt động trong kiểm thử phần mềm

2 Artefact Khái niệm về các tài liệu trong kiểm thử phần mềm

3 Enviroment Khải niệm về môi trường kiểm thử 4 Method Khái niệm về phương thức kiểm thử 5 Tester Khái niệm về người kiểm thử

73

3.1.3.Các khái niệm về dữ liệu kiểm thử

74

Hình 39. Các khái niệm về dữ liệu

STT Lớp Mô tả

1 Extracting_Data Khái niệm về dữ liệu trích xuất từ các tài liệu liên quan đến công nghệ phần mềm

2 Programming_Document_Data Là lớp con của Extracting_Data: khái niệm về dữ liệu trích xuất từ các tài liệu phát triển phần mềm, ví dụ như tài liệu yêu cầu

75

chức năng, tài liệu thiết kế, ....

3 Module_Data Là lớp con của

Programming_Document_Data: khái niệm về một module trong hệ thống phần mềm

4 Function_Data Là lớp con của

Programming_Document_Data: khái niệm về chức năng trong một hệ thống phần mềm

5 Flow_Data Là lớp con của

Programming_Document_Data: khái niệm về luồng xử lý 6 Test_Spec_Data Khái niệm về thông tin đặc tả

một test case

7 Pre_Condition_Data Là lớp con của Test_Spec_Data: khái niệm về thông tiền đề của một testcase

8 Target_Testing_Data Là lớp con của Test_Spec_Data: khái niệm về mục đích thực hiện của một testcase

7 Expected_Result_Data Là lớp con của Test_Spec_Data: khái niệm về kết quả mong đợi của một testcase

8 CommonData Khái niệm về thông tin chung

trong kiểm thử phần mềm

9 ArtefactType Là lớp con của CommonData:

khái niệm về kiểu của tài liệu trích xuất thông tin

10 Format Là lớp con của CommonData:

khái niệm về định dạng của dữ liệu

11 HistoryData Là lớp con của CommonData:

khái niệm về nguồn gốc của dữ liệu (do ai tạo? tạo vào thời gian nào? ...)

12 InputData Là lớp con của CommonData:

khái niệm về dữ liệu đầu vào của testcase

13 OutputData Là lớp con của CommonData:

76

testcase

3.1.4.Các khái niệm kết hợp

STT Lớp Mô tả

1 Task Khái niệm về một tác vụ cụ thể trong kiểm thử phần mềm. Ví dụ như: task tạo test spec, tạo test report, ...

3.1.5.Các khái niệm về kỹ thuật trong kiểm thử phần mềm

Hình 40. Các khái niệm về kỹ thuật kiểm thử

STT Lớp Mô tả

1 Approach Khái niệm về phương pháp tiếp cận trong kiểm thử phần mềm

2 Program_Based Là lớp con của Approach: khái niệm về phương pháp kiểm thử dựa trên chương trình (source code, physical design) 3 Specification_Based Là lớp con của Approach: khái niệm về

77

phương pháp kiểm thử dựa trên đặc tả (requirement, logical design)

4 Technique Khái niệm về kỹ thuật kiểm thử cụ thể 5 Error_Based Là lớp con của Technique: khái niệm về kỹ

thuật kiểm thử dựa trên lỗi nằm trong dự đoán

6 Fault_Based Là lớp con của Technique: khái niệm về kỹ thuật kiểm thử dựa trên lỗi bất thường 7 Structural Là lớp con của Technique: khái niệm về kỹ

thuật kiểm thử dựa trên cấu trúc chương trình

3.2.Danh sách thuộc tính kiểu đối tượng

78

STT Thuộc tính Miền / Domain Phạm vi/Range Mô tả

1 hasApproach Method Approach

Một phương thức kiểm thử có một phương pháp tiếp cận thực hiện 2 hasArtefactTyp e Artefact ArtefactType

Mỗi loại tài liệu có một kiểu đặc trưng

3 hasContext Task Context

Một task có một ngữ cảnh

thực hiện

4 hasEvironment Task Evironment

Một task có một môi trường

thực hiện

5 hasFlow Function Flow Một function có thể có

nhiều luồng xử lý.

6 hasFormat Artefact Format Mỗi loại tài liệu có

một định dạng file

7 hasFunction Module Function Một module có thể có

nhiều function

8 hasHistory Artefact HistoryData Mỗi tài liệu có lịch sử

ghi chú 9 hasInputData Pre_Conditon

Data InputData

Một điều kiện tiền đề có thể bao gồm nhiều thông tin input

10 hasMethod Task Method

Một task có một phương pháp thực hiện

11 hasOutputData Expected_Res

ult_Data OutputData

Một kết quả mong đợi có thể bao gồm nhiều thông tin output 12 hasReferenceD

ocument Testing_Data Artefact

Dữ liệu kiểm thử có tài liệu tham chiếu cụ thể. 13 hasResult Target_Testing _Data Expected_Result _Data Một mục đích testcase có thể có nhiều kết quả mong đợi

79

một kỹ thuật thực hiện

15 includeActivity Task Activity Một task bao gồm một

hoạt động 16 includeTestDat

a Task Testing_Data

Một task bao gồm một hoặc nhiều dữ liệu kiểm thử.

17 isCalledBy Function Function

Một chức năng có thể được gọi bởi nhiều chức năng khác

18 callTo Function Function

Một chức năng có thể gọi tới nhiều chức năng khác

3.3.Danh sách thuộc tính kiểu nguyên thủy

Hình 42. Danh sách thuộc tính kiểu nguyên thuỷ

STT Thuộc tính Miền/Domain Phạm vi/Range Mô tả

1 hasCreator HistoryData String

Thông tin lịch sử bao gồm tên người tạo tài liệu

2 hasId

Task Module Function

80 Flow

3 hasLocation Artefact String Tài liệu có địa chỉ lưu trữ

cụ thể 4 hasName Method Task Module Function Flow

String Mỗi đối tượng có một tên xác định 5 hasSummary Content InputData OutputData Artefact TargetTestingD ata

String Mỗi đối tượng có nội dung tóm tắt cụ thể.

6 hasType Flow String

Mỗi luồng xử lý có một kiểu xác định, có thể là normal hoặc abnormal.

7 hasUpdateD

ate HistoryData String

Thông tin lịch sử có thời gian cập nhật

8 hasVersion HistoryData String Thông tin lịch sử có

thông tin phiên bản

4.Tạo thể hiện cho ontology

Phần này thực hiện tạo các thực thể cho ontology một cách thủ công. Người làm luận văn đã sử dụng thông tin từ một dự án thực tế để tạo thực thể. Trong phạm vi luận văn, người làm luận văn đã lựa chọn module [Quản lý báo cáo ngày] trong phần mềm [Hệ thống quản lý cho thuê tài sản] để minh họa. [Hệ thống quản lý cho thuê tài sản] là phần mềm quản lý thông tin liên quan đến các hoạt động cho thuê như vật tư thiết bị sản xuất, nhà ở, thiết bị đi lại,... Một hoạt động quan trọng của hệ thống đó là thực hiện các báo cáo ngày cho người quản lý hệ thống. Đó là nhiệm vụ của module [Quản lý báo cáo ngày]. Module này bao gồm 4 chức năng chính:

- Function 1: chức năng xem thông tin liên quan báo cáo ngày - Function 2: chức năng tìm kiếm thông tin liên quan

81 - Function 3: chức năng tạo báo cáo ngày

- Function 4: chức năng tạo chú thích, yêu cầu cho báo cáo ngày

Hình 43. Minh hoạ trên Protege – Một Module bao gồm nhiều Function

Mỗi chức năng (Function) sẽ bao gồm nhiều luồng xử lý (Flow). Ví dụ chức năng [Xem thông tin liên quan báo cáo ngày] bao gồm 4 luồng xử lý chính:

 Flow 1: luồng kiểm tra thông tin nhập vào như ngày tháng, người tạo báo cáo,...

 Flow 2: luồng lấy thông tin về lịch báo cáo ngày

82

 Flow 4: luồng lấy thông tin khởi tạo báo cáo ngày.

Hình 44. Minh hoạ trên Protege – Một Function bao gồm nhiều Flow

Mỗi luồng xử lý (Flow) sẽ bao gồm các thông tin về điều kiện tiền để, mục đích xử lý, kết quả xử lý. Ví dụ với luồng [Kiểm tra thông tin nhập vào] sẽ bao gồm các thông tin sau:

 Pre_Condition: điều kiện tiền đề là thông tin nhập vào không hợp lệ. - InputData: giá trị đầu vào cụ thể là trống.

 Target_TestingData: mục tiêu xử lý.

- SummaryContent: có nội dung xử lý là đưa ra cảnh báo.

 Expected_Result: kết quả mong đợi của xử lý.

- OutputData: giá trị đầu ra là đưa ra thông điệp cảnh báo về nội dung nhập vào là không hợp lệ.

83

84

Dưới đây là hình minh hoạ tổng quát quan hệ giữa các thực thể trong ontology

Task DailyReport hasName TS0001 UnitTest Test spec Generation Testing Data Artefact Method hasID hasContext hasActivity hasMethod includeTestData hasReferenceDocument hasFunction Module_Data Fucntion1 Daily Report Management U0001 hasName hasID hasFunction Fucntion2 Search Information U0002 hasName hasID Flow1 hasFlow Flow2 hasFlow AbNormal hasType Normal hasType hasInputData InValidUser : ID = !!!xxxx Pre Condition Data include Target Testing Data include Stop hasSummaryContent hasOutputData Not OK Expected Result Data include isConditionOf hasResult hasInputData ValidUser: ID = CB110209 Pre Condition Data include Target Testing Data include Go to Confirm Next Step is hasOutputData OK Expected Result Data include isConditionOf hasResult callTo isCalledBy Flow1 hasFlow Flow2 hasType include Throw Message Exception to Screen Target Testing Data Expected Result Data is include Error Message include hasOutputData isConditionOf hasResult hasFlow Pre Condition Data Normal hasType include InputData hasInputData Target Testing Data include User Information include Display User Information is Expected Result Data hasOutputData InValidUser : ID = !!!xxxx is OutputData is

is : tương đương với hasSummaryContent

Vì giới hạn hình vẽ nên sẽ lược bỏ quan hệ giữa PreConditionData và InputData, ExpectedResultData và OutputData. Chỉ minh hoạ ở Function2 – Flow2

85

Một phần của tài liệu Tìm hiểu và xây dựng ca kiểm thử phần mềm ứng dụng ontology (Trang 61 - 85)

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

(92 trang)