Báo cáo bài tập lớn TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MÔN KIỂM THỬ PHẦN MỀM Đề tài Nghiên cứu kĩ thuật kiểm thử Domain, Recovery và Concurrency. Nghiên cứu kĩ thuật kiểm thử miền, khôi phục và đồng thời
Báo cáo tập lớn TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN MÔN KIỂM THỬ PHẦN MỀM Đề tài: Nghiên cứu kĩ thuật kiểm thử Domain, Recovery Concurrency Giảng viên: Hoàng Quang Huy Nhóm số: Khóa: K14 Sinh viên thực hiện: Hoàng Hữu Kim Nguyễn Văn Lâm Nguyễn Thị Thùy Linh Hà Nội, 2022 Nhóm Báo cáo tập lớn LỜI NĨI ĐẦU Hiện nay, cơng nghệ thơng tin ngày phát triển với phát triển phần mền Có nhiều loại phần mềm, chủ yếu dành cho thiết bị máy tính, điện thoại, máy tính Chúng phục vụ cho nhiều mục đích khác đời sống, ví dụ: Phần mềm kế tốn, phần mềm vẽ kỹ thuật, phần mềm quản lý công việc, phần mềm quản lý hàng hóa,… Nhưng từ nảy sinh nhiều vấn đề lỗi hỏng hóc phần mềm khơng đáng có gây ảnh hưởng nghiêm trọng đến xã hội, kinh tế,…Để đảm bảo chất lượng phần mềm trước đưa sử dụng, tránh rủi ro cho khách hàng đưa phần mềm vào sử dụng, giảm thời gian chi phí phát sinh bảo trì (fix lỗi) cho người viết phần mềm kiểm thử tiến trình thiếu quy trình phát triển phần mềm Thật vậy, chương trình (các phần mềm) trở lên phức tạp đồ sộ Việc tạo sản phẩm bán thị trường địi hỏi nổ lực hàng chục, hàng trăm chí hàng ngàn nhân viên Số lượng dòng mã lên đến hàng triệu Và để tạo sản phẩm thì tổ chức đứng làm từ đầu đến cuối, mà đòi hỏi liên kết, tích hợp nhiều sản phẩm, thư viện lập trình, … nhiều tổ chức khác nhau… Từ đòi hỏi việc kiểm nghiệm phần mềm ngày trở nên quan trọng phức tạp Nhằm củng cố kiến thức mơn Kiểm thử phần mềm, nhóm chúng em nghiên cứu kĩ thuật kiểm thử phần mềm cụ thể Domain Testing, Recovery Testing Concurrency Testing Nhóm Báo cáo tập lớn LỜI CẢM ƠN Chúng em xin trân thành cảm ơn hướng dẫn bảo tận tình thầy Hồng Quang Huy - giảng viên mơn Kiểm thử phần mềm, trường Đại Học Công Nghiệp Hà Nội Thầy cho chúng em nhiều kiến thức quan trọng nhiều ý kiến đóng góp quý giá Tuy nhiên, trình lượng kiến thức cịn hạn chế, chúng em cố gắng tránh khỏi thiếu sót chúng em mong nhận ý kiến đóng góp thầy, giáo người quan tâm đến đề tài để đề tài chúng em hoàn thiện Lời cuối cùng, chúng em xin kính chúc thầy lời chúc sức khỏe, thành cơng sống Nhóm sinh viên thực Nguyễn Văn Lâm Hoàng Hữu Kim Nguyễn Thị Thùy Linh Nhóm Báo cáo tập lớn TÓM TẮT NỘI DUNG Đề tài “Nghiên cứu kĩ thuật kiểm thử Recovery, Domain Concurrency” giúp kiểm tra khả khôi phục phần mềm sau cố, kiểm tra xem hệ thống có chấp nhận đầu vào phạm vi chấp nhận hay khơng cung cấp đầu theo yêu cầu kiểm tra khả hệ thống chịu user thực hành động Nội dung tập lớn trình bày chương: Chương 1: Tổng quan kiểm thử phần mềm Chương 2: Recovery testing Chương 3: Domain testing Chương 4: Concurrency testing Nhóm Báo cáo tập lớn MỤC LỤC LỜI NÓI ĐẦU LỜI CẢM ƠN TÓM TẮT NỘI DUNG MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG CHƯƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Khái niệm 1.2 Vai trò kiểm thử phần mềm 1.3 Một số loại hình kiểm thử phổ biến 10 CHƯƠNG RECOVERY TESTING 11 2.1 Khái niệm 11 2.2 Vòng đời trình khôi phục - Life cycle of recovery process 11 2.3 Chiến lược khôi phục – Restoration strategy 13 2.4 Cách thực kiểm thử khôi phục 13 2.5 Quy trình kiểm tra sau khôi phục 14 2.6 Ưu điểm / Nhược điểm kiểm thử khôi phục 15 2.7 Ví dụ thực kiểm thử khơi phục 15 2.8 Tóm lại 16 CHƯƠNG DOMAIN TESTING 17 3.1 Giới thiệu Domain Testing 17 3.2 Thực hành đơn giản Domain testing (Simpler Practice of Domain Testing) 17 Kiểm tra đẳng thức tương đương 17 Giải thích: 18 Xây dựng bảng (trong thực tế) 18 3.3 Chiến lược kiểm thử tên miền (Domain Testing Strategy) 18 Chúng ta thử nghiệm miền nào? 19 3.4 Ví dụ kiểm thử miền (Domain Testing Example) 19 Làm để nhóm giá trị vào lớp? 19 Phân vùng tương đương 20 Phân tích giá trị ranh giới 20 Giá trị lớp cần kiểm tra? 20 Giá trị ranh giới: 20 Nhóm Báo cáo tập lớn 3.5 Tóm lại 20 CHƯƠNG CONCURRENCY TESTING 21 4.1 Khái niệm 21 4.2 Tại nên kiểm thử đồng thời 22 4.3 Ưu điểm kiểm thử đồng thời 22 4.4 Nhược điểm kiểm thử đồng thời 22 4.5 Ví dụ thực kiểm thử đồng thời 22 Thực test 100 user đồng thời 24 Thực test với lượng user lớn 1000 user 25 4.6 Tóm lại 25 ĐÁNH GIÁ VÀ KẾT LUẬN 26 PHỤ LỤC 27 TÀI LIỆU THAM KHẢO 28 Nhóm Báo cáo tập lớn DANH MỤC HÌNH ẢNH Hình Vịng đời q trình khơi phục 12 Hình Testcase kiểm thử khôi phục 15 Hình Minh họa đầu vào đầu biến kiểm thử miền 19 Hình Quá trình kiểm thử đồng thời 21 Hình Request thực tìm kiếm 23 Hình Tham số truy vấn thực tìm kiếm 23 Hình Thiết lập phần mềm Jmeter 24 Hình Kết test tổng quan 100 user đồng thời 24 Hình Kết test chi tiết user với trường hợp 100 user đồng thời 25 Hình 10 Kết test tổng quan với 1000 user đồng thời 25 Hình 11 Kết test chi tiết 1000 user đồng thời 25 Nhóm Báo cáo tập lớn DANH MỤC BẢNG Bảng Tỉ lệ công việc giai đoạn phát triển phần mềm Bảng Ví dụ bảng phân vùng tương đương 18 Nhóm Chương 1.Tổng quan kiểm thử phần mềm Báo cáo tập lớn CHƯƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Khái niệm Kiểm thử phần mềm hoạt động thực tiễn sản phẩm hay dịch vụ phần mềm môi trường chúng dự định triển khai nhằm cung cấp cho người có lợi ích liên quan thông tin chất lượng sản phẩm hay dịch vụ phần mềm Mục đích kiểm thử phần mềm tìm lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu hoạt động tối ưu phần mềm nhiều ngành khác Nội dung hoạt động kiểm thử bao gồm: - Kế hoạch kiểm thử Phương pháp kiểm thử Chiến lược kiểm thử kỹ thuật sử dụng 1.2 Vai trò kiểm thử phần mềm Việc tạo sản phẩm phần mềm phải trải qua nhiều giai đoạn, người ta gọi quy trình phát triển phần mềm, có ý tưởng đưa sản phảm phần mềm thực thi Khối lượng công việc giai đoạn trình sản xuất phần mềm thay đổi theo thời gian Giai đoạn Phân tích yêu cầu Hai thập kỉ 19601970 Thiết kế sơ Thiết kế chi tiết 10% Lập Tích hợp Kiểm trình kiểm thử đơn vị kiểm thử tích hợp thử hệ thống 80% 10% Thập kỉ 1980 20% 60% 20% Thập kỉ 1990 40% 30% 30% Bảng Tỉ lệ công việc giai đoạn phát triển phần mềm Như vậy, sản phẩm phần mềm không đơn giản đoạn mã chương trình mà nhiều lập trình mà cịn xảy cao cơng đoạn Nhóm Chương 1.Tổng quan kiểm thử phần mềm Báo cáo tập lớn khách quy trình phát triển sản phẩm phần mềm Việc kiểm thử vì phải tiến hành tất sản phần tạo nên sản phẩm phần mềm 1.3 Một số loại hình kiểm thử phổ biến Hiện nay, phát triển mạnh mã công nghệ phần mềm nên có số loại hình kiểm thử tiêu biểu như: - Kiểm thử phần mềm Desktop: ứng dụng cải đặt trực tiếp máy tính nhân Đây ứng dụng phổ biến - - Kiểm thử Web hay kiểm thử đám mây: với lớn mạnh Internet thì ứng dụng web ngày phát triển dần thay ứng dụng Desktop truyền thống Google Document, Microsoft web apps,… Kiểm thử Mobile: ngày xã hội với phát triển nhanh chóng, thiết bị di động (điện thoại thơng minh, máy tính bảng,…) có số lượng người dùng tăng lên chóng mặt, với số lượng phần mềm phục vụ cho nhu cầu tăng cao vì lĩnh vực đầy tiềm thách thức công nghệ phần mềm 10 Nhóm Chương Recovery testing Báo cáo tập lớn cấu hình máy ảo để bắt chước phần cứng có, bao gồm kích thước đĩa cấu hình khác Hệ thống lưu trực tuyến khơng phải ngoại lệ để thử nghiệm Hầu hết nhà cung cấp dịch vụ lưu trực tuyến bảo vệ khỏi bị tiếp xúc trực tiếp với cố phương tiện cách họ sử dụng hệ thống lưu trữ có khả chịu lỗi Trong hệ thống lưu trực tuyến đáng tin cậy, phải kiểm tra mặt khôi phục hệ thống để đảm bảo vấn đề gì với chức truy xuất, bảo mật mã hóa 2.5 Quy trình kiểm tra sau khơi phục Hầu hết tập đồn lớn có kiểm tốn viên độc lập để thực tập kiểm tra phục hồi theo định kỳ Chi phí trì thử nghiệm kế hoạch khắc phục hậu thiên tai tồn diện lớn bị cấm doanh nghiệp nhỏ Các rủi ro nhỏ dựa vào lưu liệu kế hoạch lưu trữ bên họ để cứu chúng trường hợp thảm họa Sau thư mục tệp khơi phục, thực kiểm tra sau để đảm bảo tệp khôi phục cách: Đổi tên thư mục tài liệu bị hỏng - Đếm tệp thư mục khơi phục khớp với với thư mục có - Mở vài tệp đảm bảo chúng truy cập Đảm bảo mở chúng ứng dụng thường sử dụng chúng Và đảm bảo bạn duyệt liệu, cập nhật liệu điều gì bạn thường làm - Tốt mở số tệp thuộc nhiều loại khác nhau, hình ảnh, mp3, tài liệu số tệp lớn số tệp nhỏ - Hầu hết hệ điều hành có tiện ích mà bạn sử dụng để so sánh tệp thư mục 14 Nhóm Chương Recovery testing Báo cáo tập lớn 2.6 Ưu điểm / Nhược điểm kiểm thử khôi phục Ưu điểm • Nó giúp làm cho hệ thống ổn định hơn, khơng có lỗi cải thiện chất lượng sản phẩm • Hệ thống trở nên đáng tin cậy lỗi xóa trước chúng vào hoạt động cải thiện hiệu suất hệ thống • Sao lưu ln trì để khơi phục liệu trường hợp có cố Nhược điểm: • Cần có tài ngun đào tạo để thực thử nghiệm Tester thực tương tự phải có tất liệu để kiểm tra, tức liệu tệp lưu • Kiểm thử khơi phục u cầu số bước phải thực trước kiểm thử nhiều bước thực hiện, điều làm cho trở thành q trình thời gian • Kiểm thử phục hồi trình tốn • Không phải tất lỗi tiềm ẩn tìm thấy vài trường hợp 2.7 Ví dụ thực kiểm thử khơi phục Mở trình duyệt Chorme máy tính thực bước kiểm thử khơi phục hình: Hình Testcase kiểm thử khơi phục ➢ Có kết mong muốn sản phẩm giỏ hàng, nhiên kết cịn lại thơng tin đặt hàng khơng lưu đóng tab ➢ Cần xem xét lại code 15 Nhóm Chương Recovery testing Báo cáo tập lớn 2.8 Tóm lại Những thất bại xảy lúc vì nhiều nguyên nhân tránh khỏi; kiểm tra phục hồi loại bỏ lỗi nghiêm trọng Nó làm cho hệ thống sẵn sàng phục hồi sau lỗi Tần suất thực kiểm tra khôi phục tỷ lệ nghịch với tác động cố hệ thống Do đó, kiểm tra thường xuyên đóng vai trị quan trọng để giảm thiểu tác động 16 Nhóm Chương Domain testing Báo cáo tập lớn CHƯƠNG DOMAIN TESTING 3.1 Giới thiệu Domain Testing Domain Testing hay gọi kiểm thử miền loại kiểm thử chức (Functional Testing) Nó thực cách đưa đầu vào đánh giá đầu Nó kỹ thuật kiểm thử phần mềm đầu hệ thống phải kiểm tra với số lượng đầu vào tối thiểu, trường hợp để đảm bảo hệ thống không chấp nhận giá trị đầu vào không hợp lệ Một phương pháp quan trọng White Box Testing Domain Testing Mục tiêu Domain Testing kiểm tra xem hệ thống có chấp nhận đầu vào phạm vi chấp nhận hay không cung cấp đầu theo u cầu.Ngồi ra, xác minh hệ thống khơng nên chấp nhận yếu tố đầu vào, điều kiện số bên phạm vi định hợp lệ 3.2 Thực hành đơn giản Domain testing (Simpler Practice of Domain Testing) Trong kiểm thử miền, chia miền thành tên miền phụ (các lớp tương đương) sau thử nghiệm sử dụng giá trị từ tên miền phụ Ví dụ, trang web (tên miền) đưa để thử nghiệm, chia trang web thành phần nhỏ ( tên miền phụ) để dễ kiểm tra Miền liên quan đến việc thử nghiệm biến đầu vào kết hợp biến đầu vào Các học viên thường nghiên cứu trường hợp thử nghiệm miền đơn giản hai tên khác, "kiểm tra ranh giới" "phân tích lớp tương đương" Thử nghiệm ranh giới - Phân tích giá trị ranh giới (BVA) dựa việc kiểm tra lý thuyết giá trị đầu vào không hợp lệ phân vùng / lớp Kiểm tra đẳng thức tương đương Ý tưởng đằng sau kỹ thuật phân chia (tức phân vùng), 'phân vùng tương đương' Biểu mẫu đơn giản áp dụng cho kiểm tra miền • Chỉ để kiểm tra biến đầu vào • Chỉ kiểm tra cấp hệ thống • Chỉ thử nghiệm lần • Chỉ thử nghiệm cách hời hợt • Nó đơn giản hóa sau: 17 Nhóm Chương Domain testing Báo cáo tập lớn Variable Valid Class Invalid Class Boundaries & Notes Equivalence Equivalence Special cases Class Class X 0-100 100 100 101 Bảng Ví dụ bảng phân vùng tương đương Giải thích: Nếu trường chấp nhận phạm vi từ 0-100, trường không chấp nhận -1 101 vì chúng mục nhập không hợp lệ vượt ranh giới Trường phải chấp nhận giá trị 0, 100 số chúng Xây dựng bảng (trong thực tế) Bắt đầu cách liệt kê biến, thêm thông tin chúng bạn nhận Điều có nghĩa tất biến đầu vào, tất biến đầu biến trung gian mà bạn quan sát Trong thực tế, hầu hết bảng mà nhìn thấy không đầy đủ.Những tốt nhìn thấy danh sách tất biến thêm chi tiết cho biến quan trọng 3.3 Chiến lược kiểm thử tên miền (Domain Testing Strategy) Trong kiểm thử miền, bạn cần cân nhắc điều sau đây, • Chúng ta thử nghiệm miền nào? • Làm để nhóm giá trị vào lớp? • Giá trị lớp cần kiểm tra? • Làm để xác định kết quả? 18 Nhóm Chương Domain testing Báo cáo tập lớn Chúng ta thử nghiệm miền nào? Sẽ có số biến đầu vào nhập vào đầu thích hợp phải xác minh Input functionality (Input Variables) Output functionality (Output Variables) Hình Minh họa đầu vào đầu biến kiểm thử miền 3.4 Ví dụ kiểm thử miền (Domain Testing Example) • Xem xét kịch thử nghiệm đầu vào đơn lẻ: • C = a + b, Trong a b biến đầu vào C biến đầu Ở ví dụ trên, khơng cần phân loại kết hợp biến yêu cầu • Xem xét nhiều đầu vào sau kịch đầu thích hợp: Vé mơ-đun kiểm tra toàn chức Triển lãm trị chơi Theo kịch bản, chúng tơi có sáu kịch dựa độ tuổi thi: - Tuổi > 10 10