Kiểm thử dựa trên mô hình

60 1.4K 5
Kiểm thử dựa trên mô hình

Đ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

Tài liệu tham khảo công nghệ thông tin Kiểm thử dựa trên mô hình

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆĐoàn Trung KiênKIỂM THỬ DỰA TRÊN HÌNHKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆĐoàn Trung KiênKIỂM THỬ DỰA TRÊN HÌNHKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: TS. Phạm Ngọc Hùng Cán bộ đồng hướng dẫn: ThS. Đặng Việt DũngHÀ NỘI - 2010 Kiểm thử dựa trên hình Đoàn Trung KiênLỜI CẢM ƠNLời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc tới TS. Phạm Ngọc Hùng và ThS. Đặng Việt Dũng, các thầy đã hướng dẫn em tận tình trong suốt năm học vừa qua.Em xin bày tỏ lòng biết ơn tới các thầy, cô giáo trong Khoa Công nghệ thông tin - Trường Đại học Công nghệ - ĐHQGHN. Các thầy cô đã dạy bảo, chỉ dẫn em và luôn tạo điều kiện tốt nhất cho em học tập trong suốt quá trình học đại học đặc biệt là trong thời gian làm khoá luận tốt nghiệp.Con xin chân thành cảm ơn Ông Bà, Cha Mẹ đã luôn động viên, ủng hộ vật chất lẫn tinh thần trong suốt thời gian qua.Tôi xin cảm ơn sự quan tâm, giúp đỡ và ủng hộ của anh chị, bạn bè, đặc biệt là các bạn sinh viên lớp K51CB trường Đại học Công nghệ trong quá trình thực hiện khóa luận.Mặc dù đã cố gắng hoàn thành khóa luận trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý Thầy Cô và các bạn.Hà Nội, ngày 05 tháng 05 năm 2008 Đoàn Trung Kiêni Kiểm thử dựa trên hình Đoàn Trung KiênTÓM TẮTQuá trình sinh các ca kiểm thử tự động dựa trên hình gồm các công đoạn chính: Xây dựng hình, nhúng mã C, áp dụng công cụ Spin để sinh các ca kiểm thử. Trong đó xây dựng hình là công đoạn đầu tiên, nhiệm vụ chính ở đây là từ tả các yêu cầu của hệ thống và chức năng xác định cùng với dữ liệu đầu vào và ra phải xây dựng được hình của hệ thống. Xây dựng hình có vai trò hết sức quan trọng, nếu việc xây dựng hình không chính xác thì các công đoạn về sau trong hệ thống kiểm thử dựa trên hình không thể chính xác được. Do tầm quan trọng đó của việc xây dựng hình, khóa luận này đề cập tới các lý thuyết cơ bản về xây dựng hình của hệ thống bằng ngôn ngữ hình promela.Trong khóa luận này tôi trình bày phương pháp nhúng mã nguồn C vào trong tả promela để lọc các trạng thái và sinh các ca kiểm thử một cách tự động bằng công cụ hỗ trợ kiểm thử Spin. Từ đó áp dụng các kỹ thuật trên vào bài toán cụ thể kitchen timer.ii Kiểm thử dựa trên hình Đoàn Trung KiênMỤC LỤCĐoàn Trung Kiên . 1 HÀ NỘI - 2010 1 Đoàn Trung Kiên i HÀ NỘI - 2010 . i LỜI CẢM ƠN .iTÓM TẮT .ii1.1 Đặt vấn đề 11.2 Nội dung nghiên cứu của khóa luận 11.3 Cấu trúc khóa luận 12.1 Khái niệm kiểm thử dựa trên hình 32.2 Các bước thực hiện .32.3 Thuận lợi và khó khăn của kiểm thử dựa trên hình 4Thuận lợi 4Khó khăn 5 Mặc dù có nhiều thuận lợi nhưng bên cạnh đó cũng có những trở ngại nhất định của kiểm thử dựa trên hình: 5Do phải xây dựng hình của hệ thống vì vậy người kiểm thử phần mềm phải yêu cầu là những người có khả năng phân tích và thiết kế hệ thống 5Trong kiểm thử dựa trên hình công việc quan trọng nhất là xây dựng hình. Người kiểm thử phải đầu tư đáng kể cả về thời gian, trí tuệ và tiền bạc cho việc xây dựng hình hệ thống 5Giống như các phương pháp kiểm thử khác, việc kiểm thử dựa trên hình chỉ phát hiện được lỗi của hệ thống mà không thể phát hiện được hệ thống còn lỗi hay không. 52.4 Máy hữu hạn trạng thái ( Finite State Machines ) 5 Trong kiểm thử phần mềm có nhiều kiểu hình được sử dụng như : Finite State Machines, UML, Grammars, . Trong nghiên cứu này trình bày về hình máy hữu hạn trạng thái: Finite State Machines .5 Một máy trạng thái tả cho hệ thống phần mềm được định nghĩa dựa vào ( I, S, T, F, L), trong do: .5 I : Tập hợp các yếu tố đầu vào của hệ thống .6iii Kiểm thử dựa trên hình Đoàn Trung Kiên S : Tập các trạng thái của hệ thống .6 T : Tập hợp hàm chuyển đổi trạng thái khi đầu vào là một trạng thái cụ thể .6 F : Tập hợp các trạng thái kết thúc 6 L : Trạng thái ban đầu của hệ thống 62.5 Bài toán Kitchen Timer .6 Chúng ta sẽ dựa vào các khái niệm của máy hữu hạn trạng thái để xây dựng hình hệ thống kitchen timer 62.5.1 Miêu tả bài toán .62.5.2 Xây dựng hình .63.1 Ngôn ngữ Promela 83.1.1 Khái niệm cơ bản .83.1.2 Biến và Kiểu 9 Giống như nhiều ngôn ngữ lập trình khác, Promela yêu cầu các biến phải được khai báo trước khi chúng có thể được sử dụng. Khai báo biến theo phong cách của ngôn ngữ lập trình C. Theo mặc định tất cả các biến của các loại biến cơ bản được bắt đầu từ 0. Cũng như trong C thì 0 được coi như sai và khác 0 được coi là đúng. Một biến có thể là biến toàn cục hoặc là biến địa phương của mỗi tiến trình 9Kiểu dữ liệu 9Type 9Domain 9bit or bool 9{ 0, 1} 9byte 90…255 9short 9-215 … 215 - 1 9int 9-231 … 231 – 1 9Kiểu khai báo .9Kiểu cấu trúc 9Kiểu mảng 10 Một mảng có cấu trúc như sau: 10int table[max] .10iv Kiểm thử dựa trên hình Đoàn Trung Kiên Lưu ý rằng điều này tạo ra một mảng max-1 số nguyên: .10 table[0], table[1], . table[max-1] 10Kiểu liệt kê .103.1.3 Định danh, Hằng số và Biểu thức .10Định danh .10 Định danh có thể là một chữ cái, một ký tự .10Hằng số 10 Hằng số là một chuỗi ký tự đại diện cho một số nguyên thập phân. Hằng số tượng trưng có thể được định nghĩa như sau: 10#define MAX 999 .10Biểu thức 103.1.4 Tiến trình .103.2 Công cụ Spin 113.2.1 Sơ lược về Spin .113.2.2 Công cụ XSpin 124.1 Phương pháp sinh các ca kiểm thử tự động .21 char tempLable[256] ="FIRST"; 21char tempInput[256] = ""; .21 char tempOutput[256] = ""; 21 Node tempNode = {"FIRST","",""}; 21 void setNode(char* cur_label, char* cur_input, char* cur_output) { 21strcpy(tempNode.label,cur_label); 22strcpy(tempNode.input, cur_input); 22strcpy(tempNode.output, cur_output); 22} 22void printNode(Node n) { .22 printf("Input: %s\n",n.input); .22 printf("Output: %s\n",n.output); 22 printf("STATE<%s>\n",n.label); .224.2 Ví dụ áp dụng .22 Áp dụng các phương pháp đã đề xuất ở được tìm hiểu trong khóa luận cho bài toán Kitchen Timer. Kitchen timer một thiết bị hẹn giờ đơn dùng trong các nhà v Kiểm thử dựa trên hình Đoàn Trung Kiênbếp. Đầu vào của thiết bị thông qua 2 nút bấm SW1 và SW2. Đầu ra là thông qua 2 đèn báo hiệu LED .2222Hình 11: Kiến trúc hệ thống kitchen timer 224.2.1 tả bài toán 23Khởi động kitchen timer .23Bật công tắc khởi động kitchen timer. Khi bạn bắt đầu chương trình cả hai đèn LED đã được chờ đợi ở chế độ tắt 23Thiết lập thời gian 23Thiết lập thời gian bằng công tắc 1. Thiết lập thời gian được hiển thị ở đèn LED ở dạng số nhị phân. Thời gian thiết lập là từ 1 tới 3 phút .23Bắt đầu tính giờ 23Bắt đầu đồng hồ đếm ngược bằng công tắc 2. Nếu đồng hồ bắt đầu đếm ngược thì đèn LED sẽ nháy 23Tạm dừng .23Nếu bấm công tắc 1 trong khi đang tính giờ, thì sẽ kết thúc việc tính giờ và cả 2 đèn LED sẽ tắt hoàn toàn 23Nếu bấm công tắc 2 thì đồng hồ đếm ngược tạm dừng và đèn LED cũng dừng. Bấm lại công tắc 2 lần nữa thì đồng hồ tiếp tục tính giờ và đèn LED tiếp tục nháy.23Hiển thị thời gian hết và báo động 234.2.2 Máy hữu hạn trạng thái của Kitchen Timer 23 Từ những thông số kỹ thuật được tả ở trên chúng ta xây dựng được hình máy trạng thái của Kitchen Timer như hình vẽ sau .2324Hình 12: hình máy hữu hạn trạng thái kitchen timer .24Bộ 24Yếu tố 24Ý nghĩa 24Nhãn 24NUMINPUT .24COUNTDOWN 24PAUSE 24vi [...]... bản kiểm thử • So sánh kết quả đầu ra thực tế với kết quả đầu ra dự kiến • Quyết định hành động tiếp theo (Sửa đổi hình, tạo thêm ca kiểm thử, dừng kiểm thử, đánh giá chất lượng của phần mềm ) Các bước thực hiện kiểm thử dựa trên hình được minh họa bằng sơ đồ sau: 3 Kiểm thử dựa trên hình Đoàn Trung Kiên Hình 1: Các bước thực hiện kiểm thử hình 2.3 Thuận lợi và khó khăn của kiểm thử dựa trên. .. kiểm thử hình Chương này sẽ lần lượt trình bày những khái niệm cơ bản về kiểm thử hình 2.1 Khái niệm kiểm thử dựa trên hình Theo Colin Campbell, kiểm thử dựa trên hình là một kỹ thuật kiểm thử mà các hoạt động của hệ thống được chạy thử trong một thời gian sẽ được dự đoán trước, nó được thực hiện bởi một đặc tả hình thức hoặc một hình của hệ thống Các mẫu thiết kế hay hình tả đơn... hình hệ thống kitchen timer bằng Promela, và quá trình sinh ca kiểm thử tự động Chương 5 tóm tắt các kết quả đã đạt được, kết luận, những hạn chế và hướng nghiên cứu phát triển trong tương lai 2 Kiểm thử dựa trên hình Đoàn Trung Kiên CHƯƠNG 2 CƠ SỞ LÝ THUYẾT CHO KIỂM THỬ HÌNH Quá trình thiết kế hình của hệ thống bằng ngôn ngữ hình Promela làm việc dựa trên các khái niệm về kiểm thử mô. .. thay đổi các ca kiểm thử là rất phức tạp nhưng nó được giải quyết khi mà kiểm thử dựa trên hình Việc thay đổi các ca kiểm thử chỉ việc thay đổi hình của hệ thống Có khả năng đánh giá chất lượng phần mềm •Khó khăn Mặc dù có nhiều thuận lợi nhưng bên cạnh đó cũng có những trở ngại nhất định của kiểm thử dựa trên hình:  Do phải xây dựng hình của hệ thống vì vậy người kiểm thử phần mềm phải... phải yêu cầu là những người có khả năng phân tích và thiết kế hệ thống  Trong kiểm thử dựa trên hình công việc quan trọng nhất là xây dựng hình Người kiểm thử phải đầu tư đáng kể cả về thời gian, trí tuệ và tiền bạc cho việc xây dựng hình hệ thống  Giống như các phương pháp kiểm thử khác, việc kiểm thử dựa trên hình chỉ phát hiện được lỗi của hệ thống mà không thể phát hiện được hệ thống... các ca kiểm thử Chúng ta có thể biết kết quả đầu ra mong đợi từ hình hoặc từ quy định chuẩn ( oracle ) Khi chạy kịch bản 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 hình hoặc dừng kiểm thử, … Các bước để thực hiện kiểm thử dựa trên hình: • Xây dựng hình dựa trên các yêu cầu và chức năng của hệ thống • Tạo đầu ra dự kiến từ tả... sang [Chờ] 6 Kiểm thử dựa trên hình Đoàn Trung Kiên F = [Chờ] L = [Chờ] hình chuyển đổi trạng thái Tạm dừng Tạm dừng Chờ Thiết lập Đếm ngược Thiết lập thời gian Đếm ngược Đếm ngược kết thúc Hình 2: hình chuyển đổi trạng thái của kitchen timer 7 Tiếp tục Kiểm thử dựa trên hình Đoàn Trung Kiên CHƯƠNG 3 GIỚI THIỆU PROMELA VÀ SPIN Chương này chúng ta sẽ biết cách sinh các ca kiểm thử một cách... viên không chỉ kiểm tra chức năng mới hoặc được sửa, mà phải kiểm tra lại tất cả những tính năng đã kiểm tra tốt trước đó Điều này khó khả thi về mặt thời gian nếu kiểm tra thông thường Để giải quyết vấn đề này chúng ta áp dụng kỹ thuật kiểm thử dựa trên hình cho quá trình sinh các ca kiểm thử tự động Do đó, khoá luận này tập trung trình bày về việc nghiên cứu kiểm thử dựa trên hình và ứng dụng... giản của hệ thống dựa trên yêu cầu hệ thống và chức năng xác định, giúp chúng ta có thể hiểu và dự đoán được hành vi của hệ thống 2.2 Các bước thực hiện Quá trình kiểm thử dựa trên hình được bắt đầu bằng việc xác định yêu cầu của hệ thống từ đó xây dựng 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 hình còn phải dựa trên các yếu tố dữ liệu đầu vào và đầu ra hình này được... việc xây dựng hình nhưng điều này sẽ được khấu trừ do chi phí bảo dưỡng thấp hơn nhiều khi hệ thống được hoạt động  Quá trình sinh ra các ca kiểm thử được thực hiện một cách tự động nên sinh ra nhiều ca kiểm thử và phát hiện nhiều lỗi  Người kiểm thử phần mềm cần thường xuyên trao đổi với người phát triển phần mềm trong khi xây dựng hình hệ thống vì vậy 4 Kiểm thử dựa trên hình      . Khái niệm kiểm thử dựa trên mô hình Theo Colin Campbell, kiểm thử dựa trên mô hình là một kỹ thuật kiểm thử mà các hoạt động của hệ thống được chạy thử trong. động tiếp theo như sửa đổi mô hình hoặc dừng kiểm thử, …Các bước để thực hiện kiểm thử dựa trên mô hình: • Xây dựng mô hình dựa trên các yêu cầu và chức năng

Ngày đăng: 23/11/2012, 15:03

Hình ảnh liên quan

KIỂM THỬ DỰA TRÊN MÔ HÌNH - Kiểm thử dựa trên mô hình
KIỂM THỬ DỰA TRÊN MÔ HÌNH Xem tại trang 1 của tài liệu.
KIỂM THỬ DỰA TRÊN MÔ HÌNH - Kiểm thử dựa trên mô hình
KIỂM THỬ DỰA TRÊN MÔ HÌNH Xem tại trang 3 của tài liệu.
Hình 1: Các bước thực hiện kiểm thử mô hình. 2.3 Thuận lợi và khó khăn của kiểm thử dựa trên mô hình - Kiểm thử dựa trên mô hình

Hình 1.

Các bước thực hiện kiểm thử mô hình. 2.3 Thuận lợi và khó khăn của kiểm thử dựa trên mô hình Xem tại trang 20 của tài liệu.
•Mô hình chuyển đổi trạng thái - Kiểm thử dựa trên mô hình

h.

ình chuyển đổi trạng thái Xem tại trang 23 của tài liệu.
Xây dựng mô hình hệ thống bằng ngôn ngữ Promela là một công đoạn quan trọng trong kiểm thử dựa trên mô hình, để từ đó có thể dùng công cụ Spin sinh ra các  ca kiểm thử - Kiểm thử dựa trên mô hình

y.

dựng mô hình hệ thống bằng ngôn ngữ Promela là một công đoạn quan trọng trong kiểm thử dựa trên mô hình, để từ đó có thể dùng công cụ Spin sinh ra các ca kiểm thử Xem tại trang 24 của tài liệu.
Hình 3: Màn hình cửa sổ chính của XSpin. •Run Syntax Check - Kiểm thử dựa trên mô hình

Hình 3.

Màn hình cửa sổ chính của XSpin. •Run Syntax Check Xem tại trang 29 của tài liệu.
Hình 4: Cửa sổ chức năng Run Slicing algorithm. •Run Slicing Algorithm - Kiểm thử dựa trên mô hình

Hình 4.

Cửa sổ chức năng Run Slicing algorithm. •Run Slicing Algorithm Xem tại trang 30 của tài liệu.
Hình 5: Cửa sổ chính chức năng Set Simulation Parameters. •Run Simulation - Kiểm thử dựa trên mô hình

Hình 5.

Cửa sổ chính chức năng Set Simulation Parameters. •Run Simulation Xem tại trang 31 của tài liệu.
Hình 6: Cửa sổ khi chạy chức năng Run Simulation. •Thiết lập thông số Verification - Kiểm thử dựa trên mô hình

Hình 6.

Cửa sổ khi chạy chức năng Run Simulation. •Thiết lập thông số Verification Xem tại trang 32 của tài liệu.
Hình 7: Cửa sổ chính chức năng Set Verification Parameters. •Run Verification - Kiểm thử dựa trên mô hình

Hình 7.

Cửa sổ chính chức năng Set Verification Parameters. •Run Verification Xem tại trang 33 của tài liệu.
Hình 8: Cửa sổ khi chạy chức năng Run Verification. •LTL Temporal Logic Formulae - Kiểm thử dựa trên mô hình

Hình 8.

Cửa sổ khi chạy chức năng Run Verification. •LTL Temporal Logic Formulae Xem tại trang 34 của tài liệu.
Hình 9: Của sổ khi chạy chức năng LTL Property Manager. - Kiểm thử dựa trên mô hình

Hình 9.

Của sổ khi chạy chức năng LTL Property Manager Xem tại trang 35 của tài liệu.
Hình 10: Của sổ khi chạy chức năng View Spin Automaton. - Kiểm thử dựa trên mô hình

Hình 10.

Của sổ khi chạy chức năng View Spin Automaton Xem tại trang 36 của tài liệu.
Sau khi thiết kế mô hình hệ thống bằng ngôn ngữ mô hình Promela, kết hợp nhúng mã C vào đặc tả promela và sử dụng công cụ hỗ trợ kiểm chứng Spin để tự động sinh  các ca kiểm thử - Kiểm thử dựa trên mô hình

au.

khi thiết kế mô hình hệ thống bằng ngôn ngữ mô hình Promela, kết hợp nhúng mã C vào đặc tả promela và sử dụng công cụ hỗ trợ kiểm chứng Spin để tự động sinh các ca kiểm thử Xem tại trang 37 của tài liệu.
IO Por t - Kiểm thử dựa trên mô hình

or.

t Xem tại trang 38 của tài liệu.
Hình 11: Kiến trúc hệ thống kitchen timer. - Kiểm thử dựa trên mô hình

Hình 11.

Kiến trúc hệ thống kitchen timer Xem tại trang 38 của tài liệu.
Hình 12: Mô hình máy hữu hạn trạng thái kitchen timer. - Kiểm thử dựa trên mô hình

Hình 12.

Mô hình máy hữu hạn trạng thái kitchen timer Xem tại trang 40 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan