1. Trang chủ
  2. » Thể loại khác

DSpace at VNU: Phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồ tuần tự UML, biểu đồ lớp và ràng buộc OCL

23 206 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 666,58 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DSpace at VNU: Phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồ tuần tự UML, biểu đồ lớp và ràng buộc OCL tài liệu,...

Trang 1

i

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN VĂN HÒA

PHƯƠNG PHÁP SINH DỮ LIỆU KIỂM THỬ TỰ ĐỘNG

TỪ BIỂU ĐỒ TUẦN TỰ UML, BIỂU ĐỒ LỚP

Trang 2

MỤC LỤC

LỜI CẢM ƠN Error! Bookmark not defined TÓM TẮT Error! Bookmark not defined ABSTRACT Error! Bookmark not defined LỜI CAM ĐOAN Error! Bookmark not defined.

MỤC LỤC ii

DANH SÁCH BẢNG BIỂU iv

DANH SÁCH HÌNH VẼ v

BẢNG THUẬT NGỮ VIẾT TẮT vii

Chương 1: GIỚI THIỆU 1

Chương 2: CÁC KHÁI NIỆM VÀ TỔNG QUAN KIỂM THỬ DỰA TRÊN MÔ HÌNH 3 2.1 Tổng quan kiểm thử dựa trên mô hình 3

2.1.1 Khái niệm kiểm thử dựa trên mô hình 3

2.1.2 Quy trình chung của kiểm thử dựa trên mô hình 5

2.1.3 Phương pháp đặc tả mô hình bằng máy trạng thái UML 6

2.1.4 Thuận lợi và khó khăn của kiểm thử tự động dựa trên mô hình 6

2.2 Biểu đồ tuần tự và các khối phân đoạn trong UML 8

2.2.1 Biểu đồ tuần tự 8

2.2.2 Các phân đoạn sử dụng trong biểu đồ tuần tự 8 2.3 Đồ thị dòng điều khiển Error! Bookmark not defined.

2.4 Các độ đo kiểm thử Error! Bookmark not defined.

Chương 3: PHƯƠNG PHÁP SINH ĐỒ THỊ DÕNG ĐIỀU KHIỂN TỪ BIỂU ĐỒ TUẦN

TỰ Error! Bookmark not defined.

3.1 Điều kiện ràng buộc trong thiết kế Error! Bookmark not defined.

3.2 Thuật toán biến đổi biểu đồ tuần tự sang đồ thị dòng điều khiển Error! Bookmark

not defined.

3.2.1 Thuật toán sinh đồ thị dòng điều khiển Error! Bookmark not defined.

Trang 3

3.3 Kỹ thuật sinh kịch bản kiểm thử Error! Bookmark not defined.

3.3.1 Kịch bản kiểm thử cho các toán từ thông thường Error! Bookmark not

defined.

3.3.2 Kịch bản kiểm thử cho các phân đoạn song song (Par, Seq) Error! Bookmark

not defined.

3.4 Xây dựng hệ ràng buộc Error! Bookmark not defined.

3.5 Giải hệ sử dụng SMT-Solver Error! Bookmark not defined.

3.6 Các nghiên cứu liên quan Error! Bookmark not defined Chương 4: CÔNG CỤ VÀ THỰC NGHIỆM Error! Bookmark not defined.

4.1 Giới thiệu công cụ và môi trường thực nghiệm Error! Bookmark not defined.

4.2 Thực nghiệm Error! Bookmark not defined.

4.3 Ý nghĩa thực nghiệm Error! Bookmark not defined.

Chương 5: KẾT LUẬN Error! Bookmark not defined.

TÀI LIỆU THAM KHẢO 14

Trang 4

DANH SÁCH BẢNG BIỂU

Bảng 2.1 Ca kiểm thử độ bao phủ yếu Error! Bookmark not defined Bảng 2.2 Ca kiểm thử độ bao phủ trung bình Error! Bookmark not defined Bảng 2.3 Ca kiểm thử độ bao phủ mạnh Error! Bookmark not defined Bảng 3.1 Các khóa cơ bản và ý nghĩa trong tệp xmi Error! Bookmark not defined Bảng 3.2 Dữ liệu thu thập tương ứng theo các nốt được nối với nhau Error! Bookmark

not defined.

Bảng 4.1 Môi trường thử nghiệm công cụ sinh ca kiểm thử từ thiết kế Error! Bookmark

not defined.

Trang 5

DANH SÁCH HÌNH VẼ

Hình 2.1 Qui trình kiểm thử dựa trên mô hình 6

Hình 2.2 Phân đoạn Alt 9

Hình 2.3 Phân đoạn Opt 9

Hình 2.4 Phân đoạn Loop vô hạn 10

Hình 2.5 Phân đoạn Loop với cận trên bằng cận dưới bằng 10 10

Hình 2.6 Phân đoạn Loop với cận trên bằng 5, cận dưới bằng 10 10

Hình 2.7 Phân đoạn Break 12

Hình 2.8 Phân đoạn Par 12

Hình 2.9 Phân đoạn Seq 12

Hình 2.10 Phân đoạn Strict 13

Hình 2.11 Phân đoạn Ignore 13

Hình 2.12 Phân đoạn Consider 14

Hình 2.13 Phân đoạn Neg Error! Bookmark not defined Hình 2.14 Phân đoạn Assert Error! Bookmark not defined Hình 2.15 Phân đoạn Critical Error! Bookmark not defined Hình 2.16 Đồ thị dòng điều khiển tương ứng của phân đoạn Par Error! Bookmark not

defined.

Hình 3.1 Thiết kế tên thông điệp Error! Bookmark not defined Hình 3.2 Thiết kế ràng buộc Error! Bookmark not defined Hình 3.3 Khai báo biến trong ràng buộc tương ứng cho các lớp Error! Bookmark not

defined.

Hình 3.4 Xóa triệt để các đối tượng không dùng nữa Error! Bookmark not defined Hình 3.5 Đồ thị CFG tương ứng cho phân đoạn Alt Error! Bookmark not defined Hình 3.6 Đồ thị CFG tương ứng cho phân đoạn Opt Error! Bookmark not defined Hình 3.7 Đồ thị CFG tương ứng cho phân đoạn Loop Error! Bookmark not defined Hình 3.8 Đồ thị CFG tương ứng cho phân đoạn Break Error! Bookmark not defined Hình 3.9 Đồ thị CFG tương ứng cho phân đoạn Par Error! Bookmark not defined.

Trang 6

Hình 3.10 Đồ thị CFG tương ứng cho phân đoạn Seq Error! Bookmark not defined Hình 3.11 Đồ thị CFG tương ứng cho phân đoạn Ignore Error! Bookmark not defined Hình 3.12 Đồ thị CFG tương ứng cho phân đoạn Consider Error! Bookmark not

defined.

Hình 3.13 Đồ thị CFG tương ứng cho phân đoạn Neg Error! Bookmark not defined Hình 3.14 Đồ thị CFG tương ứng cho phân đoạn Assert Error! Bookmark not defined Hình 3.15 Đồ thị CFG tương ứng cho phân đoạn Strict Error! Bookmark not defined Hình 3.16 Ví dụ cây đồ thị cần duyệt Error! Bookmark not defined Hình 3.17 Đồ thị dòng điều khiển Error! Bookmark not defined Hình 3.18 Ví dụ về ràng buộc OCL được khai báo trong thiết kế Error! Bookmark not

defined.

Hình 3.19 Mô tả công cụ SMT Solver Error! Bookmark not defined Hình 4.1 Cấu trúc công cụ thực nghiệm Error! Bookmark not defined Hình 4.2 Đầu vào công cụ của ví dụ 1 Error! Bookmark not defined Hình 4.3 Đầu ra - đồ thị CFG của ví dụ 1 Error! Bookmark not defined Hình 4.4 Đồ thị CFG và ca kiểm thử độ bao phủ yếu cho ví dụ 1 Error! Bookmark not

defined.

Hình 4.5 Ca kiểm thử độ bao phủ yếu cho ví dụ 1 Error! Bookmark not defined Hình 4.6 Ca kiểm thử độ bao phủ trung bình cho ví dụ 1 Error! Bookmark not defined Hình 4.7 Dữ liệu kiểm thử sau khi xuất ra tệp MS Excel Error! Bookmark not defined Hình 4.8 Đầu vào của ví dụ 2 Error! Bookmark not defined Hình 4.9 Đầu ra đồ thị CFG cho ví dụ 2 Error! Bookmark not defined Hình 4.10 Ca kiểm thử độ bao phủ yếu cho ví dụ 2 Error! Bookmark not defined Hình 4.11 Ca kiểm thử độ bao phủ trung bình cho ví dụ 2 Error! Bookmark not

Trang 8

BẢNG THUẬT NGỮ VIẾT TẮT

Environment

Môi trường phát triển tích hợp

Trang 9

1

Chương 1: GIỚI THIỆU

Công nghệ phần mềm đang ngày càng phát triển và chi phối cuộc sống của con người Ngược lại, con người luôn không ngừng sáng tạo để tạo ra những công nghệ mới, phần mềm và dịch vụ mới Trong quá trình phát triển đó, cần phải có một qui trình song song để phát hiện và kiểm soát những sai lầm mà con người có thể vô tình hoặc cố tình tạo ra, đó chính là kiểm thử Theo ước tính, quá trình kiểm thử chiếm khoảng 50% thời gian và 40% - 60% tổng chi phí trong toàn bộ quá trình phát triển phần mềm [1] Quá trình kiểm thử cũng quyết định sự thành công, mức độ đảm bảo của dự án phần mềm đặc biệt là trong các lĩnh vực đòi hỏi độ chính xác cao như hàng không, quân sự, khoa học, vũ trụ Vì vậy, để rút ngắn thời gian phát triển và nâng cao chất lượng dự án phần mềm, quá trình sinh ca kiểm thử tự động và nâng cao chất lượng ca kiểm thử trở nên thực sự cần thiết, nhất là đối với những phần mềm lớn và phức tạp Kiểm thử tự động đang được xem

là giải pháp chính nhằm giảm chi phí và thời gian mà vẫn đảm bảo chất lượng trong quá trình phát triển phần mềm Để giải quyết vấn đề này, nhiều công trình nghiên cứu đã được

đề xuất nhằm giải quyết, tối ưu và tự động hóa quá trình kiểm thử Mỗi công trình nghiên cứu mang lại một kết quả khác nhau và áp dụng cho từng mục đích kiểm thử khác nhau Một số nghiên cứu có thể kể đến như: phương pháp sinh ca kiểm thử tự động từ biểu đồ tuần tự trong UML bởi A.V.K Shanthi và G Mohan Kumar [6] Sinh dữ liệu kiểm thử tự động từ biểu đồ tuần tự UML và ràng buộc OCL bởi Ashalatha Nayak và Debasis Samanta [4] Sinh ca kiểm thử từ biểu đồ tuần tự và hệ thống chuyển đổi được gắn nhãn bởi Emanuela G Cartaxo[9] Sinh ca kiểm thử tự động từ biểu đồ tuần tự UML và ràng buộc OCL bởi Li Bao-Lin, Li Zhi-shu, Li Qing và Chen Yan Hong [10], v.v Trong đó một số nghiên cứu mới chỉ dừng lại ở dạng đề xuất, nhiều nghiên cứu khác chưa giải quyết trọn vẹn bài toán kiểm thử trực tiếp từ biểu đồ tuần tự từ một phần mềm cụ thể Mỗi phương pháp hướng tới một mục đích kiểm thử khác nhau Để hiểu rõ hơn một vài nghiên cứu trên sẽ được trình bày chi tiết hơn ở chương ba của luận văn

Bài nghiên cứu nàytôi sẽ trình bày một phương pháp khác sinh ca kiểm thử tự động và cải tiến một công đoạn sinh ca kiểm thử tự động để nâng cao chất lượng kiểm thử.Cũng như các phương pháp kiểm thử dựa trên mô hình khác, phương pháp này đòi hỏi phải có các mô hình toán học đặc tả chính xác hành vi của hệ thống và có sẵn trong thực tế Các mô hình này thường được biểu diễn bằng các máy hữu hạn trạng thái đơn định Tuy nhiên, xây dựng mô hình cho các phần mềm là một công việc khó khăn và tiềm

ẩn nhiều lỗi đối với các công ty Thay vào đó việc phân tích và thiết kế dựa trên các biểu

đồ tuần tự UML là một công việc dễ dàng và trở nên phổ biến hơn Do đó việc kiểm thử tính đúng đắn cho thiết kế dựa trên mô hình đang được nghiên cứu và áp dụng thực tế cho kiểm thử dự án phần mềm Không những tự động hóa được qui trình kiểm thử mà thời

Trang 10

gian bắt đầu kiểm thử cũng được tiến hành sớm hơn giúp rút ngắn thời gian phát triển phần mềm

Giai đoạn kiểm thử thiết kế (kiểm thử dựa trên mô hình) chủ yếu tập trung vào các

ca kiểm thử được sinh ra từ các đường kiểm thử dựa trên đồ thị hoạt động và sinh ra dữ liệu kiểm thử từ dữ liệu đầu vào là các bản thiết kế từ đặc tả chương trình.Với mục tiêu kiểm thử phần mềm dựa trên thiết kế của biểu đồ tuần tự, mục tiêu nâng cao chất lượng kiểm thử cũng như khả năng phát hiện lỗi của các kịch bản kiểm thử trong thiết kế và khi chương trình được thực thi Nội dung bài nghiên cứu này được trình bày trong 4 chương

Chương 3 nghiên cứu đề xuất cách biến đổi từ biểu đồ tuần tự sang đồ thị dòng điều khiển và các thuật toán biến đổi Phương pháp sinh ca kiểm thử sau khi hoàn thành

độ thị dòng điều khiển trong đó chia ra 2 kịch bản kiểm thử Một cho các phân đoạn thông thường (các phân đoạn không chứa luồng song song) và một kịch bản kiểm thử cho các phân đoạn chứa luồng song song (Par, Seq).Phần cuối chương 3trình bày phương pháp sinh dữ liệu kiểm thử từ đồ thị dòng điều khiển,một số nghiên cứu liên quan để thấy được

ưu nhược điểm của bài nghiên cứu so với các phương pháp khác

Chương 4 giới thiệu công cụ thực nghiệm, các ví dụ thể hiện tính đúng đắn và khả thi của phương pháp đề xuất Kết quả thu được thực tế từ chương trình và rút ra ý nghĩa của phương pháp đề xuất

Cuối cùng là kết luận, định hướng mở rộng và tài liệu tham khảo

Trang 11

Chương 2: CÁC KHÁI NIỆM VÀ TỔNG QUAN KIỂM THỬ DỰA TRÊN MÔ

HÌNH

2.1 Tổng quan kiểm thử dựa trên mô hình

Ngày nay, các công ty phần mềm lớn thường sử dụng ngôn ngữ UML (Unified Modeling Language) để phân tích, thiết kế phần mềm trước khi đi vào triển khai Sản phẩm tạo ra là các mô hình thiết kế bởi UML Trong UML có nhiều mô hình phục vụ cho thiết kế, việc lựa chọn những mô hình nào để thiết kế phụ vào mục đích sử dụng và định hướng phát triển phần mềm của công ty đó Quá trình kiểm thử trong giai đoạn thiết kế này được gọi là kiểm thử dựa trên mô hình Các mô hình thiết kế có thể là biểu đồ lớp, biểu đồ tuần tự, biểu đồ hoạt động, v.v là đầu vào cho kiểm thử dựa trên mô hình, đầu ra

là các ca kiểm thử để đánh giá, phát hiện lỗi Mục đích của kiểm thử dựa trên mô hình là tìm ra được lỗi từ khâu thiết kế, không triển khai những thiết kế lỗi, hạn chế và rút ngắn được thời gian kiểm thử cũng như triển khai dự án sau này

Việc kiểm thử và phát hiện sớm các lỗi, các khiếm khuyết trong thiết kế làm giảm thiểu đến mức thấp nhất các lỗi phát sinh khi đưa vào ứng dụng thực tế, đồng thời làm giảm đáng kể thời gian cũng như chi phí phát triển, bảo trì Do vậy, việc phát triển một phương pháp kiểm thử dựa trên mô hình mang lại hiệu quả cao là rất cần thiết Trong chương này, tôi sẽ trình bày lý thuyết về phương pháp kiểm thử dựa trên mô hình và ứng dụng cho kiểm thử phần mềm

2.1.1 Khái niệm kiểm thử dựa trên mô hình

Kiểm thử dựa trên mô hình là một kỹ thuật kiểm thử hộp đen, dựa trên phương pháp ứng dụng các mô hình thiết kế vào kiểm thử phần mềm Mô hình thiết kế là đại diện cho các hành vi mong muốn của một hệ thống cần kiểm thử, kiểm thử dựa trên mô hình đại diện cho một chiến lược thử nghiệm hay một môi trường kiểm thử

Trang 12

các ca kiểm thử cụ thể phù hợp để thực thi Trong một số môi trường kiểm thử dựa trên

mô hình, mô hình có đủ thông tin để tạo ra dãy ca kiểm thử thực thi trực tiếp Trong các trường hợp khác, các yếu tố trong bộ phần mềm kiểm thử cần phải được ánh xạ tới bộ kiểm thử cụ thể

Có bốnphương pháp tiếp cận với kiểm thử dựa trên mô hình như sau[7]:

 Sinh ra dữ liệu đầu vào kiểm thử từ một mô hình chính: đầu vào cơ bản của kiểm thử dựa trên mô hình là các mô hình, từ đó tạo ra các ca kiểm thử bằng cách chọn lựa thông minh một tập hợp con của tập giá trị các trường hợp có khả năng

để đưa ra dữ liệu đầu vào kiểm thử Ví dụ mô hình cần kiểm thử có 3 tập đầu vào

như sau, A : {red, green, yellow}, B : {1, 2, 3, 4} và C : {car, truck, bike} Chúng ta

có thể kết hợp và lựa chọn ra số ca kiểm thử tối thiểu thỏa mãn tất cả các đường kiểm thử có thể thực thi thay vì thực thi tất cả các ca kiểm thử Theo đó số ca kiểm

thử cho ví dụ này là 12 thay vì 3 x 4 x 3 = 36 ca kiểm thử

Sinh ra các ca kiểm thử từ một mô hình môi trường:phương pháp này sử dụng

một loại mô hình khác, mô hình này sẽ miêu tả môi trường mong muốn của SUT

Từ mô hình mô phỏng giả lập này đưa ra các tham số gọi tới SUT Tuy nhiên, như cách tiếp cận sinh dữ liệu đầu vào kiểm thử từ một mô hình chính, trình tự được tạo ra không chỉ định rõ các đầu ra mong đợi của SUT, điều này là không thể dự đoán các giá trị đầu ra, bởi vì mô hình môi trường không mô hình hóa được toàn

bộ hành vi của SUT Vì vậy nó rất khó để xác định chính xác một kiểm thử là thành công hay thất bại

Sinh ra các ca kiểm thử với các dự đoán từ một mô hình hành vi:đưa ra các ca

kiểm thử có khả năng thực thi bao gồm các thông tin dự đoán các giá trị đầu ra mong muốn của SUT Hoặc một vài khâu kiểm tra tự độngcác giá trị đầu ra thực tế

để có thể nhìn thấy nếu chúng là đúng đắn Điều này khó hơn việc sinh ra dữ liệu kiểm thử đầu vào hoặc kiểm thử dựa trên trình tự gọi tới SUT mà không kiểm tra tới kết quả đầu ra Để đưa ra kiểm thử với các dự đoán thì người đưa ra các ca kiểm thử phải có đầy đủ thông tin về các hành vi mong đợi của SUT để có thể tiên đoán hoặc kiểm tra các dữ liệu đầu ra của SUT Một cách khác, với định nghĩa kiểm thử dựa trên mô hình này, mô hình phải mô tả các hành vi mong đợi của SUT, cũng như mối quan hệ giữa chúng, đồng thời mô tả đầu vào và đầu ra cho từng hành vi Thuận lợi của cách tiếp cận này là nó là phương pháp tiếp cận duy nhất giải quyết được vấn đề kiểm thử dựa trên mô hình bằng việc chọn lựa các giá

Trang 13

Sinh ra các đoạn mã kiểm thử từ các kiểm thử trừu tượng:sinh ra các ca kiểm

thử có thể thực thi bao gồm các thông tin tiên đoán dựa trên mô hình hành vi của SUT Quá trình sinh ra các ca kiểm thử này bao gồm việc sinh ra dữ liệu kiểm thử

và trình tự các phương thức gọi tới kiểm thử tuần tự, sinh ra các dự đoán để kiểm tra kết quả đầu ra của SUT Đây là một phương pháp tiếp cận hoàn thiện và phức tạp nhất, mang lại hiệu quả tốt nhất Nó có thể tự động hoàn thiện các tiến trình thiết kế, đưa ra một mô hình hoàn thiện, tái hiện đầy đủ các tuần tự kiểm thử và chuyển đổi thành các kịch bản kiểm thử có thể thực thi

Với cách nhìn của kiểm thử dựa trên mô hình, chúng ta định nghĩa kiểm thử dựa trên mô hình như việc tự động tạo ra các ca kiểm thử hộp đen đối với bản thiết kế

2.1.2 Quy trình chung của kiểm thử dựa trên mô hình

Mô hình UML được thiết kế từ các đặc tả yêu cầu của hệ thống Mô hình có thể được biểu diễn bằng các loại mô hình và biểu đồ khác nhau Việc xây dựng mô hình còn phải dựa trên các yếu tố dữ liệu đầu vào và đầu ra Mô hình này được sử dụng để sinh đầu vào cho các ca kiểm thử Tiếp đến, chúng ta sẽ sinh giá trị đầu ra mong muốn ứng với mỗi bộ đầu vào Khi kết thúc bước này, chúng ta đã có các ca kiểm thử Sau khi thực thi các ca kiểm thử tương ứng theo từng giai đoạn hoặc phương pháp tiếp cận, kết quả thu được sẽ được so sánh với kết quả mong đợi Từ đó quyết định hành động tiếp theo như sửa đổi mô hình hoặc dừng kiểm thử, v.v

Kết luận: Pass / Fail

Phản hồi

Ngày đăng: 17/12/2017, 17:09

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w