Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
2,14 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 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 hoàn thành luận văn Tôi xin gửi lời cảm ơn đến thầy, cô Bộ môn Công nghệ phần mềm Khoa Công nghệ thông tin mang lại cho kiến thức vô quý giá bổ ích 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 đỡ để có thời gian nghị lực để hoà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 đỡ trình học tập thực luận văn Hà Nội, tháng 05 năm 2016 Học viên: Nguyễn Thị Tự LỜI CAM ĐOAN Tôi xin cam đoan luận văn công trình nghiên cứu cá nhân 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 đề trình bày tìm hiểu nghiên cứu cá nhân 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 đề xin hoàn toàn chịu trách nhiệm Người viết cam đoan Nguyễn Thị Tự MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH SÁCH CÁC BẢNG KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH SÁCH CÁC BẢNG DANH SÁCH CÁC HÌNH 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 10 1.1 Khái niệm kiểm thử phần mềm (Software Testing) 10 1.2 Một số thuật ngữ thường dùng kiểm thử phần mềm: 10 1.3 Quy trình kiểm thử phần mềm 13 1.3.1 Lập kế hoạch test 14 1.3.2 Thiết kế test 15 1.3.3 Thực kiểm thử 15 1.3.4 Thực test, tạo log kiểm thử đánh giá kết thực test 16 1.3.5 Sum-up and báo cáo : 16 Các mức kiểm thử phần mềm 16 1.4.1 Kiểm tra mức đơn vị (Unit Test) 17 1.4.2 Kiểm tra tích hợp (Integration Test) 17 1.4.3 Kiểm tra mức hệ thống (System Test) 18 1.4.4 Kiểm thử chấp nhận (Acceptance Test) 19 1.4.5 Kiểm tra hồi quy (Regression Test) 19 1.5 Một số chiến lược kiểm thử 19 1.5.1 Kiểm thử hộp trắng (White-box Testing) 19 1.5.2 Kiểm thử hộp đen (Black-box Testing) 20 1.5.3 Kiểm thử hộp xám (Gray box testing) 20 1.6 Kiểm thử chức 21 1.6.1 Các kiểu liệu ( type of variables) 21 1.6.2 Khái niệm kiểm thử chức năng: 21 1.6.3 Phân lớp tương đương (Equivalence class partioning ) 22 1.6.4 Phân tích giá trị biên( Boundary value analysis) 23 1.6.5 Bản định ( Decision tables) 23 1.6.6 Kiểm thử ngẫu nhien( Random testing ) 27 1.6.7 Đoán lỗi (Error guesing ) 28 1.6.8 Category partition (CPM) 28 Chương 2: KIỂM THỬ CẶP DỮ LIỆU 30 2.1 Tổng quan 30 2.2 Vector kiểm thử (Test vector.) 30 2.3 Kiểm thử cặp liệu ( Parirwise testing) 30 2.3.1 Mảng trực giao ( Orthogonal array ( Lrun(Leverfactors))) 31 2.3.2 Thứ tự tham số (In parameter order ) 36 2.4 Công cụ PICT.( Pairwise Independent Combinatorial Testing) 40 2.4.1 Nguyên tắc thiết kết PICT: 40 2.4.2 File đầu vào PICT: 40 2.4.3 Cách thức sinh test case PICT 43 2.4.4 Sự ưu việt PICT 44 2.4.5 Cài đặt chạy PICT 50 2.4.6 Ứng dụng PICT 51 Chương XÂY DỰNG CÔNG CỤ SINH CA KIỂM THỬ TỰ ĐỘNG 54 3.1 Ý tưởng toán 54 3.2 Phân tích toán: 54 3.3 Giải quyêt toán 55 3.4 Kết tool 56 3.5 Ứng dụng công cụ vào thực tế: 62 3.6 Đánh giá ưu nhược điểm công cụ 62 Danh mục tài liệu tham khảo 63 DANH SÁCH CÁC BẢNG KÝ HIỆU VÀ CHỮ VIẾT TẮT Pairwise testing: Kiểm thử cặp liệu QTP: QuickTest Professional Bug: Lỗi phần mềm Testcase: Ca kiểm thử Test: Kiểm thử phần mềm Design : Thiết kế Create: Tạo EC: Lớp tương đương IPO: Thứ tự tham số Requiment: Yêu cầu khách hàng 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 Bảng 2.1 Tất trường hợp kiểm thử Bảng 3.1 Bảng mô tả trường form nhập liệu DANH SÁCH CÁC HÌNH Hình 1.1 Ca kiểm thử tự động selenium ide dạng mã nguồn Hình 1.2 Quy trình kiểm thử phần mềm Hình 1.3 Mức độ của kiểm thử phần mềm Hình 2.1 Bảng lựa chọn mảng trực giao phù hợp Hình 2.2 Mảng trực giao L4 Hình 2.3 Mảng trực giao L9 Hình 2.4 Thuật toán IPO Hình 2.5 Thuật toán Horizontal growth Hình 2.6 Thuật toán vertical growth Hình 2.7 Thuật toán sinh ca kiểm thử PICT Hình 2.8 Cấu trúc tương tác tham số Hình 3.1 Form nhập liệu Hình 3.2 Kết hiển thị listview Hình 3.3 Kết xuất thư mục lựa chọn 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 chung cao vào khâu kiểm thử đặc biệt kiểm thử chức (function) Nhưng kiểm thử để 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ụ selenium IDE, QTP, nhìn trung lại chúng lại gò bó mang nhiều nhược điểm Luận văn thực dựa ý tưởng từ nhu cầu thực tế kiến thức học Cùng với trình làm việc từ đưa cách thực Luận văn chia thành chương, nội dung phân bổ sau: Chương 1: Tổng quan kiểm thử phần mềm Phần nêu hệ thống sở lý thuyết kiểm thử 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 Chương 2: Kỹ thuật kiểm thử cặp liệu( Pairwise testing) Phần giới thiệu kiểm thử cặp liệu Đây kỹ thuật kiểm thử chức 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 liệu PICT Chương 3: Xây dựng công cụ sinh ca kiểm thử theo kỹ thuật cặp Phần 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 testcase 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ả 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 yêu cầu nó, Có thể lỗi giao diện, lỗi chức năng, lỗi nghiệm vụ Ví dụ 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… Mối liên hệ bug, Defect, fault, Error, failure, incident Error: Hiểu đơn giản sai sót trình viết code, lỗi khiến cho chương trình không biên dịch Error lỗi hệ thống, chương trình or thành phần làm chương trình hoạt động không Các mức độ bug: Cosmetic, Medium, Serious, Fatal Testcase: Được dịch tiếng việt ca kiểm thử Là dạng thức mô tả liệu dầu vào, số hành động (hành vy) 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 mã testcase, tên testcase, mục tiêu test, điều kiện test (conditon), yêu cầu input data, bước thực hiện, kết mong đợi Có thể nôm la testcase tình kiểm tra, thiết kế để kiểm tra đối tượng có thỏa mãn yêu cầu đặt hay không Ví dụ testcase tạo tay: TT S Điều kiện tiền đề Email: Tunthcm@gmail.com tồn Bước thực Open webpage: https://www.facebook.com/ Tại [Username] input value "tunthcm@gmail.com] Tại [password] input value: Minhanh2929 Mong muốn Ghi Login success facebook Click button [Login] Bảng 1.1 Mẫu ca kiểm thử thực tế Kết Kiểm thử viên Ngày test Tất giá trị valid kết hợp với tất giá trị hợp lệ khác trường hợp positive Nếu case chứa giá trị invalid có giá trị Tất giá trị không hợp lệ kết hợp với tất giá trị valid gọi negative test case Việc thực thực tế PICT sử dung giai đoạn Đầu tiên, tham số test g Thiết lập kết mong muốn (Specifying Expected Results ) 2.4.5 Cài đặt chạy PICT Download tịa link: http://download.microsoft.com/download/f/5/5/f55484df-849448fa-8dbd-8c6f76cc014b/PICT33.msi 2.Thực cài đặt 3.Từ Run ->CMD 4.Trỏ đường dẫn đến thư mục đặt file để chạy PICT PICT vidu.txt > filedaura.txt Kết hiển thị command Kết hiển thị nơi đặt file: 2.4.6 Ứng dụng pairwise testing PICT PICT sử dụng trường hợp sau a Áp dụng viết itc viết tay Với kỹ thuật mảng trực giao IPO, hoàn toàn tạo liệu kiểm thử tốt Tuy nhiên phải thực chạy tay Giờ ko phải nghĩ ngợi, tính toán nhiều để đưa trường hợp kiểm thử Chỉ việc áp dụng lấy value viết ca kiểm thử Tiết kiệm thời gian xuy nghĩ tính toán b Sử dụng làm data đầu vào cho selenium webdriver Ví dụ cụ thể hoàn toàn viết testcase selenium drier để lấy liệu từ file excell chạy giá trị row Lấy liệu từ file excell lên: File excell có kết xuât từ pairwise PASSW STT USER NAME tunthcm@gmail.com ORD minhanh2929 Res ult ITC pass luuminhvu5114@gmail.com minhanh2929 pass luuminhquyet20102015 minhanh2929 pass Chạy selenium webdriver + apache poi import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.concurrent.TimeUnit; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; 10 import org.apache.poi.xssf.usermodel.XSSFWorkbook; 11 import org.openqa.selenium.By; 12 import org.openqa.selenium.WebDriver; 13 import org.openqa.selenium.firefox.FirefoxDriver; 14 15 16 public class ReadExcellfile { 17 private static WebDriver driver = null; 18 public static XSSFWorkbook wordbook = null; 19 public static String filepath= "D:\\DRIVERSELENIUM\\Selenium_java poi_excell\\src\\testData\\Testdata.xlsx"; 20 public static String sheetname ="sheet1"; 21 public static void main(String[] args) throws IOException, InterruptedException { 22 23 // Tạo thể driver file fox 24 driver = new FirefoxDriver(); 25 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 26 //Khởi động facebook 27 driver.get("https://www.facebook.com/"); 28 // Doc file 29 int rowcount=0; 30 File file = new File(filepath); 31 FileInputStream stream = new FileInputStream(file); 32 wordbook = new XSSFWorkbook(stream); 33 XSSFSheet sheet = wordbook.getSheet(sheetname); 34 rowcount = sheet.getLastRowNum(); 35 for (int i =1; i