Kiểm thử đột biến hướng mô hình

Một phần của tài liệu (LUẬN văn THẠC sĩ) kết hợp phương pháp kiểm chứng mô hình và các kỹ thuật kiểm thử phần mềm làm tăng độ tin cậy của hệ thống phần mềm (Trang 53 - 54)

Nếu chương trình thoả mãn được mô hình thì kết quả đánh giá ca kiểm thử là thoả mãn (Pass). Trong trường hợp chương trình không thoả mãn mô hình đã cho, tức là đã có lỗi xảy ra trong chương trình, thì kết quả trả về là không thoả mãn (Fail). Tuy nhiên, có một số trường hợp chương trình chúng ta bị không bắt được lỗi và kết quả trả về là thoả mãn. Các trường hợp này chúng ta có thể cải tiến mô hình để tăng chất lượng của ca kiểm thử.

Trong kiểm thử đột biến hướng mô hình, chúng ta biến đổi các mô hình một cách tự động và sau đó sinh ra ca kiểm thử trừu tượng để bao phủ được trường hợp đột biến này. Ở đây, giáo sư Bernhard K. Aichernig muốn nhấn mạnh rằng: nếu một lỗi tồn tại và lỗi này được thể hiện bằng một đột biến được sinh ra, thì sau đó ca kiểm thử sẽ phải tìm ra lỗi. Điều này đã được thể hiện rõ ràng trên hình 5.1 thông qua hai mũi tên thoả mãn: nếu chương trình không thoả mãn mô hình gốc, nhưng thoả mãn mô hình biến đổi thì việc thực thi các ca kiểm thử được sinh ra sẽ trả lại kết quả là không thoả mãn (fail). Ở đây, chúng ta giả sử là việc cài đặt này là đơn định, với các cài đặt không đơn định của chương trình thì chúng ta phải lặp lại việc kiểm thử một vài lần.

Kiểm thử đột biến thường được áp dụng trên các chương trình, các mã nguồn với ngôn ngữ Fortran, Ada, C, Java, SQL, C#, AOP và các đột biến trong đặc tả bằng Calculus Specification, Algebraic Specification, Network Protocol, FSM, State Chart, Web Service, Security Policy [12]. Theo [12], kiểm thử đột biến được hỗ trợ bởi các

công cụ tự động tạo ra các đột biến như là công cụ Proteum 1.4, MILU tạo ra các đột biến trong chương trình viết bằng ngôn ngữ C, công cụ MuJava tạo ra các đột biến trong chương trình viết bằng Java, SQLMutation tạo tự động các đột biến trong ngôn ngữ SQL và một số công cụ khác. Kiểm thử đột biến hướng mô hình thường được thực hiện khi hệ thống đã được mô hình hoá, bằng các ngôn ngữ mô hình hoá như UML, và biến đổi mô hình UML để tạo ra các mô hình biến thể. Việc mô hình hoá này được thực hiện trong giai đoạn thiết kế hệ thống. Cả hai cách trên đều áp dụng ở giai đoạn thiết kế hoặc xây dựng mã nguồn của hệ thống.

Luận văn đề nghị một cách kết hợp kiểm chứng mô hình và kỹ thuật kiểm thử đột biến đối với chương trình từ giai đoạn đặc tả hệ thống, thiết kế hệ thống ở mức cao, và mô hình hệ thống ở đây được xây dựng bằng ngôn ngữ Promela là ngôn ngữ mô hình hoá ở mức cao. Mô hình sẽ được kiểm tra trong giai đoạn sớm của quy trình phát triển phần mềm, làm tăng chất lượng của đặc tả chương trình, giảm giá thành và giảm ảnh hưởng của việc sửa lỗi đến các giai đoạn sau trong quy trình phát triển phần mềm. Các phản ví dụ được sinh ra sẽ được xem xét như các ca kiểm thử cho hệ thống sau khi đã có mã nguồn. Mô hình kết hợp được đề xuất trong hình 5.2.

Một phần của tài liệu (LUẬN văn THẠC sĩ) kết hợp phương pháp kiểm chứng mô hình và các kỹ thuật kiểm thử phần mềm làm tăng độ tin cậy của hệ thống phần mềm (Trang 53 - 54)

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

(79 trang)