Đặt vấn đề Trong xã hội ngày nay phần mềm đóng vai trò rất quan trọng và có độ phức tạp gia tăng. Vì thế con người ngày càng phụ thuộc chặt chẽ vào các sản phẩm phần mềm và do vậy đòi hỏi về chất lượng của sản phẩm phần mềm ngày càng cao, tức là các phần mềm phải được sản xuất với giá thành thấp, dễ dùng, an toàn và có độ tin cậy cao. Do đó việc kiểm thử là một phần trọng yếu của quá trình phát triển và đảm bảo chất lượng phần mềm. Hiện nay việc kiểm thử phần mềm đang sử dụng một đặc tả hình thức đóng vai trò như các mô hình ngữ nghĩa chẳng hạn như máy trạng thái hữu hạn, biểu đồ chuyển trạng thái.
Các mô hình đặc tả này được sử dụng làm mục đích để chứng minh tính đúng đắn của hành vi đặc tả hệ thống phần mềm hay các đối tượng và cũng được dùng để sinh các ca kiểm thử. Việc sinh ca kiểm thử từ đặc tả máy trạng thái hữu hạn (FSM - Finite State Machines) được áp dụng trong lĩnh vực kiểm thử các hệ thống phần mềm cho các hệ phản vệ (reactive system). Máy rút tiền ATM là một hệ phản vệ thông dụng và đòi hỏi tính đúng đắn, độ tin cậy cao. Đặc tả trực quan nhất của máy ATM là máy trạng thái hữu hạn, vì thế để kiểm thử máy ATM tôi sử dụng kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn, trong luận văn này tôi chọn đề tài “Mô hình hóa và kiểm thử máy rút tiền ATM bằng kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn (FSM-Finite State Machines Testing)”.
Mục tiêu và nhiệm vụ nghiên cứu Luận văn này đề cập các vấn đề về kiểm thử máy trạng thái hữu hạn (Finite State Machines Testing) và ứng dụng kiểm thử máy rút tiền ATM. Sau khi mô hình hóa máy ATM bằng một máy trạng thái hữu hạn, luận văn cũng nghiên cứu các phương pháp sinh ca kiểm thử từ máy trạng thái (FSM) đồng thời đưa ra những nhận xét, đánh giá khi áp dụng vào mô hình của máy ATM. Đối tƣợng và phạm vi nghiên cứu Đối tƣợng nghiên cứu: Nghiên cứu cơ sở lý thuyết về kiểm thử mô hình máy trạng thái. Nghiên cứu về kỹ thuật mô hình hóa phần mềm phản vệ bằng máy hữu hạn trạng thái hữu hạn (FSM).
Phạm vi nghiên cứu: 7 TIEU LUAN MOI download : skknchat@gmail.com Cơ sở lý thuyết về kiểm thử mô hình phần mềm cho hệ thống máy rút tiền tự động. Giới thiệu kỹ thuật sinh ca kiểm thử, phân tích để lựa chọn kiểm thử để xác minh mô hình. Nghiên cứu máy trạng thái hữu hạn FSM và đưa ra phương pháp tìm chuỗi kiểm thử trạng thái. Kiểm thử dựa trên mô hình FSM.
Thử nghiệm kiểm thử mô hình cho hệ thống máy rút tiền tự động ATM. Phƣơng pháp nghiên cứu Đọc tài liệu, lựa chọn nội dung phù hợp từ tài liệu tham khảo và nhiều bài báo khoa học có liên quan mật thiết về đề tài nghiên cứu. Phân tích, xác định trọng tâm và xây dựng cơ sở lý luận về vấn đề nghiên cứu và trên cơ sở đó thực hiện giải quyết vấn đề thông qua việc thiết kế bộ kiểm thử máy rút tiền ATM bằng kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn. Nghiên cứu, tìm hiểu các kỹ thuật, chiến lược kiểm thử phần mềm.
Đưa ra tài liệu kế hoạch kiểm thử và đặc tả kiểm thử, xây dựng chương trình thực thi kiểm thử. Đánh giá và rút ra bài học kinh nghiệm thực tiễn. Ý nghĩa khoa học và thực tiễn của luận văn. Ý nghĩa khoa học: Đứng trước sự gia tăng mức độ phức tạp của phần mềm, việc trực quan hoá, mô hình hóa và kiểm thử phần mềm ngày càng trở nên chính yếu trong cách tiếp cận xem xét về một hệ thống.
Mô hình hóa là một dạng thức trừu tượng của một hệ thống, được hình thành để hiểu hệ thống trước khi xây dựng hoặc thay đổi hệ thống đó. Mô hình hóa cung cấp một phương tiện để quan niệm hóa vấn đề và giúp chúng ta có thể trao đổi các ý tưởng trong một hình thức cụ thể, không mơ hồ. Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm lỗi, còn là quá trình khảo sát hệ thống hay phần mềm dưới những điều kiện xác định, để quan sát và ghi lại kết quả, và đánh giá một khía cạnh nào đó của hệ thống. Mục đích chính của đề tài là trình bày phương pháp mô hình hóa bằng FSM của ATM và sinh ca kiểm thử từ đặc tả máy trạng thái FSM (Finite State Machines Testing) của ATM.
Việc mô hình hóa bằng FSM là làm sáng tỏ vấn đề để có thể đưa ra được các lỗi hoặc các thiếu sót của hệ thống từ việc tiếp cận trực quan đồ họa hơn là các dạng trình bày như văn bản, đoạn mã,… Ý nghĩa thực tiễn: Luận văn trình bày phương pháp kiểm thử dựa trên mô hình máy hữu hạn trạng thái và dùng khái niệm mô phỏng như là một tiêu chí để đánh giá 8 TIEU LUAN MOI download : skknchat@gmail.com sự cài đặt đúng đắn của hệ thống so với đặc tả. Luận văn đi sâu nghiên cứu về độ bao phủ của mô hình máy hữu hạn trạng thái, và từ đó đưa ra phương pháp sinh ca kiểm thử để kiểm thử xem hệ thống cài đặt có mô phỏng bản đặc tả phần mềm dựa trên mô hình máy hữu hạn trạng thái hay không. Hướng phát triển tiếp theo của luận văn là tìm cách cải tiến phương pháp sinh ca kiểm thử sao cho số ca kiểm thử là ít nhất nhưng độ bao phủ là lớn nhất có thể. Đồng thời, sẽ xây dựng một chương trình sinh ca kiểm thử dựa trên phương pháp đã được cải tiến.
Bố cục luận văn. NỘI DUNG Chƣơng 1: Trình bày kiến thức cơ bản về kiểm thử phần mềm. Chƣơng 2: Nghiên cứu về mô hình máy trạng thái hữu hạn và trình bày các phương pháp về kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn(FSM-Finite State Machines). Để mô tả máy rút tiền ATM bằng kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn.
Chƣơng 3: Đặc tả và xây dựng mô hình kiểm thử phần mềm máy hữu hạn trạng thái ATM. Tìm hiểu và đề xuất quy trình kiểm thử máy rút tiền ATM sử dụng máy trạng thái hữu hạn, sau đó áp dụng các kỹ thuật kiểm thử này vào kiểm thử mô hình phần mềm giả lập máy rút tiền tự động ATM sử dụng trạng thái máy hữu hạn. KẾT LUẬN Đưa ra những nhận xét, đánh giá khi áp dụng vào mô hình của máy ATM và định hướng khóa luận trong tương lai. 9 TIEU LUAN MOI download : skknchat@gmail.com NỘI DUNG Chƣơng 1.
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác định xem phần mềm đó có đúng với đặc tả không và thực hiện trong môi trường như mong đợi hay không. Kiểm thử có thể cung cấp cho doanh nghiệp một quan điểm, một cách nhìn độc lập về phần mềm mà từ đó cho phép đánh giá và thấu hiểu được những rủi ro trong quá trình triển khai phần mềm. Bên cạch đó các kỹ thuật kiểm thử không chỉ giới hạn ở việc thực hiện một chương trình hoặc ứng dụng với mục đích đi tìm các lỗi phần mềm. Để đáp ứng được mọi yêu cầu hướng dẫn khi thiết kế, phát triển phần mềm và thực hiện công việc đúng như kỳ vọng và đáp ứng được mọi nhu cầu của các bên liên quan.
Tùy thuộc vào từng phương pháp, việc kiểm thử có thể được thực hiện bất cứ lúc nào trong quá trình phát triển phần mềm. Và việc kiểm thử phần mềm là một quá trình nỗ lực để đưa ra những đánh giá này. Mục tiêu của kiểm thử là với lý do hoặc mục đích cho việc thiết kế và thực hiện kiểm thử. Bởi vậy ở chương này, tôi xin giới thiệu sơ lược về tổng quan của kiểm thử phần mềm và các kỹ thuật kiểm thử phần mềm.
Kiểm thử phần mềm là gì? Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khía cạnh nào đó của hệ thống hay thành phần đó1. Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm lỗi2. Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp cho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch vụ phần mềm ấy. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều ngành khác nhau3.
Có thể định nghĩa một cách dễ hiểu như sau: Kiểm thử phần mềm là một tiến trình hay một tập hợp các tiến trình được thiết kế để đảm bảo mã hóa máy tính thực hiện theo cái mà chúng đã được thiết kế để làm, và không thực hiện bất cứ thứ gì không mong muốn. Đây là một pha quan trọng trong quá trình phát triển hệ thống, giúp cho người xây dựng hệ thống và khách hàng thấy được hệ thống mới đã đáp ứng yêu cầu đặt ra hay chưa? 1. Chất lƣợng và độ tin cậy của phần mềm. Chất lƣợng của phần mềm.
10 TIEU LUAN MOI download : skknchat@gmail.com Chất lượng của một sản phẩm phần mềm là sự đáp ứng các yêu cầu về chức năng, sự hoàn thiện và các chuẩn đã được đặc tả, cùng các đặc trưng mong chờ từ mọi sản phẩm phần mềm chuyên nghiệp. Chất lượng phần mềm đặc trưng cho “độ tốt, độ tuyệt hảo” của phần mềm và dưới đây là năm quan điểm của chất lượng phần mềm: + Quan điểm theo cảm tính: Là chất lượng phần mềm như có thể là cái gì đó. + Quan điểm người dùng về chất lượng phần mềm như: tính chính xác, tính đúng đắn (hành vi đúng như đặc tả), tính hiệu quả (tiết kiệm thời gian và tiền bạc), độ tin cậy, tính khả kiểm thử (kiểm thử được và dễ), dễ học, dễ sử dụng, dễ bảo trì. + Quan điểm của nhà sản xuất: Là chất lượng phần mềm phải phù hợp với các đặc tả của nó.
+ Quan điểm về sản phẩm: Chất lượng sản phẩm được xem như gắn liền với các đặc tính vốn có của sản phẩm. Thì phương pháp xây dựng sản phẩm phải tốt.