BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM BÁO CÁO ĐỒ ÁN MÔN HỌC KIỂM THỬ PHẦN MỀM KIỂM THỬ WEBSITE CPSEED Ngành CÔNG NGHỆ THÔNG TIN Môn học KIỂM THỬ PHẦN MỀM Người hướng dẫn ThS Dương Thà[.]
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM BÁO CÁO ĐỒ ÁN MÔN HỌC KIỂM THỬ PHẦN MỀM KIỂM THỬ WEBSITE CPSEED Ngành : CÔNG NGHỆ THƠNG TIN Mơn học : KIỂM THỬ PHẦN MỀM Người hướng dẫn: ThS Dương Thành Phết TP Hồ Chí Minh, 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM BÁO CÁO ĐỒ ÁN MÔN HỌC KIỂM THỬ PHẦN MỀM KIỂM THỬ WEBSITE CPSEED Ngành : CƠNG NGHỆ THƠNG TIN Mơn học : KIỂM THỬ PHẦN MỀM Người hướng dẫn: ThS Dương Thành Phết TP Hồ Chí Minh, 2021 MỤC LỤC LỜI NĨI ĐẦU DANH MỤC HÌNH ẢNH CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Các khái niệm kiểm thử phần mềm 1.1.1 Kiểm thử phần mềm gì? 1.1.2 Các phương pháp kiểm thử 1.1.3 Các chiến lược kiểm thử 1.1.4 Các cấp độ kiểm thử phần mềm 10 1.1.5 Các phương pháp kiểm thử người 16 1.2 Nguyên tắc kiểm thử phần mềm 17 CHƯƠNG 2: THIẾT KẾ TEST-CASE 19 2.1 Khái niệm 19 2.2 Vai trò thiết kế test-case 19 2.3 Quy trình thiết kế test-case 19 2.3.1 Kiểm thử hộp trắng - Kiểm thử bao phủ logic 20 2.3.2 Kiểm thử hộp đen 28 2.3.3 Chiến lược 37 CHƯƠNG 3: ÁP DỤNG 39 3.1 Đặc tả 39 3.2 Thiết kế test - case 39 3.2.1 Lọc sản phẩm 39 3.2.2 Sản phẩm liên quan 40 3.2.3 Thêm xóa sửa sản phẩm 43 CHƯƠNG 4: KẾT LUẬN 47 TÀI LIỆU THAM KHẢO 48 LỜI NÓI ĐẦU Ngày công nghệ thông tin ngày phát triển nhanh chóng, kéo theo hệ thống mạng phần mềm gia tăng số lượng theo quy mô rộng chất lượng phần mềm theo chiều sâu 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ế, Những lỗi tự thân phần mềm bị hỏng không kiểm duyệt kĩ lưỡng trước đưa cho người dùng cuối hay có người cố tình phá hoại nhằm đánh cắp thông tin cá nhân mã số tài khoản ngân hàng, số điện thoại, danh bạ, tin nhắn, Từ ta dễ dàng nhận phần mềm phát triển ngày phức tạp vấn đề chất lượng dấu hỏi lớn cần xem xét cẩn thận Do yêu cầu đặt cần có cơng tác kiểm thử phần mềm thật kĩ lưỡng nhằm ngăn chặn lỗi hay hỏng hóc cịn tiềm tàng bên phần mềm mà ta chưa kịp nhận Tuy nhiên phần mềm ngày lớn, hàng nghìn module, cơng ty hàng nghìn người phát triển để kiểm thử phần mềm lớn tốn nhiều công sức thời gian làm thủ công, chưa kể đến chất lượng kiểm thử không cao thật xác phù hợp cho yêu cầu Theo nhiều tính tốn cơng việc kiểm thử đóng vai trị quan trọng quy trình phát triển phần mềm, đóng góp tới 40% tổng tồn chi phí cho việc sản xuất phần mềm Vì cần có hệ thống kiểm thử phần mềm cách tự động cho phép ta thực công việc cách nhanh chóng độ an tồn, xác cao Đó lý thúc đẩy em thực đề tài “Kiểm thử ứng dụng Website CPSeed” với hướng dẫn thầy Dương Thành Phết.Việc thực đề tài giúp em tìm hiểu sâu vận dụng kiến thức học để thiết kế test – case cách có hiệu áp dụng vào tốn thực tế Do chưa có nhiều kinh nghiệm nghiên cứu, thực hành nên đề tài thực cịn nhiều thiếu sót, chúng em mong nhận đóng góp ý kiến thầy để đề tài hoàn thiện Em xin chân thành cám ơn Sinh viên Hồ Kim Long CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Các khái niệm kiểm thử phần mềm 1.1.1 Kiểm thử phần mềm gì? Kiểm thử phần mềm trình khảo sát hệ thống hay thành phần điều kiện xác định, quan sát ghi lại kết quả, đánh giá khía cạnh hệ thống hay thành phần (Theo Bảng giải thuật ngữ chuẩn IEEE Thuật ngữ kỹ nghệ phần mềm- IEEE Standard Glossary of Software Engineering Terminology) Kiểm thử phần mềm trình thực thi chương trình với mục đích tìm lỗi (Theo “The Art of Software Testing” – Nghệ thuật kiểm thử phần mềm) Kiểm thử phần mềm hoạt động khảo sát 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 (Theo Bách khoa tồn thư mở Wikipedia) Có thể định nghĩa cách dễ hiểu sau: Kiểm thử phần mềm tiến trình hay tập hợp tiến trình thiết kế để đảm bảo mã hóa máy tính thực theo mà chúng thiết kế để làm, khơng thực thứ khơng mong muốn Đây pha quan trọng trình phát triển hệ thống, giúp cho người xây dựng hệ thống khách hàng thấy hệ thống đáp ứng yêu cầu đặt hay chưa? 1.1.2 Các phương pháp kiểm thử Có phương pháp kiểm thử là: Kiểm thử tĩnh kiểm thử động 1.1.2.1 Kiểm thử tĩnh – Static testing Là phương pháp thử phần mềm đòi hỏi phải duyệt lại yêu cầu đặc tả tay, thông qua việc sử dụng giấy, bút để kiểm tra logic, lần chi tiết mà khơng cần chạy chương trình Kiểu kiểm thử thường sử dụng chuyên viên thiết kế người mà viết mã lệnh Kiểm thử tĩnh tự động hóa Nó thực kiểm tra toàn bao gồm chương trình phân tích trình thơng dịch biên dịch mà xác nhận tính hợp lệ cú pháp chương trình 1.1.2.2 Kiểm thử động – Dynamic testing Là phương pháp thử phần mềm thông qua việc dùng máy chạy chương trình để điều tra trạng thái tác động chương trình Đó kiểm thử dựa ca kiểm thử xác định thực đối tượng kiểm thử hay chạy chương trình Kiểm thử động kiểm tra cách thức hoạt động động mã lệnh, tức kiểm tra phản ứng vật lý từ hệ thống tới biến thay đổi theo thời gian Trong kiểm thử động, phần mềm phải thực biên dịch chạy Kiểm thử động thực bao gồm làm việc với phần mềm, nhập giá trị đầu vào kiểm tra xem liệu đầu có mong muốn hay khơng Các phương pháp kiểm thử động gồm có kiểm thử Unit – Unit Tests, Kiểm thử tích hợp – Intergration Tests, Kiểm thử hệ thống – System Tests, Kiểm thử chấp nhận sản phẩm – Acceptance Tests 1.1.3 Các chiến lược kiểm thử Ba số chiến lược kiểm thử thông dụng bao gồm: Kiểm thử hộp đen, Kiểm thử hộp trắng, Kiểm thử hộp xám 1.1.3.1 Kiểm thử hộp đen – Black box testing Một chiến lược kiểm thử quan trọng kiểm thử hộp đen, hướng liệu, hay hướng vào/ra Kiểm thử hộp đen xem chương trình “hộp đen” Mục đích bạn hồn tồn khơng quan tâm cách cư xử cấu trúc bên chương trình Thay vào đó, tập trung vào tìm trường hợp mà chương trình khơng thực theo đặc tả Theo hướng tiếp cận này, liệu kiểm tra lấy từ đặc tả Các phương pháp kiểm thử hộp đen: • Phân lớp tương đương – Equivalence partitioning • Phân tích giá trị biên – Boundary value analysis • Kiểm thử cặp – All-pairs testing • Kiểm thử fuzz – Fuzz testing • Kiểm thử dựa mơ hình – Model-based testing • Ma trận dấu vết – Traceability matrix • Kiểm thử thăm dò – Exploratory testing • Kiểm thử dựa đặc tả – Specification-base testing Kiểm thử dựa đặc tả tập trung vào kiểm tra tính thiết thực phần mềm theo yêu cầu thích hợp Do đó, kiểm thử viên nhập liệu vào, thấy liệu từ đối tượng kiểm thử Mức kiểm thử thường yêu cầu ca kiểm thử triệt để cung cấp cho kiểm thử viên mà xác minh liệu đầu vào cho, giá trị đầu (hay cách thức hoạt động) có giống với giá trị mong muốn xác định ca kiểm thử hay khơng Kiểm thử dựa đặc tả cần thiết, không đủ để để ngăn chặn rủi ro chắn Ưu, nhược điểm: Kiểm thử hộp đen khơng có mối liên quan tới mã lệnh, kiểm thử viên đơn giản tâm niệm là: mã lệnh phải có lỗi Sử dụng nguyên tắc “Hãy đòi hỏi bạn nhận”, kiểm thử viên hộp đen tìm lỗi mà lập trình viên khơng tìm Nhưng, mặt khác, người ta nói kiểm thử hộp đen “giống bóng tối mà khơng có đèn vậy”, kiểm thử viên khơng biết phần mềm kiểm tra thực xây dựng Đó lý mà có nhiều trường hợp mà kiểm thử viên hộp đen viết nhiều ca kiểm thử để kiểm tra thứ mà cần kiểm tra ca kiểm thử nhất, và/hoặc số phần chương trình khơng kiểm tra chút Do vậy, kiểm thử hộp đen có ưu điểm “một đánh giá khách quan”, mặt khác lại có nhược điểm “thăm dị mù” 1.1.3.2 Kiểm thử hộp trắng – White box testing Là chiến lược kiểm thử khác, trái ngược hoàn toàn với kiểm thử hộp đen, kiểm thử hộp trắng hay kiểm thử hướng logic cho phép bạn khảo sát cấu trúc bên chương trình Chiến lược xuất phát từ liệu kiểm thử kiểm thử tính logic chương trình Kiểm thử viên truy cập vào cấu trúc liệu giải thuật bên chương trình (và mã lệnh thực chúng) Các phương pháp kiểm thử hộp trắng: • Kiểm thử giao diện lập trình ứng dụng - API testing (application programming interface): phương pháp kiểm thử ứng dụng sử dụng API cơng khai riêng tư • Bao phủ mã lệnh – Code coverage: tạo kiểm tra để đáp ứng số tiêu chuẩn bao phủ mã lệnh • Các phương pháp gán lỗi – Fault injection • Các phương pháp kiểm thử hốn chuyển – Mutation testing methods • Kiểm thử tĩnh – Static testing: kiểm thử hộp trắng bao gồm kiểm thử tĩnh Phương pháp kiểm thử hộp trắng sử dụng để đánh giá hoàn thành kiểm thử mà tạo với phương pháp kiểm thử hộp đen Điều cho phép nhóm phần mềm khảo sát phần hệ thống kiểm tra đảm bảo điểm chức quan trọng kiểm tra 1.1.3.3 Kiểm thử hộp xám – Gray box testing Kiểm thử hộp xám địi hỏi phải có truy cập tới cấu trúc liệu giải thuật bên cho mục đích thiết kế ca kiểm thử, kiểm thử mức người sử dụng hay mức hộp đen Việc thao tác tới liệu đầu vào định dạng liệu đầu không rõ ràng, giống “hộp xám”, đầu vào đầu rõ ràng bên “hộp đen” mà gọi hệ thống kiểm tra Sự khác biệt đặc biệt quan trọng quản lý kiểm thử tích hợp – Intergartion testing modun mã lệnh viết hai chuyên viên thiết kế khác nhau, giao diện đưa để kiểm thử Kiểm thử hộp xám bao gồm thiết kế đối chiếu để định, ví dụ, giá trị biên hay thông báo lỗi 1.1.4 Các cấp độ kiểm thử phần mềm Kiểm thử phần mềm gồm có cấp độ: Kiểm thử đơn vị, Kiểm thử tích hợp, Kiểm thử hệ thống Kiểm thử chấp nhận sản phẩm Hình 1.1 1.1.4.1 Sơ đồ cấp độ kiểm thử Kiểm thử đơn vị – Unit test Một đơn vị thành phần phần mềm nhỏ mà ta kiểm thử Ví dụ, hàm (Function), thủ tục (Procedure), lớp (Class) hay phương thức (Method) xem Unit Vì Unit chọn để kiểm tra thường có kích thước nhỏ chức hoạt động đơn giản, khơng khó khăn việc tổ chức kiểm thử, ghi nhận phân tích kết kiểm thử Nếu phát lỗi, việc xác định nguyên nhân khắc phục tương đối dễ dàng khoanh vùng đơn thể Unit kiểm tra Một nguyên lý đúc kết từ thực tiễn: thời gian tốn cho Unit Test đền bù việc tiết kiệm nhiều thời gian chi phí cho việc kiểm thử sửa lỗi mức kiểm thử sau Unit Test thường lập trình viên thực Công đoạn cần thực sớm tốt giai đoạn viết code xuyên suốt chu kỳ phát triển phần mềm Thơng thường, Unit Test địi hỏi kiểm thử viên có kiến thức thiết kế code chương trình Mục đích Unit Test bảo 10 ... QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Các khái niệm kiểm thử phần mềm 1.1.1 Kiểm thử phần mềm gì? 1.1.2 Các phương pháp kiểm thử 1.1.3 Các chiến lược kiểm thử 1.1.4 Các cấp độ kiểm thử phần mềm 10 1.1.5... cấp độ kiểm thử phần mềm Kiểm thử phần mềm gồm có cấp độ: Kiểm thử đơn vị, Kiểm thử tích hợp, Kiểm thử hệ thống Kiểm thử chấp nhận sản phẩm Hình 1.1 1.1.4.1 Sơ đồ cấp độ kiểm thử Kiểm thử đơn... Long CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Các khái niệm kiểm thử phần mềm 1.1.1 Kiểm thử phần mềm gì? Kiểm thử phần mềm trình khảo sát hệ thống hay thành phần điều kiện xác định, quan