MỘT-CÁCH-TIẾP-CẬN-TRONG-GIẢI-QUYẾT-BÀI-TOÁN-TỰ-ĐỘNG-HÓA-SINH-DỮ-LIỆU-KIỂM-THỬ-PHẦN-MỀM

7 4 0
MỘT-CÁCH-TIẾP-CẬN-TRONG-GIẢI-QUYẾT-BÀI-TOÁN-TỰ-ĐỘNG-HÓA-SINH-DỮ-LIỆU-KIỂM-THỬ-PHẦN-MỀM

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

Thông tin tài liệu

Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] CHÀO MỪNG NGÀY THÀNH LẬP TRƯỜNG 01/4/2018 MỘT CÁCH TIẾP CẬN TRONG GIẢI QUYẾT BÀI TOÁN TỰ ĐỘNG HÓA SINH DỮ LIỆU KIỂM THỬ PHẦN MỀM AN APPROACH TO AUTOMATED[.]

Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] CHÀO MỪNG NGÀY THÀNH LẬP TRƯỜNG 01/4/2018 MỘT CÁCH TIẾP CẬN TRONG GIẢI QUYẾT BÀI TỐN TỰ ĐỘNG HĨA SINH DỮ LIỆU KIỂM THỬ PHẦN MỀM AN APPROACH TO AUTOMATED TEST DATA GENERATION PHẠM ĐỨC TOÀN1, PHAN NGUYÊN HẢI2, PHẠM THỊ PHƯƠNG ANH3 Phịng Tổ chức - Hành chính, Trường ĐHHH Việt Nam Học viện Kỹ thuật Quân Viện Khoa học Công nghệ Quân Tóm tắt Bài báo nghiên cứu lĩnh vực tự động hóa quy trình phát triển phần mềm, tốn sinh liệu kiểm thử tự động, hướng giải khó khăn Đề xuất cách tiếp cận biểu diễn thuật toán dựa khái niệm đồ thị, ứng dụng vào giải toán sinh liệu kiểm thử tự động Từ khóa: Tự động hóa phát triển phần mềm, sinh liệu kiểm thử, biểu diễn thuật toán Abstract In this paper, the automated software development issue and test data generation problem are presented with solutions and challenges Approach to represent algorithms based on graph concepts is proposed and applied to solving the problem of automated test data generation Keywords: Automated software development, test data generation, expressing algorithms Bài tốn tự động hóa phát triển phần mềm tự động hóa kiểm thử phần mềm Quy trình phát triển phần mềm thông thường gồm giai đoạn: Xác định yêu cầu, thiết kế, lập trình, kiểm thử, tích hợp triển khai Tùy thuộc vào dự án cụ thể mà giai đoạn lặp lại Hiện lĩnh vực tự động hóa phát triển phần mềm, tốn quan tâm sinh mã nguồn tự động sinh liệu kiểm thử tự động Với toán sinh mã nguồn tự động, đầu vào thiết kế, đầu biểu diễn thiết kế cú pháp ngơn ngữ lập trình (nói cách khác mã nguồn) Với tốn sinh liệu kiểm thử (test data generation), đầu vào đặc tả (yêu cầu, thiết kế), mã nguồn, đầu liệu đầu vào phần mềm mà cần kiểm thử Khi có đầu vào cần kiểm thử, xác định đầu chuẩn phần mềm đầu vào theo mô tả phần mềm (test oracle), cặp giá trị đầu vào đầu chuẩn hình thành lên trường hợp kiểm thử (testcase) để người kiểm thử (tester) thực kiểm thử Việc kiểm thử thơng thường có nhiều cấp độ, Unit Testing để kiểm thử đơn vị mã nguồn, Integration Testting để kiểm thử việc tích hợp đơn vị mã nguồn, System Testing Acceptance Testing để kiểm thử toàn hệ thống phần mềm (Hình 1) Việc sinh liệu tự động thường áp dụng cho mức Unit Testing cách tiếp cận truyền thống toán sinh liệu kiểm thử dựa vào mã nguồn (kiểm thử hộp trắng - whitebox testing) Trong khuôn khổ báo này, tác giả tập trung vào toán tự động hóa sinh liệu kiểm thử mức Unit Testing Acceptance Testing (Kiểm thử chấp nhận) System Testing (Kiểm thử hệ thống) Integration Testing (Kiểm thử tích hợp) Unit Testing (Kiểm thử đơn vị) Hình Các mức độ kiểm thử Với toán sinh liệu kiểm thử với phương pháp hộp trắng, cách thực gồm bước sau [1]: - Xây dựng đồ thị chu trình từ mã nguồn (control flow graph - CFG), đỉnh đồ thị dòng mã thực việc tính tốn xử lý điều kiện; - Từ đồ thị xác định đường từ điểm bắt đầu đến điểm kết thúc chương trình; Hỗ trợ ơn tập 64 [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Tạp chí Khoa học Cơng nghệ Hàng hải Số 54 - 4/2018 Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] CHÀO MỪNG NGÀY THÀNH LẬP TRƯỜNG 01/4/2018 - Với đường đi, xác định điều kiện đầu vào để chương trình thực thi theo đường Chọn đại diện thỏa mãn điều kiện Với phương pháp này, chương trình có đường thực thi có nhiêu testcase Tuy nhiên, chương trình có rẽ nhánh, vịng lặp số lượng đường thực thi lớn Trong trường hợp này, cần tìm đường sở từ đường sở xác định liệu kiểm thử Trong ba bước nêu trên, việc xây dựng đồ thị CFG từ mã nguồn việc xác định đường đồ thị hồn tồn thực tự động lập chương trình Tuy nhiên bước xác định điều kiện đầu vào để chương trình thực thi theo đường định toán khó Đây thực chất tốn giải thỏa mãn ràng buộc (Constraint satisfaction problems - CSPs) [2, 3, 4] Bài toán CSP đặc trưng ba (X, D, C), với: X = {X1, X2, …, Xn} tập hợp biến; D = {D1, D2, …, Dn} tương ứng tập hợp miền giá trị biến X; C = {C1, C2, …, Cm} tập hợp ràng buộc Ci hàm X, thường có dạng bất phương trình Bài tốn địi hỏi cần tìm giá trị X miền D để thỏa mãn ràng buộc C Đây toán thuộc lớp NP-đầy đủ (NP-complete), tốn khơng có lời giải trường hợp chung Để giải toán phục vụ cho mục đích sinh liệu kiểm thử tự động, có cộng đồng nghiên cứu đông đảo với nhiều đề xuất tiếp cận quay lui (backtracking), lan truyền ràng buộc (contraint propagation), tìm kiếm cục (local search), giải thuật di truyền, tiến hóa [5, 6], Tuy nhiên đề xuất thích hợp cho lớp toán định, kết sinh liệu kiểm thử phụ thuộc vào nhiều tham số, thời gian chạy lâu, thường khơng có bảo đảm mặt tốn học Ngun nhân chung kết luận q thơng tin thu từ mã nguồn chương trình xây dựng đồ thị CFG ràng buộc, dẫn đến trình tìm kiếm lời giải cho tốn CSP gặp khó khăn Xuất phát từ thực tế này, báo đề xuất cách tiếp cận cho việc sinh liệu kiểm thử dễ dàng Để tiếp tục, trước hết xem xét giai đoạn thiết kế phần mềm quy trình phát triển phần mềm Giai đoạn thiết kế phần mềm gồm bước mơ tả Hình [7] Hình Các bước giai thoạn thiết kế phần mềm Trong sơ đồ Hình 2, hoạt động thiết kế cốt lõi thiết kế thuật toán (algorithm design) Trong phương pháp thiết kế hướng cấu trúc, thiết kế thuật toán thể qua việc thiết kế thuật toán cho hàm (chức năng) sở Trong phương pháp hướng đối tượng, thiết kế thuật toán thể qua thiết kế thuật toán cho phương thức lớp Bài toán sinh mã nguồn tự động quy sinh mã nguồn tự động từ thuật tốn, từ suy tốn sinh liệu kiểm thử tự động quy toán sinh mã nguồn tự động từ thuật tốn (thực chất, mã nguồn chương trình việc biểu diễn thuật tốn cú pháp ngơn ngữ lập trình đó) Vấn đề cần quan tâm đến, xem xét việc biểu diễn thuật toán thiết kế Vấn đề biểu diễn thuật toán Trong lý thuyết thuật toán, thuật tốn biểu diễn cách truyền thống ngôn ngữ tự nhiên, sơ đồ khối, giả mã (pseudo code), Với cách biểu diễn có người Tạp chí Khoa học Cơng nghệ Hàng hải Số 54 - 4/2018 65 Hỗ trợ ôn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] CHÀO MỪNG NGÀY THÀNH LẬP TRƯỜNG 01/4/2018 hiểu thuật toán, việc xây dựng chương trình, xác định liệu kiểm thử phải người thực Nói cách khác với cách biểu diễn thuật tốn truyền thống việc tự động sinh mã nguồn, tự động sinh liệu kiểm thử máy tính thực Để tự động sinh mã nguồn, tự động sinh liệu kiểm thử cần phải biểu diễn thuật toán theo cách để máy tính hiểu Hiện nay, cách tiếp cận biểu diễn thiết kế dùng ngơn ngữ XML [8] Để đưa thiết kế (thuật tốn) vào máy tính, thiết kế chuyển từ dạng biểu diễn truyền thống sang biểu diễn XML, với biểu diễn XML xây dựng phương pháp sinh mã nguồn sinh liệu kiểm thử tự động Tuy nhiên, XML ngôn ngữ mạnh mẽ, đa dạng nên việc đưa quy tắc chung việc chuyển đổi từ cách biểu diễn truyền thống sang XML chưa có thống Trong báo này, tác giả đề xuất sử dụng khái niệm đồ thị để biểu diễn thuật toán Việc biểu diễn thuật tốn đồ thị hồn tồn khả thi, thực chất sơ đồ khối coi dạng biểu diễn trực quan đồ thị Ngoài ra, với đồ thị có nhiều lý thuyết xây dựng việc biểu diễn, lưu trữ xử lý máy tính, nên hồn tồn có hy vọng khả trích rút thơng tin cần thiết từ thuật toán để phục vụ cho toán sinh tự động mã nguồn hay liệu kiểm thử từ thuật toán Ý tưởng biểu diễn thuật toán đồ thị Tuy nhiên, giống XML, chuyển đổi từ biểu diễn truyền thống sang biểu diễn đồ thị có nhiều cách khác Cách tiếp cận dựa đồ thị Trong phạm vi báo, xem xét toán sinh liệu kiểm thử biểu diễn đồ thị thuật toán Với lý thuyết kiểm thử phải cần đến biểu diễn chương trình đồ thị CFG, đồ thị CFG thực chất biểu diễn thuật tốn Vì vậy, việc dùng đồ thị thuật toán để sinh liệu kiểm thử hoàn toàn khả thi, biểu diễn thuật tốn đồ thị giai đoạn thiết kế nhận nhiều thông tin cho việc sinh liệu kiểm thử Việc xây dựng đồ thị thuật tốn người thiết kế thực hiện, tiến hành theo hai bước, bước xây dựng sơ đồ khối thuật toán, bước hai chuyển sơ đồ khối dạng biểu diễn đồ thị Về cấu trúc tổng qt, thuật tốn biểu diễn đồ thị có hướng G, đỉnh đồ thị phép tốn khối rẽ nhánh Với đỉnh phép toán, qua đỉnh này, coi liệu đầu vào đưa qua hàm biến đổi Với đỉnh rẽ nhánh, qua, liệu đầu vào không bị biến đổi, kiểm tra hàm mệnh đề Tùy thuộc vào hàm mệnh đề mà rẽ nhánh nhánh Và xác định thuật toán, kèm với đỉnh thông tin liệu vào đỉnh đó, thơng tin phép tốn, biểu thức điều kiện khối rẽ nhánh Những thông tin người thiết kế hồn tồn cung cấp Một số ví dụ thơng tin: - Miền liệu vào/ra đỉnh; - Phân loại hàm xử lý, hàm mệnh đề (liên tục, rời rạc, tuyến tính, phi tuyến, biến chính, biến phụ thuộc; - Ví dụ giá trị thỏa mãn hàm mệnh đề đỉnh; - Khả tuyến tính hóa, đơn giản hóa hàm xử lý, hàm mệnh đề, hàm ngược hàm xử lý, Những thông tin này, trường hợp giúp việc giải tốn thỏa mãn ràng buộc sinh liệu kiểm thử dễ dàng Một cách ngắn gọn, cách tiếp cận dựa đồ thị thuật toán khác với cách tiếp cận truyền thống sau:    - Cách truyền thống: Thiết kế (thuật toán) Mã nguồn Đồ thị Sinh liệu kiểm thử   - Cách đề xuất: Thiết kế (thuật tốn) Đồ thị + Thơng tin Sinh liệu kiểm thử sinh mã nguồn Sinh liệu kiểm thử tự động với biểu diễn dạng đồ thị thuật toán Chúng ta vận dụng ý tưởng phương pháp hộp trắng để xác định liệu kiểm thử Khi thuật toán biểu diễn đồ thị việc tự động xác định đường từ điểm bắt đầu đến điểm kết thúc toán kinh điển lý thuyết đồ thị giải trọn vẹn trường hợp đồ thị có chu trình (vịng lặp) Nghĩa việc tìm đường chương trình máy tính hồn tồn khả thi Tiếp theo với đường tìm được, cần tự động tìm liệu đầu vào thuật toán để thuật toán thực thi theo đường Ở đây, xem xét ví dụ trường hợp, giả sử thơng Hỗ trợ ơn tập 66 [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] Tạp chí Khoa học Cơng nghệ Hàng hải Số 54 - 4/2018 Hỗ trợ ơn tập [ĐỀ CƯƠNG CHƯƠNG TRÌNH ĐẠI HỌC] CHÀO MỪNG NGÀY THÀNH LẬP TRƯỜNG 01/4/2018 tin kèm đỉnh đồ thị cho biết hàm xử lý, hàm mệnh đề hàm tuyến tính liệu đầu vào chương trình có dạng số Ký hiệu: Đường tìm đồ thị gồm hàm xử lý X = Fi(X) hàm mệnh đề Gj(X)>0 Khi việc tìm điều kiện đầu vào X để chương trình theo đường trở thành việc giải hệ bất phương trình tuyến tính: Các giá trị đầu vào chương trình X = {X1, X2, , Xn} ∈ Rn; ……… … = ( ) (1) ……… … ( )> {……….… Ở thứ tự hàm xử lý, hàm mệnh đề hệ bất phương trình trùng với thứ tự đỉnh tương ứng đường đồ thị Hệ bất phương trình giải tự động được, thuật tốn giải gồm bước sau: Bước Chuyển hệ dạng hệ phương trình (2): ……… … = ( ) … … … … , ( )= {……….… aj số lớn Bước Tìm hạng r ma trận biểu diễn hệ phương trình (2) (2) Bước Cố định n-r biến (cho giá trị cụ thể), giải hệ r phương trình để tìm r biến lại Nghĩa là, trường hợp hồn tồn tự động xác định liệu đầu vào để chương trình thực thi theo đường Xét ví dụ sinh liệu kiểm thử từ thuật toán đơn giản, thuật toán tìm giá trị lớn số thực a, b, c Thuật tốn sau: Bước Đặt max = a; Bước So sánh max < b Nếu đúng, gán max = b Bước So sánh max < c Nếu đúng, gán max = c Đưa max Kết thúc Đồ thị biểu diễn thuật tốn có dạng Hình Với đồ thị Hình 3, có đường thực thi từ đỉnh bắt đầu (1 Bắt đầu) đến đỉnh kết thúc (8 Kết thúc) sau:            max = a Đúng max

Ngày đăng: 30/04/2022, 06:07

Hình ảnh liên quan

Hình 1. Các mức độ kiểm thử - MỘT-CÁCH-TIẾP-CẬN-TRONG-GIẢI-QUYẾT-BÀI-TOÁN-TỰ-ĐỘNG-HÓA-SINH-DỮ-LIỆU-KIỂM-THỬ-PHẦN-MỀM

Hình 1..

Các mức độ kiểm thử Xem tại trang 1 của tài liệu.
Hình 2. Các bước của giai thoạn thiết kế phần mềm - MỘT-CÁCH-TIẾP-CẬN-TRONG-GIẢI-QUYẾT-BÀI-TOÁN-TỰ-ĐỘNG-HÓA-SINH-DỮ-LIỆU-KIỂM-THỬ-PHẦN-MỀM

Hình 2..

Các bước của giai thoạn thiết kế phần mềm Xem tại trang 3 của tài liệu.
Đồ thị biểu diễn thuật toán có dạng như trên Hình - MỘT-CÁCH-TIẾP-CẬN-TRONG-GIẢI-QUYẾT-BÀI-TOÁN-TỰ-ĐỘNG-HÓA-SINH-DỮ-LIỆU-KIỂM-THỬ-PHẦN-MỀM

th.

ị biểu diễn thuật toán có dạng như trên Hình Xem tại trang 6 của tài liệu.