1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Luận văn thạc sĩ) xây dựng công cụ hỗ trợ sinh ca kiểm thử cặp

74 21 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 2,9 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ TỰ XÂY DỰNG CÔNG CỤ HỖ TRỢ SINH CA KIỂM THỬ CẶP Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60 48 01 03 LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS.ĐẶNG ĐỨC HẠNH Hà Nội – 2016 i LỜI CẢM ƠN Lời xin gửi lời cảm ơn chân thành sâu sắc đến TS.Đặng Đức Hạnh PGS.TS.Trƣơng Anh Hoàng định hƣớng đề tài, liên tục quan tâm, tạo điều kiện thuận lợi suốt trình nghiên cứu hồn thành luận văn Tơi xin đƣợc gửi lời cảm ơn đến thầy, cô Bộ môn Công nghệ phần mềm nhƣ Khoa Công nghệ thông tin mang lại cho kiến thức vô q giá bổ ích q trình theo học trƣờng Tôi xin chân thành cảm ơn đến gia đình tơi, tạo điều kiện giúp đỡ để tơi có thời gian nghị lực hồn thành luận văn Cuối cùng, xin gửi lời cảm ơn chân thành đến bạn, anh chị trƣờng học công ty Fpt software tạo điều kiện giúp đỡ tơi q trình học tập thực luận văn Hà Nội, tháng 06 năm 2016 Học viên: Nguyễn Thị Tự ii LỜI CAM ĐOAN Tôi xin cam đoan luận văn cơng trình nghiên cứu cá nhân dƣới hƣớng dẫn thầy TS.Đặng Đức Hạnh, trung thực không chép tác giả khác Trong toàn nội dung nghiên cứu luận văn, vấn đề đƣợc trình bày tìm hiểu nghiên cứu cá nhân tơi đƣợc trích dẫn từ nguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp Nếu có vấn đề tơi xin hồn tồn chịu trách nhiệm Người viết cam đoan Nguyễn Thị Tự iii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC .iii DANH SÁCH CÁC BẢNG KÝ HIỆU VÀ CHỮ VIẾT TẮT v DANH SÁCH CÁC BẢNG vi DANH SÁCH CÁC HÌNH vii MỞ ĐẦU Đặt vấn đề, định hƣớng nghiên cứu CHƢƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Khái niệm kiểm thử phần mềm (Software Testing) 1.2 Một số thuật ngữ thƣờng dùng kiểm thử phần mềm 1.3 Quy trình kiểm thử phần mềm 1.3.1 Lập kế hoạch kiểm thử (Test plan) 1.3.2 Thiết kế kiểm thử (Test design) 1.3.3 Chuẩn bị liệu (Implement test) 1.3.4 Thực kiểm thử, ghi nhận kết đánh giá kết 1.3.5 Tổng hợp báo cáo 1.4 Các mức kiểm thử phần mềm 1.4.1 Kiểm thử mức đơn vị (Unit Test) 1.4.2 Kiểm thử tích hợp (Integration Test) 1.4.3 Kiểm thử mức hệ thống (System Test) 1.4.4 Kiểm thử chấp nhận (Acceptance Test) 1.4.5 Kiểm thử hồi quy (Regression Test) 10 1.5 Một số chiến lƣợc kiểm thử 10 1.5.1 Kiểm thử hộp trắng (White-box Testing) 10 1.5.2 Kiểm thử hộp đen (Black-box Testing) 11 1.6 Kiểm thử chức 11 1.6.1 Khái niệm kiểm thử chức 11 1.6.2 Phân lớp tƣơng đƣơng (Equivalence class partioning) 12 1.6.3 Phân tích giá trị biên (Boundary value analysis) 13 1.6.4 Bảng định (Decision tables) 13 1.6.5 Kiểm thử ngẫu nhiên (Random testing) 17 1.6.6 Đoán lỗi (Error guesing) 18 1.6.7 Phƣơng pháp phân vùng (Category partition (CPM)) 18 1.7 Kiểm thử tổ hợp (Combination testing) 19 iv 1.7.1 Vector kiểm thử (Test vector) 19 1.7.2 Kiểm thử tổ hợp [5] 19 CHƢƠNG 2: KIỂM THỬ CẶP ĐÔI DỮ LIỆU (PAIRWISE TESTING) 26 2.1 Tổng quan 26 2.2 Kiểm thử cặp đôi liệu (Parirwise testing) 26 2.2.1 Mảng trực giao (Orthogonal array (Lrun(Leverfactors))) 27 2.2.2 Thứ tự tham số (In parameter order) 31 2.3 Công cụ PICT (Pairwise Independent Combinatorial Testing) 36 2.3.1 File đầu vào PICT 36 2.3.2 Cách thức sinh liệu ca kiểm thử PICT 39 2.3.3 Ƣu điểm PICT 40 2.3.4 Cài đặt sử dụng PICT [9] 45 2.4 Ứng dụng pairwise testing 46 2.5 Đánh giá hiệu kỹ thuật pairwise 47 CHƢƠNG 3: XÂY DỰNG CÔNG CỤ SINH CA KIỂM THỬ TỰ ĐỘNG 48 3.1 Ý tƣởng toán 48 3.2 Tìm hiểm cơng cụ kiểm thử tự động web Selenium IDE 48 3.3 Phân tích tốn 50 3.3.1 Vấn đề cần giải 50 3.3.2 Cách thức giải vấn đề 51 3.3.3 Cách thức sinh ca kiểm thử công cụ 51 Xây dựng công cụ sinh ca kiểm thử tự động 57 3.5 Kết công cụ: 58 3.6 Môi trƣờng chạy công cụ sinh ca kiểm thử 61 3.7 Ứng dụng công cụ vào thực tế 62 3.8 Đánh giá ƣu nhƣợc điểm công cụ 63 Tóm tắt kết làm đƣợc: 65 Hƣớng nghiên cứu tiếp theo: 65 DANH MỤC TÀI LIỆU THAM KHẢO 66 v DANH SÁCH CÁC BẢNG KÝ HIỆU VÀ CHỮ VIẾT TẮT Requiment Yêu cầu khách hàng QTP QuickTest Professional Pairwise testing Kiểm thử cặp đôi Bug Lỗi phần mềm Testcase Ca kiểm thử Test Kiểm thử Design Thiết kế EC Lớp tƣơng đƣơng IPO Thứ tự tham số Cover Phủ File Tệp tin vi DANH SÁCH CÁC BẢNG Bảng 1.1 Mẫu ca kiểm thử thực tế Bảng 1.2 Ca kiểm thử tự động Selenium IDE dạng bảng Bảng 1.3 Ca kiểm thử tự động Selenium IDE dạng mã nguồn Bảng 1.4 Cấu trúc bảng định 14 Bảng 1.5 Các biến chức privacy setting skype 19 Bảng 1.6 Số ca kiểm thử hệ thống S cho kỹ thuật cặp 21 Bảng 1.7 Số cặp đôi hệ thống S 21 Bảng 1.8 Số ca kiểm thử hệ thống S cho kỹ thuật cặp đôi 21 Bảng 1.9 Số cặp hệ thống S 22 Bảng 1.10 Số ca kiểm thử hệ thống S cho kỹ thuật cặp 22 Bảng 1.11 Số ca kiểm thử chức setting privacy cho kỹ thuật cặp1 22 Bảng 1.12 Số ca kiểm thử chức setting privacy cho kỹ thuật cặp đôi 23 Bảng 1.13 Số ca kiểm thử chức setting privacy cho kỹ thuật cặp 25 Bảng 2.1 Tổng số ca kiểm thử theo phƣơng pháp N cặp 26 Bảng 2.2 Tổng số ca kiểm thử theo phƣơng pháp pairwise 27 Bảng 2.3 Thành phần file đầu vào PICT 36 Bảng 3.1Định nghĩa phần tử html cột Selenium IDE 50 Bảng 3.2Bảng mô tả thành phần biểu mẫu nhập liệu 50 Bảng 3.3Định nghĩa phẩn tử file sinh ca kiểm thử 59 vii DANH SÁCH CÁC HÌNH Hình 1.1 Quy trình kiểm thử phần mềm Hình 1.2 mức độ kiểm thử phần mềm Hình 1.3 Màn hình setting privacy skype 20 Hình 2.1 Bảng lựa chọn mảng trực giao tùy theo số lƣợng lever factors 28 Hình 2.2 Mảng trực giao L4(23) 29 Hình 2.3 Mảng trực giao L9 (34) 29 Hình 2.4Thuật tốn IPO 32 Hình 2.5 Thuật tốn Horizontal growth 32 Hình 2.6 Thuật toán vertical 33 Hình 2.7 Thuật tốn sinh ca kiểm thử PICT 40 Hình 2.8 Cấu trúc tƣơng tác tham số đƣợc tạo PICT 41 Hình 2.9 Tính tốn loại trừ độc lập PICT 43 Hình 2.10 Ràng buộc biến 43 Hình 2.11 File chạy thử nghiệm PICT 45 Hình 2.12 Kết PICT hiển thị command 45 Hình 2.13 Kết PICT xuất thành file 45 Hình 3.1 Giao diện Selenium IDE 48 Hình 3.2 Cấu trúc ca kiểm thử Selenium IDE 49 Hình 3.3 Giao diện cơng cụ sinh ca kiểm thử tự động 57 Hình 3.4 Kết hiển thị listview thêm phần tử html 59 Hình 3.5 Kết chạy file sinh công cụ Selenium IDE 60 Hình 3.6 Kết hiển thị list view 60 Hình 3.7 Kết số file sinh nội dung file 61 Hình 3.8 Hình ảnh listview 62 Hình 3.9File sinh đƣợc chạy thành cơng Selenium IDE 63 Hình 3.10 Số ca kiểm thử sinh với liệu đầu vào 63 MỞ ĐẦU Đặt vấn đề, định hƣớng nghiên cứu Trong năm gần đây, thấy ngành công nghệ phần mềm phát triển ngày vƣợt bậc nhiều lĩnh vực.Đặc biệt tính ứng dụng cao bắt buộc cho phần mềm phải có chất lƣợng định.Việc phát triển phần mềm tập trung vào khâu thiết kế, lập trình chƣa đủ.Chúng ta cần tập trung cao vào khâu kiểm thử đặc biệt kiểm thử chức (function).Nhƣng kiểm thử nhƣ để tiết kiệm chi phí, tối ƣu nguồn lực mà đảm bảo chất lƣợng Một giải pháp hợp lý cho vấn đề đặt áp dụng kỹ thuật kiểm thử tối ƣu công cụ kiểm thử tự động cho phần mềm.Trong thực tế có nhiều cơng cụ kiểm thử tự động ví dụ nhƣ Selenium IDE, QTP, nhƣng nhìn trung chúng lại gị bó mang nhiều nhƣợc điểm Luận văn đƣợc thực dựa ý tƣởng từ nhu cầu thực tế công việc kiến thức đƣợc học để từ đƣa cách thực Luận văn gồm chƣơng có nội dung nhƣ sau: Chƣơng 1: Tổng quan kiểm thử phần mềm Chƣơng nêu hệ thống sở lý thuyết kiểm thử nhƣ khái niệm kiểm thử, quy trình kiểm thử, mức kiểm thử, chiến lƣợc kiểm thử đặc biệt kỹ thuật kiểm thử chức kiểm thử tổ hợp Chƣơng 2: Kỹ thuật kiểm thử cặp đôi liệu (Pairwise testing) Trong chƣơng này, giới thiệu kiểm thử cặp liệu.Đây kỹ thuật kiểm thử chức năng.Trong luận văn nghiên cứu kỹ thuật mảng trực giao (OA) thứ tự tham số (IPO) Ngoài phần giới thiệu công cụ sinh liệu kiểm thử theo phƣơng pháp cặp đôi liệu PICT Chƣơng 3: Xây dựng công cụ hỗ trợ sinh ca kiểm thử theo kỹ thuật cặp Trong chƣơng này, xây dựng công cụ cho phép sinh ca kiểm thử dạng Selenium IDE kết hợp kỹ thuật cặp liệu đó.Nó cho phép sinh lúc nhiêu ca kiểm thử CHƢƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Khái niệm kiểm thử phần mềm (Software Testing) Kiểm thử phần mềm trình thực thi chƣơng trình đơn vị (Module) chƣơng trình nhằm đánh giá chất lƣợng sản phẩm phần mềm Kiểm thử khâu mấu chốt bƣớc phát triển cuối để đảm bảo chất lƣợng phần mềm Có thể nói đơn giản kiểm thử kiểm tra xem phần mềm có chạy thiết kế (design) đặc tả (specification) hay khơng Mục đích kiểm thử phần mềm là: Tìm lỗi sai (bug), giải bug đƣa đánh giá, chứng nhận chất lƣợng phần mềm 1.2 Một số thuật ngữ thƣờng dùng kiểm thử phần mềm Bug: Là khiếm khuyết thành phần hệ thống mà làm cho thành phần hệ thống khơng thực chức u cầu nó, lỗi giao diện, lỗi chức năng, lỗi nghiệm vụ Ví dụ nhƣ thơng báo sai định nghĩa liệu không đúng, nghiệm vụ bị sai so với yêu cầu… Các mức độ bug: Đơn giản (Cosmetic), bình thƣờng (Medium), nguy hiểm (Serious), gây chết hệ thống (Fatal) Testcase: Đƣợc dịch tiếng việt ca kiểm thử Nó mơ tả liệu dầu vào, số hành động kiện, kết mong đợi để xác định chức ứng dụng phần mềm hoạt động hay khơng Một testcase có phần đặc thù khác nhƣ mã, mục đích, điều kiện kiểm tra (conditon), yêu cầu liệu đầu vào, bƣớc thực hiện, kết mong đợi Có thể nóirằng testcase tình kiểm tra, đƣợc thiết kế để kiểm tra đối tƣợng có thỏa mãn u cầu đặt hay khơng Testcase có số dạng nhƣ bảng 1.1, bảng 1.2, bảng 1.3 Ví dụ mẫu testcase: Stt 10 Kiểm thử Điều kiện Bƣớc thực Mong muốn Kết viên Ngày test Ghi Tại hình Click vào tab OK Tunt3 2014/02/26 Versio ternant [Menu] n: 5.5 .Display Click vào [Data .[Report message:[設 settings] option] 定が保存さ Tại hình [Data =Enable れました。/S settings] .[Call etting was .Tại recording saved.] [レポート保存日数] option] .Đăng ký =Enable chọn value =3 thành công .Tại [保存日数] chọn value =3 Click button [ OK] để đăng ký Bảng 1.1Mẫu ca kiểm thử thực tế 52 1) publicstaticTestSet CreateTestSet(List testItemList) 2) { 3) _logger.InitLog(); 4) TestSet testSet = newTestSet(); 5) testSet.Add(newIpoTestCase()); 6) _logger.Log("=========================="); 7) _logger.Log("START IPO"); 8) int n = testItemList.Count; // // // 9) if { begin for the first two parameters p1 and p2 T := {(v1, v2) | v1 and v2 are values of p1 and p2, respectively}; (n > 0) testSet.UpdateTestItem(testItemList[0]); } 10) if (n > 1) { testSet.UpdateTestItem(testItemList[1]); } // if n = then stop; 11) if (n > 2) { // for the remaining parameters // for parameter pi, i = 3, 4, , n for (int i = 2; i < n; i++) { // logging _logger.Log("IPO i=" + i); // begin PairInventory pairInventory = newPairInventory(testItemList, i); // horizontal growth // for each test (v1, v2, , vi-1) in T // replace it with (v1, v2, , vi-1, vi), where vi is a value of pi IpoHorizontalGrowth(testSet, testItemList[i], pairInventory); // vertical growth // while T does not cover all pairs between pi and each of p1, p2, , pi-1 // add a new test for p1, p2, , pi to T; IpoVerticalGrowth(testSet, testItemList[i], pairInventory); // end } } // end 12) _logger.Log("DONE IPO"); 13) _logger.Log("=========================="); 14) return testSet; } 53 Mã nguồn thuật toán HorizontalGrowth: 1) privatestaticvoid IpoHorizontalGrowth(TestSet testSet, IpoTestItem testItem, PairInventory pairInventory) { // logging 2) _logger.Log("START IPO_H"); 3) _logger.Log(pairInventory); 4) int tCount = testSet.testCaseList.Count; 5) int q = testItem.values.Length; // if |T|

Ngày đăng: 05/12/2020, 11:51

w