Phương Pháp Kiểm Thử Tự Động Dựa Trên UML 2.0

Trường đại học

Đại học Quốc gia Hà Nội

Chuyên ngành

Hệ thống thông tin

Người đăng

Ẩn danh

Thể loại

luận văn

2015

108
0
0

Phí lưu trữ

30.000 VNĐ

Tóm tắt

I. Tổng Quan Phương Pháp Kiểm Thử Tự Động Dựa Trên UML 2

Kiểm thử là giai đoạn quan trọng trong phát triển phần mềm. Quá trình kiểm thử gồm sinh kiểm thử và thực thi kiểm thử. Sinh các ca kiểm thử quyết định chất lượng kiểm thử. Đây là bước khó khăn, đặc biệt với hệ thống lớn, phức tạp. Quá trình này tốn thời gian, công sức và chi phí, chiếm 40-60% tổng chi phí phát triển phần mềm. Vì vậy, sinh ca kiểm thử tự động là cần thiết, nhất là với phần mềm lớn. Kiểm thử tự động được xem là giải pháp đảm bảo chất lượng, giảm chi phí và thời gian. Trong đó, kiểm thử dựa trên mô hình là kỹ thuật được sử dụng rộng rãi. Tuy nhiên, để áp dụng phương pháp này, cần mô hình toán học đặc tả chính xác hành vi hệ thống. Các mô hình này thường được biểu diễn bằng máy hữu hạn trạng thái đơn định. Xây dựng mô hình cho phần mềm là công việc khó khăn và tiềm ẩn nhiều lỗi. Thay vào đó, phân tích và xây dựng biểu đồ tuần tự UML là công việc dễ dàng và phổ biến hơn. Do đó, kiểm thử tính đúng đắn cho thiết kế dựa trên mô hình là vấn đề mở và chưa có lời giải thỏa đáng.

1.1. Khái Niệm Cơ Bản về Kiểm Thử Dựa Trên Mô Hình

Trong kiểm thử tự động phần mềm, kiểm thử viên tạo ra các kịch bản kiểm thử bằng cách ghi lại tính năng của phần mềm. Sau đó, kiểm thử viên tiến hành kiểm thử theo kịch bản đã tạo với các tham số khác nhau. Tuy nhiên, việc tạo kịch bản kiểm thử lại được tiến hành thủ công. Hầu hết các công cụ kiểm thử ngày nay đều kiểm thử tự động dựa trên các kịch bản có sẵn, do đó việc tạo kịch bản tốn nhiều công sức của kiểm thử viên và mất rất nhiều thời gian. Để tránh việc sai sót trong quá trình kiểm thử, việc tạo kịch bản phải được xây dựng chu đáo. Thêm vào đó, mỗi khi yêu cầu từ phía người dùng thay đổi thì kịch bản cũng phải thay đổi theo. Vì vậy, việc tạo tự động các kịch bản kiểm thử là thật sự cần thiết.

1.2. Ưu Điểm của Kiểm Thử Tự Động Dựa Trên Mô Hình UML

Hướng tiếp cận ở đây là kiểm thử dựa trên mô hình nhằm khắc phục được các vấn đề về chi phí, thời gian. Kiểm thử dựa trên mô hình là phương pháp kiểm thử nơi mà các ca kiểm thử được sinh ra từ mô hình đặc tả hành vi của hệ thống đang được kiểm thử. Mô hình này được biểu diễn bằng máy hữu hạn trạng thái, ô tô mát, đặc tả đại số, biểu đồ trạng thái bằng UML, v.v.

II. Thách Thức và Giải Pháp trong Kiểm Thử UML 2

Quá trình kiểm thử tự động dựa trên mô hình bắt đầu bằng việc xác định yêu cầu của hệ thống, từ đó xây dựng mô hình dựa vào các yêu cầu và chức năng của hệ thống. 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. Các ca kiểm thử đó được tiến hành chạy và 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.

2.1. Các Phương Pháp Sinh Mô Hình Kiểm Thử Phần Mềm

Hiện nay, có nhiều hướng nghiên cứu liên quan đến việc sinh mô hình cho phần mềm đã được đề xuất bởi nhiều tác giả. Một hướng là tập trung vào nghiên cứu các phương pháp sinh mô hình cho phần mềm. Với cách tiếp cận này, ta có thể kể đến các phương pháp sinh mô hình được đề cập trong [19], [20], [21], và [22]. Trong [19], các tác giả đã đặt ngữ cảnh là xây dựng mô hình cho phần mềm được cho dưới dạng một hộp đen và ta có thể thử nghiệm thực thi các hành động trên nó để có thể xây dựng được một tập các chuỗi hành động của phần mềm. Sau đó, tập các chuỗi hành động của phần mềm thu được có thể được coi là một biểu thức chính quy đặc tả hành vi của phần mềm, các tác giả sau đó đã sử dụng thuật toán Thompson để sinh mô hình cho phần mềm được cho bởi biểu thức chính quy đó. Phương pháp này bị giới hạn bởi độ dài tối đa của chuỗi các hành động có thể thử nghiệm trên phần mềm.

2.2. Hạn Chế của Các Phương Pháp Kiểm Thử Truyền Thống

Nghiên cứu trong [20] trình bày một thuật toán gọi là GK-tail mà tự động sinh mô hình cho phần mềm dưới dạng các EFSM (Extended Finite State Machine) từ các chuỗi tương tác của nó. EFSM mô hình hóa sự tương tác giữa các giá trị dữ liệu và phần mềm bằng cách ghi chú lên các cạnh của ô tô mát hữu hạn đó với các điều kiện trên các giá trị dữ liệu. Trong nghiên cứu này, các tác giả đã đề cập một khía cạnh rất quan trọng của phần mềm. Đó là mô hình hóa các lời gọi hàm trong quan hệ với các tham số của. Phương pháp này dựa vào một phần mềm gọi là phần mềm giám sát để có thể sinh ra được các chuỗi tương tác mà được dùng như là đầu vào của nó.

III. Phương Pháp Sinh Đồ Thị Dòng Điều Khiển Từ UML 2

Luận văn này tập trung vào việc chỉ sinh mô hình cho thành phần phần mềm. Bằng cách này, chúng ta tập trung vào việc có được mô hình bằng một cách thực tế hơn như từ biểu đồ tuần tự [23]. Những mô hình này sau đó có thể được dùng như là đầu vào cho các phương pháp khác như kiểm chứng mô hình, kiểm thử dựa trên mô hình. Để giải quyết vấn đề trên, trong luận văn này, tôi nghiên cứu về phương pháp nhằm xây dựng một công cụ hỗ trợ phân tích biểu đồ dòng điều khiển dựa trên biểu đồ tuần tự UML 2.0 và ứng dụng để sinh bộ kiểm thử.

3.1. Chuyển Đổi Biểu Đồ Tuần Tự Sang Đường Kiểm Thử

Phương pháp nghiên cứu gồm hai quá trình chính là chuyển đổi biểu đồ tuần tự về đồ thị dòng điều khiển và từ đồ thị dòng điều khiển sinh bộ kiểm thử. Biểu đồ tuần tự được cung cấp dưới dạng tệp xml sẽ được phân tích để cho ra một đường kiểm thử tương ứng đặc tả hoạt động. Qua quá trình phân tích, dữ liệu từ tệp xml được chuyển đổi thành cấu trúc dữ liệu biểu đồ tuần tự tương ứng. Ứng với mỗi khối trong biểu đồ tuần tự, tiến hành bóc, tách từng khối và dựa vào quan hệ giữa các khối để lồng các khối nhằm sinh ra đồ thị dòng điều khiển.

3.2. Định Dạng Chuẩn Khi Viết Tệp XML Từ Biểu Đồ UML

Kế tiếp, một đường kiểm thử tương ứng được trả về đặc tả chính xác hoạt động của đồ thị dòng điều khiển. Kỹ thuật được sử dụng để xây dựng hệ ràng buộc tương ứng cho tập đường kiểm thử ở đây là thực thi tượng trưng (symbolic execution - SE). Cuối cùng, bằng cách kết hợp kỹ thuật sinh ngẫu nhiên và tận dụng thế mạnh các công cụ giải các hệ ràng buộc (SMT-Solver), hệ ràng buộc được giải để sinh ca kiểm thử. Bộ kiểm thử này sẽ được sử dụng để kiểm tra xem việc lập trình có đúng với thiết kế hay không.

IV. Sinh Bộ Kiểm Thử Tự Động Từ Đồ Thị Dòng Điều Khiển

Phương pháp sinh đồ thị dòng điều khiển từ biểu đồ tuần tự bao gồm tổng quan về đồ thị dòng điều khiển, cách đặc tả biểu đồ tuần tự, phương pháp sinh đồ thị dòng điều khiển được trình bày trong chương 3. Chương 4 trình bày về phương pháp sinh ca kiểm thử từ đồ thị dòng điều khiển bao gồm bước xây dựng hệ ràng buộc và bước tìm nghiệm thỏa mãn hệ ràng buộc dựa trên SMT - Solver.

4.1. Tìm Nghiệm Thỏa Mãn Hệ Ràng Buộc trong Kiểm Thử

Kỹ thuật được sử dụng để xây dựng hệ ràng buộc tương ứng cho tập đường kiểm thử ở đây là thực thi tượng trưng (symbolic execution - SE). Cuối cùng, bằng cách kết hợp kỹ thuật sinh ngẫu nhiên và tận dụng thế mạnh các công cụ giải các hệ ràng buộc (SMT-Solver), hệ ràng buộc được giải để sinh ca kiểm thử. Bộ kiểm thử này sẽ được sử dụng để kiểm tra xem việc lập trình có đúng với thiết kế hay không.

4.2. Giải Hệ Sử Dụng Kỹ Thuật Sinh Ngẫu Nhiên

Một hướng tiếp cận khác là sinh mô hình trong khi thực hiện kiểm chứng mô hình hay trong khi thực hiện kiểm thử dựa trên mô hình [23], [24], và [25]. Trong [23], các tác giả đã sử dụng thuật toán học L* để học đặc tả của một thành phần phần mềm thông qua một biểu thức chính quy để sinh ra mô hình cho thành phần đó. Biểu thức chính quy đó là kết quả của khâu thiết, có thể được sinh ra từ từ biểu đồ tuần tự theo phương pháp được đề cập trong [23]. Tuy phương pháp này sinh được mô hình cho phần mềm, nhưng sử dụng nhiều thời gian và bộ nhớ. Đặc biệt là phương pháp này bị giới hạn bởi độ dài tối đa của một chuỗi hành vi của phần mềm.

4.3. Giải Hệ Sử Dụng SMT Solver trong Kiểm Thử UML

Nghiên cứu [24] đặt vấn đề cho việc kiểm thử hộp đen. Trong nghiên cứu này, nhiều chiến lược được trình bày để kiểm chứng phần mềm từ khi chúng ta chưa có mô hình. Mô hình được sinh ra trong các lần lặp kiểm chứng phần mềm. Nghiên cứu [25] trình bày một phương pháp sinh mô hình thành phần phần mềm trong quá trình thành phần đó tiến hóa. Những mô hình được sinh ra sử dụng các mô hình chưa đúng hiện có dựa vào các kỹ thuật kiểm thử hộp đen và học máy. Tuy nhiên, phương pháp này sinh mô hình cho toàn bộ phần mềm. Với những phần mềm lớn thì phương pháp này có thể dẫn đến sự bùng nổ trạng thái của mô hình.

V. Ứng Dụng Thực Tiễn và Kết Quả Nghiên Cứu Kiểm Thử UML

Với cách tiếp cận này, những mô hình được sinh ra như là một phần của quá trình khác như kiểm thử hộp đen, kiểm chứng mô hình. Luận văn này tập trung vào việc chỉ sinh mô hình cho thành phần phần mềm. Bằng cách này, chúng ta tập trung vào việc có được mô hình bằng một cách thực tế hơn như từ biểu đồ tuần tự [23]. Những mô hình này sau đó có thể được dùng như là đầu vào cho các phương pháp khác như kiểm chứng mô hình, kiểm thử dựa trên mô hình.

5.1. Công Cụ Hỗ Trợ Kiểm Thử Tự Động UML 2.0

Để giải quyết vấn đề trên, trong luận văn này, tôi nghiên cứu về phương pháp nhằm xây dựng một công cụ hỗ trợ phân tích biểu đồ dòng điều khiển dựa trên biểu đồ tuần tự UML 2.0 và ứng dụng để sinh bộ kiểm thử. Phương pháp nghiên cứu gồm hai quá trình chính là chuyển đổi biểu đồ tuần tự về đồ thị dòng điều khiển và từ đồ thị dòng điều khiển sinh bộ kiểm thử.

5.2. Đánh Giá Hiệu Quả của Phương Pháp Kiểm Thử Mới

Biểu đồ tuần tự được cung cấp dưới dạng tệp xml sẽ được phân tích để cho ra một đường kiểm thử tương ứng đặc tả hoạt động. Qua quá trình phân tích, dữ liệu từ tệp xml được chuyển đổi thành cấu trúc dữ liệu biểu đồ tuần tự tương ứng. Ứng với mỗi khối trong biểu đồ tuần tự, tiến hành bóc, tách từng khối và dựa vào quan hệ giữa các khối để lồng các khối nhằm sinh ra đồ thị dòng điều khiển.

VI. Kết Luận và Hướng Phát Triển Kiểm Thử Tự Động UML

Kế tiếp, một đường kiểm thử tương ứng được trả về đặc tả chính xác hoạt động của đồ thị dòng điều khiển. Kỹ thuật được sử dụng để xây dựng hệ ràng buộc tương ứng cho tập đường kiểm thử ở đây là thực thi tượng trưng (symbolic execution - SE). Cuối cùng, bằng cách kết hợp kỹ thuật sinh ngẫu nhiên và tận dụng thế mạnh các công cụ giải các hệ ràng buộc (SMT-Solver), hệ ràng buộc được giải để sinh ca kiểm thử. Bộ kiểm thử này sẽ được sử dụng để kiểm tra xem việc lập trình có đúng với thiết kế hay không.

6.1. Tóm Tắt Các Kết Quả Nghiên Cứu Chính

Phương pháp sinh đồ thị dòng điều khiển từ biểu đồ tuần tự bao gồm tổng quan về đồ thị dòng điều khiển, cách đặc tả biểu đồ tuần tự, phương pháp sinh đồ thị dòng điều khiển được trình bày trong chương 3. Chương 4 trình bày về phương pháp sinh ca kiểm thử từ đồ thị dòng điều khiển bao gồm bước xây dựng hệ ràng buộc và bước tìm nghiệm thỏa mãn hệ ràng buộc dựa trên SMT - Solver.

6.2. Các Hạn Chế và Hướng Nghiên Cứu Tương Lai

Luận văn này tập trung vào việc chỉ sinh mô hình cho thành phần phần mềm. Bằng cách này, chúng ta tập trung vào việc có được mô hình bằng một cách thực tế hơn như từ biểu đồ tuần tự [23]. Những mô hình này sau đó có thể được dùng như là đầu vào cho các phương pháp khác như kiểm chứng mô hình, kiểm thử dựa trên mô hình.

05/06/2025
Luận văn phương pháp sinh bộ kiểm thử từ biểu đồ tuần tự uml 2 0 và ứng dụng cho kiểm thử phần mềm
Bạn đang xem trước tài liệu : Luận văn phương pháp sinh bộ kiểm thử từ biểu đồ tuần tự uml 2 0 và ứng dụng cho kiểm thử phần mềm

Để xem tài liệu hoàn chỉnh bạn click vào nút

Tải xuống

Tài liệu "Phương Pháp Kiểm Thử Tự Động Dựa Trên UML 2.0" cung cấp cái nhìn sâu sắc về cách thức áp dụng phương pháp kiểm thử tự động trong phát triển phần mềm, đặc biệt là thông qua ngôn ngữ mô hình hóa UML 2.0. Tài liệu này nêu bật các kỹ thuật và quy trình cần thiết để tối ưu hóa việc kiểm thử, giúp giảm thiểu lỗi và nâng cao chất lượng sản phẩm. Độc giả sẽ tìm thấy những lợi ích rõ ràng từ việc áp dụng phương pháp này, bao gồm tiết kiệm thời gian, tăng cường độ chính xác và khả năng tái sử dụng các mô hình kiểm thử.

Để mở rộng thêm kiến thức về lĩnh vực này, bạn có thể tham khảo tài liệu Luận văn thạc sĩ nghiên cứu một số phương pháp sinh đầu vào kiểm thử tự động cho android luận văn ths máy tính 604801, nơi trình bày các phương pháp sinh đầu vào cho kiểm thử tự động trên nền tảng Android. Ngoài ra, tài liệu Luận văn thạc sĩ khoa học máy tính kiểm tra ứng dụng trên điện thoại di động android bằng kiểm tra mô hình sẽ giúp bạn hiểu rõ hơn về việc kiểm tra ứng dụng di động thông qua mô hình hóa. Cuối cùng, tài liệu Nghiên cứu ứng dụng một số công cụ kiểm thử có ứng dụng trí tuệ nhân tạo sẽ mang đến cái nhìn mới về việc tích hợp trí tuệ nhân tạo trong quy trình kiểm thử phần mềm. Những tài liệu này sẽ là cơ hội tuyệt vời để bạn khám phá sâu hơn về các khía cạnh khác nhau của kiểm thử tự động và mô hình hóa.