Mô tả và xây dựng bài toán

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu kiểm thử Webservice và xây dựng công cụ hỗ trợ (Trang 41 - 48)

Chương 3. XÂY DỰNG CÔNG CỤ HỖ TRỢ KIỂM THỬ DỊCH VỤ WEB

3.1. Mô tả và xây dựng bài toán

Hiện nay qua khảo sát ở một số công ty phần mềm thì việc thực hiện kiểm thử WS vẫn chủ yếu là thực hiện thủ công dựa trên một số công cụ hỗ trợ chạy thử WS như Soap UI, Jmeter hoặc một số công cụ do người phát triển WS tự xây dựng để kiểm thử. Qua tìm hiểu thì có một số công cụ hỗ trợ việc kiểm thử tự động WS có thể kể đến như: Parasoft SOAtest, Soapsonar , Quick Test Pro,…Tuy nhiên các phần mềm trên rất khó trong việc áp dụng do đặc thù mã nguồn đóng và chi phí cho việc sử dụng cao.

3.1.2. Mô tả bài toán

Qua tìm hiểu về các kỹ thuật kiểm thử nói chung và lý thuyết về kiểm thử dịch vụ web nói riêng, từ thực trạng chung về kiểm thử dịch vụ web hiện nay đều thực hiện thủ công trên các công cụ có sẵn và các công cụ khác chưa hiệu quả khi áp dụng. Tôi nhận thấy chưa có một công cụ nào hỗ trợ việc kiểm thử dịch vụ web hiệu quả. Cụ thể ở một số công ty đang sử dụng như SoapUI và chủ yếu theo hướng:

Bước 1: Nhân viên kiểm thử viết testcase

Từ tài liệu mô tả yêu cầu của cán bộ giải pháp, nhân viên kiểm thử phân tích và tạo các testcase theo luồng xử lý của tài liệu. Hiện nay tại Trung tâm phần mềm Viễn thông Viettel, công việc này là bắt buộc và chưa có công cụ hỗ trợ tạo testcase tự động, do tài liệu mô tả hoàn toàn viết bằng ngôn ngữ tự nhiên.

Bước 2: Thực hiện test thủ công bằng công cụ SoapUI

Bên dưới là hình mô tả một WS được thực hiện kiểm thử khi nhập tham số đầu vào và kiểm tra tham số đầu ra có đúng với yêu cầu của khách hàng không trên công cụ Soap UI.

Hình 3.1. Mô tả kiểm thử WS qua SoapUI

Bước 3: Kiểm tra kết quả và log lỗi nếu có

Nhân viên kiểm thử so sánh kết quả nhận được trên giao diện SoapUI với kết quả trong kịch bản testcase. Nếu đúng sẽ cập nhật kịch bản kết quả PASS, nếu sai log lỗi lên hệ thống quản lý lỗi (như Mantis) và đợi nhân viên phát triển fix lỗi

Bước 4: Test lại sau khi fix lỗi.

Thực hiện lại từ bước 2 cho đến khi tất cả lỗi đều được fix xong.

Quá trình kiểm thử được lặp lại cho đến khi hết lỗi nên rất mất thời gian, gây nhàm chán và cũng không đảm bảo tính đúng đắn khi thực hiện kiểm thử.

Việc kiểm thử dịch vụ web chủ yếu tạo dữ liệu đầu vào và kiểm tra dữ liệu đầu ra đúng với yêu cầu của khách hàng, tương đương với việc kiểm thử hộp đen với kết quả vào ra được định lượng rõ ràng.

Việc tạo ra một công cụ hỗ trợ việc thực hiện kiểm thử và kiểm thử lại là rất cần thiết.

Tuy nhiên để đảm bảo dịch vụ web hoạt động đúng thì yêu cầu bộ dữ liệu testcase phải đúng và đầy đủ theo yêu cầu.

Hiện nay có khá nhiều nghiên cứu về việc xây dựng công cụ kiểm thử tự động cho WS, đặc biệt là các trường đại học (ví dụ như Đại học Thanh Hoa Bắc Kinh [11], Đại học Ottawa, Canada [13]…). Cơ chế chung của các công cụ này như sau:

Hình 3.2. Mô tả luồng xử lý công cụ tự động Các thành phần chính:

- Test Case Generator: dựa vào tài liệu WSDL tự động tạo các test case. Các test case này được lưu trong database tập trung. Có thể mở rộng ra các chuẩn khác như BPEL4WS, OWL-S.

- Test Execution Controller: điều khiển thực thi test trong môi trường phân tán: lấy các test case từ database, phân phối đến các test agent, giám sát việc chạy test và thu thập kết quả.

- Test Agents: là một proxy thực hiện test từ xa trên dịch vụ đích với dữ liệu test cho trước.

- Test Analyzer: phân tích kết quả test, phỏng đoán chất lượng của dịch vụ và tạo báo cáo kết quả test.

Tuy nhiên qua các bài báo nghiên cứu tôi nhận thấy là chưa có một công cụ hữu hiệu có thể áp dụng vào việc kiểm thử tự động WS một cách hiệu quả.

Áp dụng những nghiên cứu trên và nhu cầu từ kiểm thử WS thực tế, Bài toán luận văn đưa ra để giúp cho việc thực hiện kiểm thử tự động là “Xây dựng công cụ hỗ trợ kiểm thử dịch vụ web trên nền tảng .NET”.

3.1.3. Sơ đồ chức năng hệ thống

Hình 3.3. Sơ đồ chức năng Gồm 4 chức năng chính:

a. Quản lý Webservice:

o Thêm mới: thêm Web service cần thực hiện test. Thông tin bao gồm link Web service và mô tả.

o Sửa: cập nhật lại link hoặc mô tả về Web service hiện có.

o Xóa: xóa Web service hiện có.

o Xuất file testcase mẫu: tạo file excel chứa testcase mẫu của mỗi hàm Web service. Người dùng sẽ sửa trên file này để tạo bộ testcase hoàn chỉnh rồi import lại. Ở đây sẽ mô tả cho người dùng tham số đầu vào thuộc kiểu dữ liệu nào.

b. Quản lý Testcase:

o Thêm mới: thêm testcase cần thực hiện với từng Web service. Có thể thêm trên giao diện, hoặc import từ file excel. Thông tin testcase bao gồm:

 Mã Web service tương ứng

 Tham số đầu vào

 Tham số đầu ra mong muốn

 Độ quan trọng của testcase

 Mô tả về testcase

o Sửa: sửa lại thông tin testcase hiện có từ giao diện.

o Xóa: xóa testcase hiện có.

o Import: nhập testcase từ file excel. Để đúng chuẩn thì sử dụng file excel được export từ chức năng quản lý Web service.

c. Quản lý dữ liệu test: các kiểu dữ liệu này sẽ được gán với tham số trong testcase để sinh testcase tự động. Gồm các chức năng nhỏ:

o Thêm mới: thêm kiểu dữ liệu mới, bao gồm:

 Tên kiểu dữ liệu

 Mẫu dữ liệu (pattern): theo mẫu của regular expression và quy định của bộ thư viện Xeger [17].

 Giá trị mặc định

 Giá trị không thỏa mãn độ dài

 Giá trị không thỏa mãn mẫu dữ liệu

 Giá trị chứa ký tự đặc biệt

 Giá trị thay đổi hoa, thường

o Sửa: sửa thông tin các kiểu dữ liệu hiện tại o Xóa: xóa kiểu dữ liệu

o Tạo testcase tự động: gán các giá trị của kiểu dữ liệu cho tham số của testcase. Các testcase được tạo là tổ hợp của các trường hợp gán giá trị của từng tham số:

 Giá trị mặc định

 Các giá trị biên

 Các giá trị không hợp lệ cần tạo d. Thực hiện kiểm thử: là chức năng tự động.

o Gọi Web service: thực hiện invoke Web service với các tham số truyền vào để lấy kết quả.

o So sánh kết quả: so sánh kết quả thu được thực tế với kết quả mong muốn và hiển thị kết quả.

e. Báo cáo:

o Xuất file kết quả: ra file excel để phục vụ công tác báo cáo, đánh giá Web service.

3.1.4. Thiết kế cơ sở dữ liệu

Yêu cầu của bài toán là cho phép người dùng thể nhập link Web service và bộ testcase được thiết kế theo chuẩn, có thể tùy biến thay đổi link Web service và tái sử dụng bộ testcase có sẵn. Hệ thống dùng hai bảng WEBSERVICE và INFORMATION_INPUT để lưu trữ.

Chi tiết về thiết kế CSDL:

Bảng 3.1. Danh sách các bảng trong cơ sở dữ liệu

Bảng lưu link Web service- Tên bảng: WEB SERVICE

STT Tên cột Kiểu Mô tả

1 Webservice_id Number(10,0) Bắt buộc, khóa chính tăng theo sequence

2 Content Nvarchar(1024) Bắt buộc, lưu link Web service 3 Description Narchar(1024) Mô tả về Web service

Bảng lưu testcase- Tên bảng: INFORMATION_INPUT

STT Tên cột Kiểu Mô tả

1 Id Number(10,0) Bắt buộc, khóa chính tăng theo sequence

2 Method Nvarchar(100) Tên hàm trong Web service 3 Input Nvarchar(2048) Lưu dữ liệu đầu vào

4 Output_results Nvarchar(2048) Kêt quả thực tế của Web service trả về

5 Output_desirable Nvarchar(2048) Kết quả mong muốn của Web service

6 Results Nvarchar(2048) Kết quả so sánh giữa

Output_results và Output_desirable 7 Level Nvarchar(100) Mức độ quan trọng của testcase.

Có 2 mức: Important và Not important

8 Dercription Nvarchar(1024) Mô tả về testcase

9 Webservice_id Number(10,0) Khóa ngoài liên kết với bảng Webservice

10 Response_time Number(15,0) Thời gian phản hồi (ms) Bảng lưu kiểu dữ liệu - Tên bảng: TYPES

1 Type_id Number(10,0) Khóa chính của bảng 2 Type_name Nvarchar(100) Tên kiểu dữ liệu

3 Sub_type Nvarchar(100) Kiểu dữ liệu cơ bản của kiểu dữ liệu hiện tại (int, string, date…) 4 Pattern Nvarchar(1024) Mẫu dữ liệu, theo định dạng

regular expression và quy định của thư viện Xerger [17]

5 Default_value Nvarchar(1024) Giá trị mặc định

6 Random Number(10,0) Số lượng giá trị random sẽ sinh ra trong bộ testcase

7 Wrong_type Nvarchar(1024) Giá trị không hợp lệ về kiểu 8 Special_char Nvarchar(1024) Giá trị chứa ký tự đặc biệt

9 Change_case Nvarchar(1024) Giá trị khi thay đổi kiểu chữ hoa, thường

10 Min_value Nvarchar(1024) Giá trị nhỏ nhất 11 Max_value Nvarchar(1024) Giá trị lớn nhất

Bảng lưu kiểu dữ liệu của tham số Web Service –Tên bảng: MAP_TYPE 1 Webservice_id Number(10,0) Mã Web service, khóa ngoại bảng

WEBSERVICE

2 Method Nvarchar(100) Tên hàm trong Web service 3 Param_name Nvarchar(100) Tên tham số vào của Web service 4 Type_id Number(10,0) Mã kiểu dữ liệu, khóa ngoại của

bảng TYPES Thiết kế các SEQUENCE

STT Tên cột Kiểu Mô tả

1 Webservice_id_s eq

Integer Sequence cho trường Webservice_id bảng Webservice 2 Id_seq Integer Sequence cho trường id bảng

Information_input

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu kiểm thử Webservice và xây dựng công cụ hỗ trợ (Trang 41 - 48)

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

(80 trang)