ĐẠI HỌC QUỐC 1 GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HUỆ VAI TRÕ CỦA KIỂM THỬ TỰ ĐỘNG TRONG QUY TRÌNH KIỂM THỬ PHẦN MỀM LUẬN VĂN THẠC SĨ Hà Nội - 2012 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC 2 GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HUỆ VAI TRÕ CỦA KIỂM THỬ TỰ ĐỘNG TRONG QUY TRÌNH KIỂM THỬ PHẦN MỀM LUẬN VĂN THẠC SĨ Ngành CÔNG NGHỆ THÔNG TIN Chuyên ngành CÔNG NGHỆ PHẦN MỀM Mã số 60 48 10 NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Đặng Văn Hưng Hà Nội - 2012 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 BẢNG CÁC CHỮ VIẾT TẮT 4 DANH SÁCH CÁC HÌNH VÀ BẢNG BIỂU 5 – 7 1.3 C 8 CHƢƠNG 2 – QUY TRÌNH KIỂM THỬ PHẦN MỀM 9 2.1 QUY TRÌNH PHÁT TRIểN PHầN MềM: 9 2.2 QUY TRÌNH KIểM THử PHầN MềM 9 2.3 G PHầN MềM TRONG VÕNG 11 2.4 CÁC Kỹ THUậT KIểM THử PHầN MềM 12 2.1 Kiểm thử hộp trắng (White-box) 12 14 15 CHƢƠNG 3 –TỰ ĐỘNG HÓA KIỂM THỬ PHẦN MỀM 17 3.2 MÔ HÌNH CHUNG CủA Tự ĐộNG HÓA KIểM THử PHầN MềM 17 3.3 CÔNG Cụ KIểM THử Tự ĐộNG 18 3.1 Lý do sử dụng công cụ kiểm thử 18 3.2 Các bước thực hiện kiểm thử tự động 19 3.3 Công cụ hỗ trợ trong quy trình kiểm thử phần mềm 20 3.4 CHUYÊN MÔN HÓA CON NGƯờI 22 3.5 CHI PHÍ TRONG KIểM THử Tự ĐộNG PHầN MềM 23 3.6 MộT Số HạN CHế TRONG Tự ĐộNG HÓA KIểM THử 23 CHƢƠNG 4 – TÌM HIểU CÔNG Cụ TESTCOMPLETE 9 26 4.6 CÁC BƯớC TạO MộT Dự ÁN KIểM THử VớI TESTCOMPLETE 9 33 4.8 ĐÁNH GIÁ CÔNG Cụ KIểM THử TESTCOMPLETE 9 56 4.1 So với mô hình chung của kiểm thử tự động 56 4.2 So với công cụ kiểm thử khác 57 4.9 NGHIÊN CứU Kỹ THUậT KIểM CHứNG THIếT Kế.3 Ví dụ minh họa: 61 CHƢƠNG – 71 O 72 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 BẢNG CÁC CHỮ VIẾT TẮT Từ viết tắt Ý nghĩa Giải thích tiếng Việt ECG Electrocardiography Điện tim đồ Thiết bị kỹ thuật số hỗ PDA Personal Digital Assistant trợ cá nhân Các hoạt động hàng ADL Activities of Daily Living ngày Tín hiệu thuật toán Signal Algorithm Event SAECA hoạt động điều khiển Condition Action sự kiện Ngôn ngữ mô hình UML Unified Modeling Language hóa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 DANH SÁCH CÁC HÌNH VÀ BẢNG BIỂU Số Tên hình/bảng biểu trang Hình 2.1 Quy trình kiểm thử phần mềm 10 Hình 2.2 Mô hình chữ V hiển thị thiết kế kiểm thử sớm 12 Hình 3.1 Mô hình chung của tự động hóa kiểm thử 17 Hình 3.2 Công cụ hỗ trợ trong quy trình kiểm thử phần mềm 20 Hình 4.1 Giao diện Project Explorer của TestComplete 29 Hình 4.2 Cửa sổ làm việc chính của TestComplete 30 Hình 4.4 Đối tượng Process trong TestComplete 32 Hình 4.5 Ứng dụng hộp đen trong TestComplete 32 Hình 4.6 Ứng dụng hộp trắng trong TestComplete 33 Hình 4.7 Giao diện Patients Management 34 Hộp thoại Create New Project 35 Hình 4.8 Xác định ứng dụng cần kiểm thử 36 Hình 4.10 Thêm ứng dụng kiểm thử vào dự án 37 Hình 4.11 Thêm tùy chọn Autorun cho ứng dụng kiểm thử 38 Hình 4.12 Thiết lập chế độ hiển thị trực quan kiểm thử 39 Hình 4.13 Chọn ngôn ngữ viết Script 41 Hình 4.14 Hộp thoại ghi kiểm thử Recording Hình 4.15 Chức năng Append to Test trên thanh công cụ của trình soạn thảo 42 Hình 4.16 Thực hiện chạy ứng dụng cần kiểm thử 42 Hình 4.17 Giao diện quản lý bệnh nhân Patients Management 42 Hình 4.18 Hộp thoại chỉnh sửa thông tin bệnh nhân 43 Hình 4.19 Giao diện hiển thị các tùy chọn cho Checkpoint 44 Hình 4.20 Giao diện tạo Property Checkpoint 44 Hình 4.21 Nội dung ca kiểm thử 46 Hình 4.22 Giao diện Test Visualizer 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.23 Giao diện Visualizer Frame 47 Hình 4.24 Giao diện hiển thị các thao tác trong ca kiểm thử 48 Hình 4.25 Thao tác đăng nhập hệ thống đang kiểm thử 49 Hình 4.26 Thao tác chỉnh sửa thông tin bệnh nhân 50 Hình 4.27 Tổ chức cấu trúc cây các thao tác trong TestComplete 9 51 Hình 4.28 Giao diện hiển thị chức năng Run Test 52 Hình 4.29 Cửa sổ hiển thị quá trình thực hiện kiểm thử 53 Hình 4.30 Giao diện hiển thị kết quả kiểm thử 54 Hình 4.31 Giao diện Log hiển thị kết quả kiểm thử 55 Hình 4.32 Giao điện hiển thị chi tiết thao tác tạo lỗi 56 Hình 4.33 TestComplete 9 trong mô hình chung của tự động hóa kiểm thử 57 Hình 4.34 Nền tảng kiến trúc của hệ thống 62 Hình 4.35 Tổng quan về hệ thống 62 Hình 4.36 Lược đồ tuần tự trong UML của giao thức thiết kế - SAECA 63 Hình 4.37 Phân tích dữ liệu ECG và chèn thêm thông tin của mẫu 64 Hình 4.38 Sơ đồ xử lý dữ liệu ECG 64 Hình 4.39 Mô hình trạng thái của hệ thống 65 Hình 4.40 Mô hình trạng thái của module lưu trữ dữ liệu 66 Hình 4.41 Ứng dụng mô phỏng trên máy chủ IIS 66 Hình 4.42 Giao diện chạy thử ứng dụng 67 Hình 4.43 Mã nguồn ứng dụng mô phỏng 67 Hình 4.44 Mã nguồn chương trình khách 68 Hình 4.45 Giao diện chương trình khách 68 Hình 4.46 Kết quả mong đợi xây dựng trước 69 Hình 4.47 Kết quả chạy thực tế bằng TestComplete 9 70 Hình 4.48 Kết quả chạy kiểm thử của TestComplete 9 70 LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Các chạy bằng tay. Trong lĩnh vực Kiểm thử tự động hiện có khá nhiều công cụ kiểm thử thương mại nổi tiếng, phổ biến như TestComplete, QuickTest Professional, WinRunner, Rational Robot, SilkTest, JTest,…Trong số đó, Test Complete phiên bản 9 của Automated‟s QA SmartBear khá tốt và mạnh, bao gồm nhiều chức năng điển hình của một công cụ kiểm thử tự động.
Nó có thể thực thi kiểm thử ở nhiều mức: Kiểm thử đơn vị, tích hợp, hệ thống và chấp nhận. Đây là một trong những loại công cụ phổ biến nhất đang được sử dụng hiện nay. Việc thực hiện kiểm chứng thiết kế trong quá trình tạo ra sản phẩm phần mềm đặc biệt là những phần mềm phức tạp sẽ giúp làm tăng hiệu quả kinh tế nhờ việc phát hiện lỗi sớm – ngay từ bước thiết kế phần mềm sẽ rút ngắn thời gian và chi phí hoàn thành sản phẩm, đảm bảo tính tin cậy, an toàn của hệ thống được làm ra. Tuy nhiên, thiết kế thường không ở dạng chương trình có thể cài đăt và chạy được.
Một câu hỏi đặt ra ở đây là liệu có thể áp dụng công cụ kiểm thử vào kiểm chứng thiết kế không? Trả lời cho câu hỏi này luận văn có trình bày cách tiếp cận dùng công cụ kiểm thử vào việc kiểm thử thiết kế mà cụ thể ở đây là công cụ kiểm thử TestComplete 9. Dùng kỹ thuật trừu tượng hóa, biến đổi thiết kế thành mô hình có thể tiến hành để kiểm thử bằng công cụ kiểm thử nhằm phát hiện lỗi ở giai đoạn sớm hơn.2 Luận văn tập trung nghiên cứu về sự tự động hóa trong kiểm thử phần mềm gồm khái niệm, lợi ích và cách thức thực hiện tự động hóa, chỉ ra một số công cụ kiểm thử phần mềm và tập trung vào việc tìm hiểu công cụ kiểm thử TestComplete 9 – công cụ đang được sử dụng khá phổ biến hiện nay. Ngoài ra, luận văn có trình bày một phương pháp sử dụng công cụ kiểm thử TestComplete trong kiểm chứng thiết kế phần mềm. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.3 Phần còn lại của luận văn có cấu trúc như sau: Chương 2: Quy trình kiểm thử phần mềm.
Chương này trình bày về mô hình phát triển phần mềm và quy trình kiểm thử trong các mô hình phát triển phần mềm Chương 3: Các kỹ thuật kiểm thử phần mềm. Chương này trình bày sơ qua về hai kỹ thuật kiểm thử: Hộp đen (Black box), Hộp trắng (White box) và việc lựa chọn kiểu kiểm thử cho hệ thống phần mềm. Chương 4: Tự động hóa trong kiểm thử phần mềm. Chương này trình bày về khái niệm, mô hình chung của tự động hóa kiểm thử, lợi ích và cách thức thực hiện tự động hóa trong kiểm thử phần mềm.
Giới thiệu một số công cụ kiểm thử tự động và đi sâu vào việc tìm hiểu công cụ kiểm thử TestComplete 9. Trình bày phương pháp sử dụng công cụ kiểm thử này trong kiểm chứng thiết kế. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 9 Chƣơng 2 – QUY TRÌNH KIỂM THỬ PHẦN MỀM quy trình phát triển phần mềm là điều quan trọng. Nếu chỉ viết nh ), bạn sẽ thấy các phương thức bạn sử dụng sẽ khác nhiều so với những gì các công ty lớn sử dụng để phát triển phần mềm.
Để tạo ra một sản phẩm phần mềm lớn có thể bao gồm hàng chục, hàng trăm, thậ làm việc chặt chẽ.Chi tiết về những việc họ làm, cách thức họ tương tác, và cách thức họ quyết định là những thành phần trong quy trình phát triển phần mềm.1 Quy trình phát triển phần mềm: .2 Quy trình kiểm thử phần mềm Quy trình kiểm thử gồm các hoạt động sau: − Kế hoạch kiểm thử (test planning) − Thiết kế kiểm thử (test design) − Triển khai kiểm thử (test implementation) − Thực thi kiểm thử (test execution) − Đánh giá kiểm thử (test evaluation) Quy trình kiểm thử được mô tả trong hình vẽ dưới đây: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.1: Quy trình kiểm thử phần mềm Mỗi hoạt động đều có một sự chuyển giao riêng từ khâu này đến khâu khác. Cuối cùng, các báo cáo lỗi và tài liệu sẽ cho kết quả. Đội triển khai sẽ sử dụng các tài liệu này để xác định nguyên nhân gây ra lỗi và sửa chữa chúng. Sau khi kế hoạch kiểm thử được xây dựng, dựa trên đầu vào cụ thể (ngân sách, nguồn lực, thời gian), bước tiếp theo là phân tích các yêu cầu và xác định mục tiêu kiểm thử cho đội kiểm thử.
Pha thiết kế kiểm thử chủ yếu tập trung vào xác định và thiết kế các thủ tục kiểm thử. Ở bước này một quyết định sẽ được làm là xác định những gì cần kiểm thử bằng tay và những gì sẽ được kiểm thử tự động. Các ca kiểm thử và các thủ tục kiểm thử là kết quả của pha triển khai kiểm thử. Các kịch bản kiểm thử (Test scripts) được viết bằng các ngôn ngữ lập trình xác định như Visual Basic, Java hoặc C++.
Ở pha này, một số kịch bản kiểm thử có thể được sử dụng lại từ các kiểm thử trước đó. Thực thi kiểm thử có các kế hoạch và thủ tục kiểm thử như là đầu vào. Sau khi thực thi các kiểm thử, kết quả kiểm thử được đánh giá bằng một Oracle.