KIỂM THỬ PHẦN MỀM NGHIÊN CỨU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LUẬN KIỂM THỬ,Kiểm thử hộp trắng nhằm kiểm tra mã nguồn phần mềm: Cơ bản là xác minh các lỗ hổng thiếu sót, khiếm khuyết trong các mã nguồn. Kiểm tra các đường dẫn (Path) bị hỏng hoặc không đầy đủ trong mã nguồn. Kiểm tra dòng chảy của cấu trúc đề cập đến trong tài liệu đặc tả. Kiểm tra xem có các dead code (mã chết) trong mã nguồn hay không Kiểm tra các kết quả đầu ra có như mong đợi? Kiểm tra các vòng lặp, các điều kiện trong các mã nguồn có thực hiện đúng không?
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN - BÁO CÁO BÀI TẬP LỚN THUỘC HỌC PHẦN: KIỂM THỬ PHẦN MỀM NGHIÊN CỨU VÀ ĐÁNH GIÁ CÁC PHƯƠNG PHÁP LUẬN KIỂM THỬ GVHD: Ths Hoàng Quang Huy Nhóm: Thành viên: Lớp: 20212IT6013002 Khóa: 14 Hà nội, 2022 LỜI NĨI ĐẦU Trong thời buổi cơng nghệ thơng tin có mặt khắp lĩnh vực, tổ chức cá nhân, doanh nghiệp ngày phát triển mạnh mẽ Nhu cầu sử dụng phần mềm để thực cơng việc nhanh chóng, xác hiệu ngày tăng Việc đảm bảo chất lượng phần mềm ngày trở lên quan trọng Bên cạnh phần mềm truyền thống, người ta sử dụng phần mềm chạy web Chính điều website ngày sử dụng rộng rãi | Ngoài ra, để đáp ứng nhu cầu chia sẻ thông tin, truyền đạt thơng tin cách nhanh chóng tiếp cận với nhiều người website phương tiện có khả làm tốt cơng việc Ngày nay, website phát triển cách mạnh mẽ nhanh chóng Tuy nhiên, với phát triển vượt bậc tiện lợi có khơng trở ngại dẫn đến việc website không hoạt động cách hiệu Do đó, cần thiết phải kiểm thử đảm bảo chất lượng website Với hướng dẫn thầy Hồng Quang Huy nhóm chúng em thực đề tài “Nghiên cứu đánh giá phương pháp luận kiểm thử” thực sản phẩm website xây dựng chưa hoàn thiện, gặp nhiều thiếu sót trình phát triển sản phẩm Do hạn chế mặt kiến thức khơng thể tránh khỏi sai sót trình làm báo cáo, mong giúp đỡ dạy thầy bạn Chúng em xin chân thành cảm ơn! MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG I CƠ SỞ LÝ THUYẾT 1.1 Kiểm thử hộp trắng 1.1.1 Khái niệm 1.1.2 Các kỹ thuật kiểm thử hộp trắng 1.2 Kiểm thử chấp nhận 12 1.2.1 Khái niệm 12 1.2.2 Các loại kiểm thử chấp nhận 12 CHƯƠNG II KẾT QUẢ THỰC NGHIỆM 19 2.1 Website kiểm thử 19 2.2 Yêu cầu đặc tả website 19 2.2.1 Yêu cầu chức 19 2.2.2 Yêu cầu hiệu 20 2.3 Công cụ kiểm thử Jmeter 20 2.4 Tiến hành kiểm thử website 23 2.5 Tiến hành kiểm thử công cụ Jmeter 25 CHƯƠNG III BÀI HỌC KINH NGHIỆM 29 3.1 Bài học kinh nghiệm 29 3.2 Đánh giá kết 29 KẾT LUẬN 30 TÀI LIỆU THAM KHẢO 31 DANH MỤC HÌNH ẢNH Hình Control Flow Graph Hình Tạo khối lệnh Hình Xử lý riêng biệt Hình Khối lệnh If …else Hình Khối lệnh If khơng có else Hình Khối lệnh chia nhiều nhánh Hình Khối lệnh có nhiều cạnh vào, nhiều cạnh Hình Mã giả 11 Hình Mã giả sau kiểm thử 12 Hình 10 Hình 11 Hình 12 Hình 13 Hình 14 Hình 15 Hình 16 Hình 17 Mơ hình chữ V 14 Quy trình kiểm thử chấp nhận người dùng 15 Cài đặt Jmeter 22 Tạo thread group 25 Các thành phần Thread Group 26 Tạo HTTP Request 26 View Results Tree 27 Graph Results 28 CHƯƠNG I CƠ SỞ LÝ THUYẾT 1.1 Kiểm thử hộp trắng 1.1.1 Khái niệm Kiểm thử hộp trắng nhằm kiểm tra mã nguồn phần mềm: Cơ xác minh lỗ hổng thiếu sót, khiếm khuyết mã nguồn Kiểm tra đường dẫn (Path) bị hỏng không đầy đủ mã nguồn Kiểm tra dòng chảy cấu trúc đề cập đến tài liệu đặc tả Kiểm tra xem có dead code (mã chết) mã nguồn hay không Kiểm tra kết đầu có mong đợi? Kiểm tra vòng lặp, điều kiện mã nguồn có thực khơng? Xác minh dòng phần mục mã nguồn & bao phủ phân nhánh xử lý Giải thích Dead code: Dead code (mã chết) phần mã nguồn chương trình thực thi có kết khơng sử dụng tính tốn khác Trong kết tính tốn chết khơng sử dụng, làm tăng lỗi ảnh hưởng đến tốc độ tồn cục, cần loại bỏ mã nhằm thay đổi hiệu chương trình Ví dụ: Dead code int calculate (int X, int Y) { int Z = X/Y; return X*Y; } Lệnh Z = X/Y; không dùng cịn có khả gây lỗi Y = 1.1.2 Các kỹ thuật kiểm thử hộp trắng Có 03 kỹ thuật kiểm thử White box sau: ● Statement Coverage (phủ lệnh) ● Branch Coverage (phủ nhánh) ● Path Coverage (phủ đường đi) Một hình thức truyền thống kiểm thử White-box thường trải qua là: ● Bước 1: Tạo đồ thị mô tả luồng điều khiển từ mã nguồn, gọi đồ thị luồng điều khiển (CFG _ Control Flow Graph) Đồ thị tạo từ mã nguồn thường tạo tay ● Bước 2: Thiết kế Test case để bao phủ toàn phần tử đồ thị (tùy theo kỹ thuật) o Phần tử: nút, cạnh, đường (nodes, edges, paths) o Đồ thị định nghĩa hình thức tốn học sau: o G = (N, E) o Node: nút tương ứng với lệnh, điều kiện Edge: cạnh nối nút Ví dụ Control Flow Graph (CFG) Hình Control Flow Graph Các phần tử CFG Có 03 loại nút: ● Nút lệnh: mô tả nút vào, ra, ● Nút điều kiện: nút mô tả điều kiện cho nhánh ● Nút hỗ trợ: nút kết nối IF, … Cạnh: biểu diễn luồng điều khiển Rất dễ tạo đồ thị, tương tự vẽ lưu đồ chương trình (Flow Program) Tạo khối lệnh (Block statement) Để đơn giản hóa mã nguồn lớn có nhiều lệnh, người ta thường tạo CFG khối lệnh thay cho lệnh Khối lệnh tập hợp lệnh liên tiếp tuần tự, khơng có phân nhánh (trừ cuối), khơng chứa vịng lặp Ví dụ: Hình Tạo khối lệnh Ví dụ: có xử lý riêng biệt Hình Xử lý riêng biệt Ví dụ: Khối lệnh If …else Hình Khối lệnh If …else Ví dụ: Khối lệnh If khơng có else Hình Khối lệnh If khơng có else Ví dụ: Khối lệnh chia nhiều nhánh switch(), Select case, Hình Khối lệnh chia nhiều nhánh Ví dụ: Khối lệnh có nhiều cạnh vào, nhiều cạnh Hình Khối lệnh có nhiều cạnh vào, nhiều cạnh Bước 1: Phân tích yêu cầu nghiệp vụ Một việc làm quan trọng trình kiểm thử chấp nhận xác định xây dựng kịch thử nghiệm Các kịch lấy từ tài liệu sau: ● Bản tuyên ngôn dự án (Project Charter) ● Các trường hợp sử dụng theo nghiệp vụ (Business Use Cases) ● Các sơ đồ quy trình hoạt động chương trình (Process Flow Diagram) ● Tài liệu yêu cầu nghiệp vụ (Business Requirements Document – BRD) ● Các đặc tả yêu cầu hệ thống (System Requirements Specification – SRS) Bước 2: Tạo kế hoạch Kế hoạch kiểm thử cho kiểm thử chấp nhận sử dụng để xác minh đảm bảo ứng dụng/chương trình đáp ứng yêu cầu nghiệp vụ Nó ghi lại tiêu chí nhập vào xuất cho kiểm thử chấp nhận, kịch kiểm thử, cách tiếp cận trường hợp kiểm thử thời gian kiểm thử Bước 3: Xác định kịch trường hợp kiểm thử (Test Scenarios and Test Cases) Ở bước xác định kịch kiểm thử liên quan đến quy trình nghiệp vụ cấp cao tạo trường hợp kiểm thử (test cases) với bước kiểm thử rõ ràng Các trường hợp kiểm thử phải đầy đủ bao gồm hầu hết kịch kiểm thử chấp nhận Các trường hợp sử dụng theo nghiệp vụ đầu vào để tạo trường hợp kiểm thử 16 Bước 4: Chuẩn bị liệu cho việc kiểm thử Các liệu dùng cho kiểm thử chấp nhận nên liệu thực tế mà người dùng sử dụng Chúng ta nên xáo trộn liệu, chẳng hạn ghép cặp ngẫu nhiên liệu với để giúp tăng tính bảo mật riêng tư Bên cạnh đó, người kiểm thử cần phải làm quen với luồng sở liệu Bước 5: Tiến hành kiểm thử ghi lại kết Bước tiến hành kiểm thử theo tài liệu, quy trình liệu sẵn có Các lỗi xảy ghi lại tiến hành kiểm tra lại sau sửa Có thể áp dụng cơng cụ quản lý kiểm thử cho bước này, chẳng hạn JIRA, Klaros, qTest … Bước 6: Xác nhận việc đáp ứng mục tiêu nghiệp vụ Các chuyên viên phân tích nghiệp vụ (Business Analysist – BA) người kiểm thử chấp nhận cần thông báo qua mail việc kết thúc trình Đến lúc này, sản phẩm sẵn sàng để đưa vào sử dụng thực tế (production) Các tài liệu bàn giao trình kiểm thử chấp nhận bao gồm kế hoạch kiểm thử, kịch kiểm thử, trường hợp kiểm thử (test cases), kết kiểm thử nhật ký ghi lại lỗi Để đảm bảo sẵn sàng cho sử dụng thực tế (production), kiểm thử chấp nhận cần đảm bảo điều sau: ● Khơng có lỗi nghiêm trọng cịn mở ● Quy trình nghiệp vụ hoạt động ổn định 17 ● Người tiến hành kiểm thử chấp nhận đăng xuất khỏi tất tài khoản bên liên quan Một số vấn đề liên quan đến kiểm thử chấp nhận Để tăng tỉ lệ thành công kiểm thử chấp nhận (UAT), ta xem xét vấn đề sau: ● Chuẩn bị sớm kế hoạch kiểm thử chấp nhận vòng đời dự án ● Chuẩn bị checklists đầy đủ trước tiến hành kiểm thử chấp nhận ● Thực Pre-UAT giai đoạn kiểm thử hệ thống ● Đặt kỳ vọng xác định rõ phạm vi kiểm thử chấp nhận ● Chỉ kiểm thử với vai trò người dùng cuối khơng lặp lại q trình kiểm thử hệ thống ● Kiểm thử với liệu dùng thực tế, không sử dụng liệu giả ● Có tư người dùng tiến hành kiểm thử ● Cần có q trình phản hồi trước kết thúc kiểm thử chấp nhận chuyển sang giai đoạn sử dụng thực tế 18 CHƯƠNG II KẾT QUẢ THỰC NGHIỆM 2.1 Website kiểm thử Website bán đồng hồ 2.2 Yêu cầu đặc tả website 2.2.1 Yêu cầu chức Đăng nhập Mô tả: khách hàng đăng nhập vào hệ thống với tài khoản Có chức tự động đăng nhập cho lần sau Đăng ký Mô tả: Khách hàng tạo tài khoản mới, tự động đăng nhập sau đăng ký Sửa thông tin khách hàng Mô tả: Khách hàng sửa thông tin cá nhân email, số điện thoại, họ tên, mật khẩu…Hệ thống cập nhật lại thông tin khách hàng Chi tiết sản phẩm Mô tả: Khách hàng xem thông tin chi tiết sản phẩm như: tên, hình ảnh, giá, mơ tả, đánh giá… Thêm giỏ hàng Mô tả: Khách hàng thêm sản phẩm vào giỏ hàng Hệ thống cập nhật giỏ hàng Thêm vào danh mục u thích Mơ tả: Khách hàng thêm sản phẩm vào danh mục yêu thích Hệ thống cập nhật danh mục yêu thích 19