Bài giảng được thiết kế dành cho sinh viên đại học ngành Công nghệ thông tin. Nội dung gồm có 5 chương, cung cấp cho người học những kiến thức như: Giới thiệu về kiểm thử; Kiểm thử trong quy trình phát triển phần mềm; Kiểm thử chức năng-Kiểm thử cấu trúc; Thiết kế các trường hợp kiểm thử;...Mời các bạn cùng tham khảo!
TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THÔNG TIN VÕ ĐỨC LÂN BÀI GIẢNG KIỂM THỬ PHẦN MỀM (Dùng cho sinh viên lớp đại học Công nghệ thông tin) Quảng Ngãi, 07 - 2020 TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THÔNG TIN VÕ ĐỨC LÂN BÀI GIẢNG KIỂM THỬ PHẦN MỀM (Dùng cho sinh viên lớp đại học Công nghệ thông tin) Lưu hành nội MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG GIỚI THIỆU VỀ KIỂM THỬ 1.1 Khái niệm lỗi 1.2 Khái niệm kiểm thử 1.3 Các bước kiểm thử 11 1.4 Kiểm chứng hợp thức hóa 13 1.5 Khái niệm hoạt động kiểm thử 13 1.6 Các nguyên tắc kiểm thử 15 1.7 Các khó khăn kiểm thử 19 1.7.1 Khó khăn liên quan đến quy trình phát triển phần mềm 19 1.7.2 Khó khăn mặt người 19 1.7.3 Khó khăn mặt kĩ thuật 20 1.8 Kết luận 20 Câu hỏi tập 21 CHƯƠNG KIẾM THỬ TRONG QUY TRÌNH PHÁT TRIỂN PHẦN MỀM 22 2.1 Các kĩ thuật kiểm thử 22 1 Phân nhỏm kĩ thuật kiểm thử 22 2.1.2 Sự hiệu kĩ thuật kiểm thử 25 2.1.3 Mục tiêu cùa nhóm kĩ thuật kiểm thử 26 2.2 Các quy trình phát triển phần mềm 28 2.2.1 Quy trình thác nước 28 2.2.2.Quy trình V 29 2.2.3 Quy trình xoắn 30 2.2.4.Quy trình hợp 30 2.2.5 Nhận xét 31 2.3 Các hoạt động kiểm thử quy trình phát triển phần mềm 32 2.3.1 kiểm thử đơn vị 33 2.3.2 Kiểm thử tích hợp 35 2.3.3 Kiểm thử hệ thống 38 2.3.4 Kiểm thử hồi quy 40 2.3.5 Kiểm thử chấp nhận 40 2.4 Kết luân 42 Câu hỏi tập 42 CHƯƠNG KIỂM THỬ CHỨC NĂNG - KIỂM THỬ CẤU TRÚC 43 3.1 Kiểm thử giá trị biên 44 3.2 Kiểm thử giá trị đặc biệt 50 3.3 Kiểm thử lớp tương đương 50 3.4 Kiểm thử dựa bảng định 57 3.5 Kiểm thử dựa đồ thị luồng điều khiển 65 3.5.1 Khái niệm đồ 66 3.5.2 Tiêu chí bao phủ định 70 3.5.3 Tiêu chí bao phủ cung 72 3.5.4 Tiêu chí bao phủ lộ trình 75 3.5.5 Tiêu chí bao phủ lộ trình độc lập 76 3.6 Kiềm thử dựa đồ thị luồng liệu 82 3.6.1 Đồ thị luồng liệu 82 3.6.2 Tiêu chí bao phủ định nghĩa 84 3.6.3 Tiêu chí bao phủ sử dụng 86 3.6.4 Tiêu chí bao phủ lộ trình định nghĩa sử dụng 86 3.7 Kiểm thử đột biến 89 3.7.1 Khái niệm kiểm thử đột biến 89 3.7.2 Một số khái niệm 90 3.7.3 Quy trình kiểm thử đột biến 93 3.7.4 Hạn chế kiểm thử đột biến 94 3.7.5 Ứng dụng kiểm thử đột biến 95 3.8 Kết luận 96 Câu hỏi tập 96 CHƯƠNG THIẾT KẾ CÁC TRƯỜNG HỢP KIỂM THỬ 98 4.1 Lập kế hoạch kiểm thử 98 4.2 Đặc tả thiết kế kiểm thử, ca kiểm thử thủ tục kiểm thử 100 4.2.1 Đặc tả thiết kế kiểm thử 100 4.2.2 Đặc tả ca kiểm thử 101 4.2.3 Đặc tả thủ tục kiểm thử 102 4.3 Lập báo cáo kiểm thử 103 4.3.1 Nhật kí kiểm thử 103 4.3.2 Báo cáo lỗi 104 4.3.3 Báo cáo kiểm thử 105 4.4 Kết luận 105 Câu hỏi tập 107 CHƯƠNG KIỂM THỬ TỰ ĐỘNG VÀ CÔNG CỤ KIỂM THỬ 108 5.1 Kiểm thử tự động 108 5.2 Đặc điểm kiểm thử tự động 110 5.2.1 Ưu điểm kiểm thử tự động 111 5.2.2 Vấn để kiểm thử tự động 111 5.2.3 Kiễm thử thủ công kiểm thử tự động 113 5.3 Quy trình kiểm thử tự động 114 5.4 Công cụ kiểm thử tự động 114 Câu hỏi tập 119 TÀI LIỆU THAM KHẢO 120 LỜI NÓI ĐẦU Chúng ta chứng kiến tăng trưởng đáng kinh ngạc ngành công nghiệp phần mềm vài thập kỷ qua Nếu trước phần mềm máy tính sử dụng để tính tốn khoa học kỹ thuật xử lý liệu ngày ứng dụng vào mặt của đời sống hàng ngày người, từ ứng dụng nhỏ để điều khiển thiết bị dùng gia đình thiết bị nghe nhìn, điện thoại, máy giặt, lị vi sóng, nồi cơm điện, đến ứng dụng lớn trợ giúp điều khiển phương tiện hệ thống giao thơng, trả tiền cho hố đơn, quản lý tốn tài chính, vân vân Vì người ngày phụ thuộc chặt chẽ vào sản phẩm phần mềm đòi hỏi chất lượng sản phẩm phần mềm ngày cao, tức phần mềm phải sản xuất với giá thành hạ, dễ dùng, an toàn tin cậy Kiểm thử có phương pháp hoạt động khơng thể thiếu quy trình sản xuất phần mềm để đảm bảo yếu tố chất lượng nêu sản phẩm phần mềm Bài giảng thiết kế dành cho sinh viên đại học ngành Công nghệ thông tin Nội dung xây dựng chương trình chi tiết học phần mơn Kiểm thử phần mềm ban hành Hy vọng giảng tài liệu bổ ích dành cho sinh viên ngành Công nghệ thông tin cảu Trường Đại học Phạm Văn Đồng Tuy nhiên hạn chế thời gian nên bà giảng cịn nhiều thiếu sót Mong nhận nhiều ý kiến đóng góp từ bạn đọc, đồng nghiệp Sinh viên Tác giả Võ Đức Lân Trang CHƯƠNG GIỚI THIỆU VỀ KIỂM THỬ Vào thập niên 1960 hay 1970, người sử dụng máy tính, ngày người làm việc văn phịng khơng thể làm việc thiếu máy tính Tất nhiên, ngày máy tính phát triển với tốc độ cao hàng nghìn lần Phần mềm sử dụng tác động đến công việc nhiều người phần mềm giúp cho người thực công việc hiệu qủa Như thế, việc phát triển phần mềm chất lượng trở nên quan trọng Quy trình phát triến phần mềm bao gồm nhiều giai đoạn nhiều hoạt động nhằm tạo sản phẩm phần mềm Trong đó, kiểm thử hoạt động đóng vai trị quan trọng nhằm phát lỗi phần mềm Kiếm thử phần mềm ngày trở nên khó khăn vi ngơn ngừ lập trình, hệ điêu hành, phương pháp phát triển phần mềm thiết bị phần cứng ngày phong phú đa dạng Một cách lí tưởng, muốn kiểm thử tất trường hợp thực thi chương trình Tuy nhiên, điều khơng thể thực dược Bởi vì, chí chương trình đơn giản thi có số lượng liệu vào lớn (hàng ngàn, hàng triệu ) Mặc dù theo kết thống kê, chi phí kiếm thử lớn, chiếm khoảng 50% tổng chi phí cho dự án phát triền phần mềm, nhiên lỗi phần mềm tồn gây thiệt hại lớn Chúng ta xem xét vài lỗi phần mềm nghiêm trọng Năm 1994, Công ty Disney tung thị trường phần mềm trò chơi Vua Sư tử (Lion King) dành cho trẻ Lúc giờ, có nhiều cơng ti chun sản xuất phần mềm trò chơi, Disney lần đặt chân vào thị trường Vì thế, chiến dịch quảng cáo phần mềm trò chơi rầm rộ Phần mềm bán chạy quà quý giá cho trẻ giáng sinh Tuy nhiên, điều không ngờ xảy Ngày 26 tháng 12, ngày sau lề giáng sinh, điện thoại nhóm hỗ trợ khách hàng Disney đố chuông liên tục Cha mẹ đứa trẻ phàn nàn phần mềm trò chơi khơng thể hoạt động Sau đó, nhiều báo tin tức truyền hình đưa tin vấn đề Cuối cùng, Disney phát phần mềm hoại động số máy tính mà đội ngũ lập trình sử dụng khơng hoạt động nhiều máy tính mà đa số khách hàng sử dụng Trang Ngày 21 tháng năm 1986, bệnh viện ung thư Tyler Texas, bệnh nhân Voyne Ray Cox thực chiếu tia xạ sau ca phẫu thuật Khi kĩ thuật viên thực khởi động máy gia tốc hạt, máy điều khiển hoàn toàn phần mềm máy tính, bệnh nhân cảm giác khác với lần trước, có phóng điện mạnh làm đau đớn Bệnh nhân đề nghị bác sĩ kiểm tra xem việc chiếu tia xạ có bình thường khơng Bác sĩ xem hình máy tính thấy ghi nhận việc chiếu tia xạ chưa thực thông điệp lỗi hiển thị Sau vài ngày bệnh nhân có triệu chứng biếu bị chiếu tia xạ cường độ cao, bệnh nhân chết sau tai nạn vài tháng Một tai nạn thứ hai xảy sau thời gian bệnh nhân khác chiếu tia xạ với kết thông điệp lỗi Bệnh nhân chết sau tháng Sau đó, người ta thực kiếm tra phần mềm điều khiển máy gia tốc Kết ghi nhận là, thay đổi vài tham số phần mềm nhận thơng điệp báo lỗi, máy phát tia xạ có cường độ mạnh gấp 100 lần tia xạ bình thường Một thời gian sau, nhà sản xuất máy có báo cáo phần mềm xây dựng lập trình viên họ, sinh lỗi có thay đối tham số Sau tai nạn này, hồ sơ lưu trữ bệnh án có nhiều trường hợp chiếu tia xạ có vấn đề khơng thể giải thích được phơi bày Trong chiến vùng Vịnh năm 1991, hệ thống phòng chống tên lửa Patriot Mỹ sử dụng để chống lại tên lửa Scud 1-rẳc Mặc dù có nhiều thành cơng hệ thống, nhiên có khơng thất bại, kể tai nạn giết chết 28 lính Mỹ Ả-rập Xê-Út Sau kiểm tra lại, người ta phát có lỗi phần mềm hệ thống Đó lỗi nhỏ thời gian : thời gian tích luỹ hệ thống vượt q 14 hệ thống dị tìm dấu vết khơng cịn hoạt động xác Trong trường hợp tai nạn Ả-rập Xê-út, hệ thống hoạt động 100 Trên số trường hợp nghiêm trọng lỗi phần mềm gây Chắc hẳn, “nạn nhân” phần mềm hoạt động tốt thời điểm đó, hồn tồn khơng hoạt động thời điểm khác Nếu phần mềm trị chơi hay phần mềm văn phịng vấn dề giải đơn giản cách tắt máy tính sau khởi động lại Tuy nhiên, lỗi phần mềm xuất tình gây thiệt hại lớn kinh tế hay tính mạng người (chăng hạn, trường hợp vừa nêu trên), hậu thật khủng khiếp Như thế, kiểm thử phần mềm không cịn cơng việc chun gia khoa học máy tính, phần mềm ngày sử dụng rộng rãi dời sổng ngày Kiểm thử phần mềm trở thành lĩnh vực khoa học mẻ đóng vai trị quan trọng khoa học máy tính Trang 1.1 Khái niệm lỗi Trước đề cập đến kiếm thử phần mềm, trước hết tìm hiếu số khái niệm liên quan đến lỗi Trong ví dụ trên, thấy phần mềm hoạt động không mong muốn Như thế, thông thường nội ràng phần mêm có lỗi Tuy nhiên, dùng nhiều thuật ngữ khác để mô tả : thất bại, sai sót, có vấn đề, bất thường, khơng hợp lí, khơng tương thích Cần phải định nghĩa rõ ràng khái niệm lỗi phần mềm Định nghĩa lỗi phần mềm dựa khái niệm đặc tả : đặc tả (specification) thống người phát triển phần mềm người phát triển phần mềm người sử dụng phần mềm Lỗi phần mềm xuất hay nhiều điều kiện sau [2](,): Phần mềm khơng thực mà đặc tả định nghĩa Phần mềm thực mà đặc tả khuyến cáo không nên thực Phần mềm thực mà đặc tả khơng đề cập đến Phần mềm khơng thực mà đặc tả không đề cập đến lẽ nên thực Phần mềm khó hiểu hay khó sử dụng Ví dụ kiếm thử chương trình tính toán phân số sau minh hoạ khái niệm lỗi Chương trình cho phép thực phép toán phân số: rút gọn, cộng, trừ, nhân chia Đặc tá định nghĩa chương trinh phải thực phép toán: rút gọn phân số, cộng, trừ nhân chia hai phân số Nếu thực phép tốn cộng hai phân số mà chương trình khơng hiển thị hiển thị kết qủa sai, dó lỗi ứng với điều kiện Đặc tả định nghĩa chương trình khơng nên chạy chế độ thường trú tiến trình Tuy nhiên, kích hoạt chương trình lại ln thường trú, làm tốn nhớ Đó lỗi ứng với điều kiện Khi kiểm thừ nhận thấy, phép toán rút gọn phân số cộng trừ nhân chia hai phân số, cịn có phép toán cộng, trừ, nhân chia n (n > 2) phân số vấn đề không đề cập đặc tả, lỗi ứng với điều kiện Sau thực phép toán nhân hai phân số 3/10 * 100/9, kết Trang xây dựng kế hoạch kiểm thử chi tiết cho mức kiểm thử đơn vị, tích hợp, hệ thống chấp nhận Ứng với kế hoạch kiểm thử chi tiết, đặc tả thiết kế kiểm thử xây dựng, gồm ca kiểm thử thủ tục kiểm thử Sau thực thi kiểm thử, kiểm thử viên phải xây dựng nhật kí kiểm thử báo cáo lỗi Khi hoàn thành kiểm thử, báo cáo tổng kết kiểm thử thực Báo cáo tổng kết kiểm thử nhật kí kiểm thử báo cáo lỗi xây dựng cho mức kiểm thử đơn vị, tích hợp, hệ thống chấp nhận Cuối cùng, báo cáo kiểm thử chung xây dựng từ báo cáo kiểm thử mức Việc xây dựng tập tài liệu kiểm thử địi hỏi chi phí lớn thời gian công sức Không phải tất tổ chức phát triển yêu cầu tất tài liệu kiểm thử Một tổ chức hay dự án cụ thể nên mô tả tài liệu kiểm thử cần thiết nội dung định dạng tài liệu Các tài liệu kiểm thử chương trình bày ngắn gọn Bạn đọc quan tâm tìm hiểu chi tiết mẫu theo chuẩn IEEE tài liệu [7] Kế hoạch kiểm thử Kế hoạch chung kiểm thử Đặc tả thiết kế kiểm thử Đặc tả thiết Đặc tả thiết kế kiểm thử kế kiểm thử Đặc tả thiết kế Đặc tả thiết kế kiểm thử kiểm thử Báo cáo kiểm thử chung Báo cáo kiểm thử Hình 4.3 Quan hệ tài liệu kiểm thử Trang 106 Câu hỏi tập Tại lập kế hoạch kiểm thử lại quan trọng? Hãy cho biết tài liệu kiểm thử xây dựng trước, sau thực kiểm thử Mô tả mục tài liệu kế hoạch kiểm thử Hãy nêu loại kế hoạch kiểm thử dự án phần mềm Các tài liệu đặc tả thiết kế kiểm thử, ca kiểm thử thủ tục kiểm thử nhằm mục đích gì? Tài liệu nhật kí kiểm thử thực chứa nội dung gì? Tài liệu báo cáo lỗi thường chứa mục nào? Trang 107 CHƯƠNG KIỂM THỬ TỰ ĐỘNG VÀ CƠNG CỤ KIỂM THỬ Chúng ta biết chi phí kiểm thử lớn chiếm khoảng 405 tổng chi phí cho dự án phát triển phần mềm Nhiều nghiên cứu kỉ thuật giải pháp quy trình nhằm giảm chi phí thời gian kiểm thử Trong kiểm thử tự động xem giải pháp hiệu nay, có nhiều công cụ phát triển nhằm giúp cho kỉ sư tự động hóa quy trình kiểm thử Kiểm thử tự động giảm đáng kể chi phí kiểm thử tăng đáng kể việc thực kiểm thử thời gian định kiểm thử tự động thực vài phúc, kiểm thủ thủ cơng thực vài Trong nhiều trường hợp, kiểm thử tự đồng khồn giảm chi phí lập tức, cho phép tạo phần mền chất lượng tốt nhanh so với kiểm thử tự đông 5.1 Kiểm thử tự động Kiểm thử tự động nhằm nói đến việc tự đồng hốc hoạt động quy trình kiểm thử phần mềm cách sử dụng giải pháp có tính hệ thống để đạt bao phủ kiểm thử tốt Mục tiêu kiểm thử thủ cơng nhàm chán khơng cần thiết - Tăng tốc quy trình kiểm thử phần mền, giảm chi phí thời gian quy trình phát triển phần mềm - Tăng chất lượng hiệu quy trình kiểm thử phần mền việc đạt tiêu chí kiểm thử khoảng thời gian hạn chế Mỗi tổ chức phát triển phần mềm có sách tự động kiểm thử khác Một tổ chức tự động hóa quy đình kiểm thử nói chung nhằm áp dụng tái sử dụng cho dự án sản phẩm tổ chức Các hoạt động kiểm thử củng phát triển cho loại sản phẩm tổ chức hoạt động kiểm thử củng phát triển cho loại sản phẩm hoạc cho dự án cụ thể Tự động hóa quy trình kiểm thử thành năm mức {13} (hình 5.1) Trang 108 Hình 5.1 Các mức kiểm thử tự động Mức 0: Khơng sử dụng cơng cụ quy trình kiểm thử mức quy trình thủ cơng, khơng sử dụng cơng cụ kiểm thử hỗ trợ Mức 1: Bắt đầu Quy trình kiểm thử mức cung cấp giải pháp công cụ tự động đẻ tạo, cập nhạt quản lý loại thông tin liên quan đến hoạt động kiểm thử, yêu cầu kiểm thử, ca kiemr thư, dự liệu thử, thủ tục kiểm thử, kết kiểm thử, báo cáo lỗi báo cáo kiểm thử khơng có giải pháp công cụ hỗ trợ thiết kế kiểm thử, ạo dử liệu thực thi kiểm thử Mức 2: lặp lại: quy trình kiểm thử mức khơng cung cấp giải pháp công cụ tự động để quản lý thơng tín kiểm thử, mà cịn củng cấp giải pháp để thực thi kiểm thử cách tự động giải pháp cho phép sử dụng kỉ thuật công cụ thực thi kiểm thử đánh giá kết kiểm thử Các công cụ phân tích bao phủ kiểm thủ dự mã nguồn sử dụng để đánh giá kiểm thử hợp trắng nhiên, khơng có giải pháp cơng cụ hỗ trợ thiết kế kiểm thủ (hay chi phí kiểm thủ) đánh giá hiệu quy trình kiểm thử so với tiêu chí cho trước Mức 3: Tự động: quy trình kiểm thử mức không sử dngj công cụ để tự động quản lý thông tin kiểm thử thực thi kiểm thử, mà cung cấp giải pháp để tạo ca kiểm thử cách tự động nhiên, khơng có công cụ đo lường khả kiểm thử đánh giá hiệu quy trình kiểm thử so với tiêu chí cho trước Mức 4: tối ưu Đây mức tự động hóa kiểm thử phần mềm cao giải pháp công cụ tự động quản lý thông tin, thực thi kiểm thử, tạo ca kiểm thử, đo lường, phân tích kiểm thử đánh giá hiệu kiểm thử Trang 109 Các mức đánh giá kiểm thử tự động sử dụng để kiểm tra quy trình kiểm thử tự động mộ dự án/ sản phẩm hay tổ chức phát triển phần mềm 5.2 Đặc điểm kiểm thử tự động Để thực kiểm thử tự động, kỉ sư cần có hiểu biết kỉ định kiểm thử tự động yêu cầu cần thiết để thực kiểm thử tự động gồm {8,11,13} Nhân lực chuyên môn kiểm thử tự động: kiểm thử tự động địi hổi có đội ngũ chuyê môn, chịu trách nhiệm lập kế hoạch, thiết kế, cài đặt triển khai giải pháp tự động cách làm việc với lập trình viên kiểm thử viên Trước hết, đội ngũ cần xác định yêu cầu mục tiêu kiểm thử tự động sau đó, cần lựa chọn phát triển cơng cụ hỗ trợ Bước tiếp theo, cần triển khai đánh giá giải pháp tự động cuối cùng, đội ngũ chuyê môn phải đào đạo kỉ sư bảo trì cơng cụ phát triển khơng có đủ chuyên môn thế, giải pháp kiểm thử tự động trở nên hiệu quả, chi phí cao khó bảo trì Sự cam kết người quản lý kỉ sư Ngoài cam kết ngân sách thời gian, người quản lý kỉ sư cần phải cam kết chi phí cho: + hiểu vè kiểm thử tự động + Thiết lập kế hoạch, chiến lược tảng kiểm thử tự động cho dự án sản phẩm hay tổ chức + phát triển bảo trì giải pháp tự đồng; + học sử dụng công cụ kiểm thử tự động - Ngân sách thời giản Kiểm thử tự động đồi hỏi ngân sách chi phí định cho lập kế hoạch, phát triển hay mua công cụ, triển khai, đào tạo, bảo trì giải pháp công cụ tự động - Kế hoạch chiến lược kiểm tử tự động Cần Định nghĩa rõ ràng mục tiêu kiểm thử tự động, sản phẩm đạt được, sách chon lựa đánh giá cơng cụ, tiêu chí kiểm thử - Cơng cụ kiểm thử Các công cụ cần phải dược đánh giá trước triển khai sử dụng - Bảo trì cơng cụ nhiều trường hợp chi phí bảo trì cơng cụ đáng kể chi phí bảo trì cao nhiều so vơi chi phí kiểm thử thủ cơng, việc kiểm thử tự động cần phửi cân nhắc Trang 110 5.2.1 Ưu điểm kiểm thử tự động Kiểm thử tự dộng cho phép thực công việc kiểm thử hiệu nhiều so với kiểm thử thủ cơng Ngồi ra, xem xét thêm số ưu điểm khác kiểm thử tự động [4] Thực kiểm thử hồi quy: phần mềm trình phát triển hay bị sửa chi phí để thực kiểm thử hồi quy giảm đáng kể Thực thi nhiều ca kiểm thử hơn: ưu rõ ràng kiểm thử tự động thực thi nhiều ca kiểm thử khoảng thời gian Như thế, phần mềm tin cậy Thực kiểm thử khó hay khơng thể thực thủ cơng: có loại kiểm thử khơng thể thực thủ công, nhu kiểm thử hiệu Chẳn hạn, thực kiểm thử thủ công ứng dụng mua bán hàng trực tuyens với 1000 người sử dụng đăng ngập lúc Trong khi, thủ công cụ kiểm thử mơ hàng nghìn người sử dụng cuối đăng nhập lúc vào ứng dụng - Sử dụng nhân lực hiệu hơn: tự động hóa công việc nhàm chán, chẳn hạn việc nhập đị nhập lại liệu vào, mang lại xác cao củng cải thiện tinh thần kiểm thử viên giải phóng kiểm thử viên có kỉ nhằm thiết kế ca kiểm thử chất lượng Tất nhiên, củng có cơng việc kiểm thử phải thực thủ công, kiểm thử viên dàh thời gian để thực tốt cơng việc - Kiểm thử thực quán dễ dàng lặp lại kiểm thử thực tự động lặp lặp lại cách xác Kiểm thử thực cách quán, điều khó thực kiểm thử thủ công Cùng kiểm thử thực thi cấu hình khác nhau, sử dụng hệ điều hành môi trường phần mềm khác - Hoàn thành sớm sản phẩm: Một kiểm thử tự động gháo kiểm thử thực nhanh lặp lại dể dàng Vì thời gian phát triển sản phẩm rút ngắn - Tăng độ tin cậy Khi số lượng lớn ca kiểm thử với chi phí nâng cao chất lượng củng hiệu suất phát triển phần mềm 5.2.2 Vấn để kiểm thử tự động Khi thực kiểm thử tự động, thường gặp phải số vấn đề phổ biến [3] Trang 111 Tự động hóa quy trình kiểm thử khơng tốt: quy trình kiểm thử tự thủ công không tốt, thủ tục kiểm tra chất lượng, phương pháp kiểm thử tiêu chí bao phủ kiểm thử không định nghĩa rõ ràng Tự động hóa quy trình kiểm thử thường chi phí cao, hiệu nhiều lý do: ca kiểm thử quy trình khơng hiệu phát lỗi, thể tự động hóa kiểm thử củng không hiệu phát lỗi; kỉ sư không sẵn sàng tham gia tự động hóa kiểm thử Vì họ thiểu hiểu biết kiểm thử tự động; thủ tục kiểm tra chất lượng, phương pháp kiểm thử tiêu chí bao phủ kiểm thử khơng dịnh nghĩa rã ràng khơng thể phát triển giải pháp công cụ tự động hóa hiểu Quyết định chậm trễ việc tự động hóa kiểm thử quy trình phát triển phần mềm nhiều trường hợp, kiểm thử tự động không trọng khơng cịn đủ thời gian hay nhân lực đẻ thực kiểm thử thủ công Các hoạt động kiểm thử tự động tiến hành trể quy trình phát triển gây nên vấn đề nghêm trọng Thứ nhất, trễ kĩ sư để lập kế hoạch thực kế hoạch kiểm thử tự động hiệu Thứ hai, trễ đẻ nghĩ đến ngân sách thơi gian cho kiểm thử tự động - Mục tiêu khơng thực tế: có thể, người quản lý kĩ sư đặt mục tiêu khó đạt họ kì vọng kiểm thử tự động giải tất vấn đề - Cho kiểm thử tự động phát nhiều lỗi lầm Nếu kiểm thử tự động thay kiểm thử thủ công nhằm dể dàng thực thi nhiều lần ca kiểm thử, khã phát thêm lỗi thấp - Khả bao phủ kiểm thử thấp Các kĩ sư trọng đến việc lập trình để tự động hóa kiểm thử, dẫn đến hiệu bao phủ kiễm thử thấp - Bảo trì ca kiểm thử tự động hóa: Khi phần thay đổi, cần cập nhật lại số tất ca kiễm thử để chúng thực thi chi phí bảo trì nêu cao chi phí thực thi thủ cơng ca kiểm thử này, kiểm thử tự động bị loại bỏ - Thiếu kinh nghiệm hiểu biết kiểm thử tự động: Nếu thiếu kĩ sư có kiến thức kinh nghiệm kiểm thử tự động, dẫn đến kế hoạch kiểm thử, giải pháp kiểm thự tự động không hiệu công cụ kiểm thử chất lượng thấp - Vấn đề tổ chức phát triển: Kiểm thử tự động cần phải hỗ trợ đội ngũ quản lí Tổ chức phát triển phần mềm cần cam kết đầu tư nhân lục có kĩ năng, ngân sách thời gian cho kiểm thử tự động Trang 112 5.2.3 Kiễm thử thủ công kiểm thử tự động Kiểm thử thủ công kiểm thử tự động có ưu nhực điểm khác Bảng 5.1 phân tích khác biệt kiểm thử thủ công kiểm thử tự động Truyền hình, sau xem lại Nghĩa là, thực thi kiềm thử thù công, chún ta thực chức “ghi”, sau thực thi lại kiếm thử ghi Loại công cụ sử dụng ngôn ngữ script để ghi lại kiếm thử Tuy nhiên, script thường khó bào trì, vì: - Nó gắn liền với giao diện phần mềm ; - Nó phụ thuộc vào trạng thái ngữ cành phần mềm thời điểm script tạo ; - Dữ liệu thử nhúng vào script Các vấn đề giải quyết, chinh sửa scrip Tuy nhiên, việc có thề nhiều thời gian hem thực thi lại kiêm thử mí cách thủ cơng Thế hệ cơng cụ thực thi kiểm thử dược cải tie phương pháp hướng liệu (data-driven approach) băng cách tách rời c liệu thừ khỏi script điều khiển Như thế, script sừ dụng nhiều liệu thừa khác thêm liệu thử không cần phải thay đổi script điều khiến Tuy nhiên, phương pháp hướng liệu yêu cầu chi phí ban đầu để phát triển script kiểm thử viên phải có kĩ lập trình Gần đây, cơng cụ thực thi kiểm thứ áp dụng phương pháp hướng từ khoá (keyword-driven approach) Phưong pháp cải tiến phương pháp hướng liệu, từ khoá lưu tệp liệu thừa, biểu diễn cho chức ứng dụng Tệp liệu thử không đơn mô tà liệu mà cịn mơ tà cần thực (thơng qua từ khố - hành dộng hay chức năng) Phương pháp yêu cầu phải phát triển chức ứng với từ khoả Tuy nhiên, chức độc lập với liệu thử độc lập với script diều khiển Việc phát triển chức phụ thuộc vào phần mềm cần kiểm thừ Các công cụ thực thi kiềm thử thường hỗ trợ số chức sau : - Ghi liệu vào thực thi thủ công, lưu kết mong đợi" so sánh lần thực thi tới; - Thực thi kiểm thừ từ script điều khiển tệp liệu thử ; - So sánh kết kiểm thử ; - Ghi nhận kết quà kiếm thử ; Trang 113 - Đo lường thời gian kiểm thử 5.3 Quy trình kiểm thử tự động Để thực kiểm thử tự động, quy trình kiểm thử phải hỗ trợ tốt hoạt động kiểm thử tự động phát triển giải pháp tự động Các bước quy trình kiểm thử tự động - Lập kế hoạch kiểm thử tự động: Bước quy trình kiểm thử tự động nhằm phát triển kế hoạch xác định mục tiêu, chiến lược, yêu cầu, tiến độ ngân sách Kế hoạch kiểm thử tự động thường phát triển cho dự án cụ thể - Thiết kế giải pháp kiểm thử tự động: Bước nhằm đưa giải pháp tự động hóa đạt mục tiêu yêu cầu đặt kế hoạch Xác định hoạt động tự động hóa, quản lý thông tin kiểm thử, thực thi kiểm thử, tạo ca kiểm thử - Phát triển giải pháp kiểm thử tự động: Giải pháp kiểm thử tự động yêu cầu hoạch nhiều công cụ kiểm thử Các cơng cụ kiểm thử xây dựng tổ chức phát triển chọn lựa cơng cụ có để sử dụng Nếu tự xây dựng, cần đảm bảo công cụ đáp ứng chất lượng tin cậy Nếu sử dụng cơng cụ có, cần đánh giá tiêu chí chức năng, khả sử dụng, khả hỗ trợ, giá, thương hiệu… - Triển khai giải pháp kiểm thử tự động: Bước nhằm thực hoạt động kiểm thử, thiết kế ca kiểm thử, báo cáo đánh giá kết Bên cạnh đó, kiểm thử tự động, việc đào tạo hỗ trợ người sử dụng đóng vai trị quan trọng - Đánh giá kiểm thử tự động: Khi triển khai thực giải pháp kiểm thử tự động mới, việc đánh giá ưu nhược điểm giúp cho nhóm kiểm thử có cải tiến tốt 5.4 Công cụ kiểm thử tự động Các công cụ hỗ trợ tạo ca kiểm thử, liệu thử (là phần ca kiểm thử) Nếu tồn phán xét kiềm thử tự động, cơng cụ xây dựng kết mong đợi tạo ca kiếm thừ Các cơng cụ tạo kiếm thừ gồm hai lóp : - Cơng cụ tạo kiểm thử hộp trắng Các liệu thử lạo dựa mã nguồn mô hỉnh thiết kế biếu diễn cấu trúc chương trinh cách sử dụng kĩ thuật kiểm thử hộp trang, kiểm thử dựa luồng diều khiên, kiếm thử dựa luồng liệu Trang 114 - Công cụ tạo kiểm thử hộp đen Các liệu thử tạo dựa đặc yếu cẩu cách sử dụng kĩ thuật kiểm thử hộp đen, kiểm thử giá trị biên, kiếm thử lóp tương dương Một loại công cụ thiết kế kiểm thử khác hỗ trợ chọn lựa kết họp liệu thừ đê kiêm thử, nhằm dảm bào bao phù kiểm thử tốt với chi phí thấp nhất, chẳng hạn sử dụng kĩ thuật kiểm thử cặp (pairwise testing) Một loại công cụ thiết kế kiếm thử khác dựa giao diện người sử dụng đô xác định tất phần từ giao diện (nút, danh sách, trường nhập liệu ) thực kiểm thử mồi phần tử Chang hạn, tất nút phải kích chọn tất danh sách phải chọn Các công cụ hỗ trợ thiết kế kiểm thử thường hỗ trợ chức : - Tạo dừ liệu thử từ đặc tả u cầu, mơ hình thiết kế, mã nguồn, giao diện người sử dụng ; - Tạo kết mong đợi, tồn phán xét kiểm thừ 5.4.1 Công cụ hỗ trợ kiếm thử tĩnh Các công cụ mục hỗ trợ tự động hố hoạt động kiểm thứ tĩnh Cơng cụ hỗ trợ quy trình thẩm định Các cơng cụ hỗ trợ thấm định thường gồm chức sau : - Cung cấp tài liệu tham khảo (luật, thủ tục, danh sách vấn đề cân thẩm định ) cho quy trình thấm định ; - Lưu trữ xếp thích/nhận xét; - Trao đồi thích/nhận xét với người liên quan ; - Lưu vết cùa thích/nhận xét; - Cung cấp quan hệ thích/nhận xét, tài liệu dược thẩm định tài liệu liên quan ; - Giám sát trạng thái thẩm định (dạt, đạt với chỉnh sửa hay thấm định lại); - Thu thập dộ 5.4.2 Cơng cụ phân tích tĩnh Cơng cụ phân tích tĩnh thường sử dụng lập trình viên Đầu vào Trang 115 công cụ phân tích tĩnh mã nguồn Cơng cụ phân tích tĩnh thường mở rộng chương trình dịch Các cơng cụ phân tích tĩnh gồm chức : - Tính độ đo liên quan đến mã nguồn, chẳng hạn độ đo McCabe ; - Kiểm tra chuẩn lập trinh ; - Phân tích luồng điều khiển, phân tích luồng liệu ; - Xác định lỗi hay khiếm khuyết mã nguồn 5.4.3 Công cụ phân tích bao phủ kiểm thử Cơng cụ phân tích bao phù trước hết xác định thành phần cần bao phủ sau dó xác định ca kiểm thử kích hoạt (bao phủ) thành phần Ở mức kiổm thử đơn vị, thành phần bao phủ có thề câu lệnh, rẽ nhánh hay lộ trinh Ớ mức kiểm thừ tích hợp, thành phần bao phù lời gọi hàm/mô-đun mức kiểm thử hệ thống, thành phần bao phủ phát biếu u cầu Cơng cụ phân tích bao phủ thường hỗ trợ chức : - Xác định thành phần bao phủ ; - Tính tốn phần trăm thành phần bao phù bời kiểm thử ; - Xác định thành phần bao phủ chưa thực thi ; - Xác định liệu kích hoạt thành phần bao phù chưa thực thi (chức công cụ thiết kế kiểm thử) 5.4.4 Công cụ kiếm thử đo lường hiệu Các công cụ kiểm thử đo lường hiệu áp dụng phần mềm dang thực thi, chúng sử dụng trình kiểm thừ sau phần mềm triển khai hoạt động Công cụ phân tích động Các cơng cụ phân tích gọi "’động’' bời vi chúng phân tích mã nguồn thực thi (với ca kiểm thử hay vận hành) Chẳng hạn, máy tính thực thi ngày chậm, khởi động lại, máy tính hoạt dộng bình thường Điều rị ri nhó (memory leak), phần mềm khơng giải phóng tốt nhớ Các cơng cụ phân tích dộng cỏ thể giúp phát lỗi Các công cự phân tích động hỗ trợ chức : - phát rò ri nhớ ; Trang 116 - xác định lỗi trỏ ; - xác định phụ thuộc thời gian Công cụ kiếm thử hiệu Các công cụ kiểm thứ hiệu nhầm đánh giá khả phần mềm chịu dựng hoạt động sức tải xác định trước Các công cụ kiểm thử hiệu hỗ trợ chức : - Tạo sức tủi phần mềm cần kiểm thử ; - Đo lường giao tác sức tải thay đổi; - Đo lường thời gian trả lời trung bình ; - Tạo dồ thị thời gian trả lời Công cụ giám sát Các công cụ giám sát liên tục theo dõi trạng thái phần mềm hoạt dộng, nhàm dưa khuyến cáo vấn đề xảy hay cải tiến dịch vụ Có cơng cụ giám sát cho máy chủ, mạng, sở liệu, an ninh, hiệu năng, ứng dụng vveb ứng dụng khác Các cơng cụ giám sát hỗ trợ : - Xác dịnlì vấn đề gứi cành báo ; - Ghi nhận thông tin lịch sử vận hành ;xác định cấu hình cài đặt tối ưu ; - Giám sát số lượng người sử dụng ; - Giám sát lưu lượng truyền thông 5.4.5 Chọn chọn cơng cụ kiểm thử Khi muốn tự động hố kiểm thử, chúng la cần chọn lựa công cụ kiểm thử Việc chọn lựa công cụ không nên xuất phát từ cơng cụ có thị trường, mà nên dựa vào dánh giá nhu cầu tổ chức phát trien Việc chọn lựa cơng cụ xem dự án, cần đàu tư ngân sách, nhân lire thời gian Chọn lựa công cụ nên thực hiộn nhóm, dó có trường nhóm chịu trách nhiệm Việc chọn lựa cơng cụ kiểm thử nên thực theo bước sau : - Xác định yêu cầu tổ chức, cần xác định vấn đề cần giải kiểm thử, mà cơng cụ cung cấp giải pháp Chẳng hạn, công việc kiếm thử thu công lặp lặp lại nhàm chán nhiều thời gian Đối với vấn đề, nên xem xét giải pháp khác nhau, kê cà giải pháp không sử dụng Trang 117 công cụ Xác định ràng buộc Một xác định rõ vấn đề kiểm thử cần giải quyết, nênxem xét ràng buộc cần đáp ứng lựa chọn công cụ + Ràng buộc môi trường Các cơng cụ phần mềm, nên cỏ thể có ràng buộc phần mềm, phần cứng hệ điều hành + Ràng buộc nhà cung cấp công cụ Có uy tín quan hệ' tốt với nhà cung cấp quan trọng + Ràng buộc chi phí Bao gồm chi phí mua cơng cụ, chi phí tạo, phần mềm, phần cứng bổ sung, chi phí báo tri + Ràng buộc sách Các yếu tố sách cỏ thể loại bó ràng buộc yêu cầu khác + Ràng buộc chất lượng Các yêu cầu chất lượng chức phi chức công cụ Xác định mua công cụ hay xây dựng công cụ Sau xác định ycu cầu ràng buộc, đến định mua cơng cụ hay xây dựng cơng cụ Nếu mua cơng cụ, chi phí phải thấp chi phí tự xây dựng công cụ với chức chất lượng, công cụ phải hỗ trợ tốt tài liệu đào tạo Neu tự xây dựng cơng cụ, thi sể đáp ứng tốt yêu cầu công cụ phù hợp với phần mềm cần kiểm thừ, giảm chi phí triển khai tự động hố, nhiên, nỏ khơng hỗ trợ tốt tài liệu đào tạo Nếu tự xây dựng, không nên xây dựng công cụ tương đương công cụ thương mại, chi cần xây dựng cơng cụ nhị dơn giàn đáp ứng yêu cầu đặt Xác định cơng cụ có thị trường Neu xác dịnh mua công cụ, cân phái đánh giá cơng cụ có lập danh sách công cụ dáp ứng yêu cầu ràng buộc So sánh công cụ danh sách So sánh cơng cụ mặt: chức năng, bảo trì script kiếm thừ giá cà Ngoài ra, dùng thử giúp hiêu rõ công cụ đáp ứng yêu cầu ràng buộc đặt Quyết định Sau đánh giá danh sách cơng cụ, có thố dề xuất mua cơng cụ dáp ứng yẽu cầu ràng buộc đặt Trang 118 5.6 Kết luận Trong chương này, dã xem xét vấn đề liên quan đến kiếm thử tự động Mục tiêu kiếm thử tự dộng nhằm giải phóng người khỏi cơng việc nhàm chán, thường lặp lặp lại hay thực công việc dược thực bời kiểm thử thù cơng Kiềm thử tự dộng có nhiều ưu diếm, nhiên, có nhũng hạn chế định Kiềm thử tự động luôn hiệu chi phí thấp so với kiếm thử thủ công Chúng ta dã xem xét so sánh đặc diểm kiểm thư thủ công kiêm thứ tự dộng Quy trình kiếm thử tự động nói chung dược điều chinh so với kiểm thử thủ công, đặc biộl hoạt động liên quan đến công cụ kiêm thừ Không tồn công cụ tự dộng hố hoạt động kiềm thừ Tuy nhiơn, tồn nhiều công cụ kiếm thứ khác Chúng ta dã phân loại nêu dặc diểm cúa loại công cụ kiếm thử Cuối cùng, việc chọn lựa công cụ đáp ứng yêu cầu kiểm thử cho dự án hay tổ chức cụ thể dược thảo luận Trong khuôn khổ tài liệu này, chúng tơi giới hạn trình bày tơng quan kiếm thử tự dộng, khơng trình bày chi tiết phương pháp kiêm thử tự dộng công cụ kiểm thử Câu hỏi tập Nêu mục đích kiểm thử tự động Nêu đặc điểm kiểm thử tự động Giải thích mức tự động hóa quy trình kiểm thử Phân tích ưu điểm nhược điểm kiểm thử tự động Phân tích đặc điểm kiểm thử tự động kiểm thử thủ công So sánh quy trình kiểm thử thủ cơng quy trình kiểm thử tự động Mô tả loại công cụ kiểm thử Tại kiểm thử tự động ln ln hiệu giảm chi phí? Trang 119 TÀI LIỆU THAM KHẢO [1] Nguyễn Thanh Bình, Kiểm thử phần mềm , NXB GDVN, 2013 [2] Phạm Ngọc Hùng, Trương Anh Hùng Đặng Văn Hưng, Giáo trình Kiểm thử phần mềm Khoa CNTT, ĐH Công Nghệ Hà Nội, 2014 [4] Ngô Trung Việt , Kỹ nghệ phần mềm tập 1,2,3 , NXB GD, 2001 [5] Lê Đức Trung, Công nghệ phần mềm, NXB KH&KT, 2002 [6] Cem Kaner, Jack Falk, and Hung Q Nguyen, Testing Computer Software , John Wiley Inc, 1999 [7] Kshirasagar Naik, Priyadarshi Tripathy, Sotware Testing and Quality Assurance Theory and practice, John Wiley & Son Inc., 2008 Trang 120 ... dụng Kiểm thử hệ thống bao gồm nhiều loại kiểm thử khác nhau, kiểm thử chức năng, kiểm thử bảo mật, kiểm thử cấu hình, kiểm thử khả chịu tải, kiểm thử hiệu năng, kiểm thử độ tin cậy, kiểm thử. .. sửa Kiểm thử hồi quy không xem hoạt động kiểm thử khác Đúng hơn, kiểm thử hồi quy giai đoạn kiểm thử đơn vị, kiểm thử tích hợp kiểm thử hệ thống, minh hoạ Kiểm thử hồi quy Kiểm thử đơn vị Kiểm thử. .. thành phần [6] -Kiểm thử dược mô tả thủ tục thực nhằm đánh giá vài mặt phần mềm [4] -Kiểm thử mơ tả quy trình sử dụng để phát lỗi phần mềm, để xác định phần mềm đạt chất lượng đặt [4], -Kiểm thử