Báo cáo môn kiểm thử và đảm bảo chất lượng phần mềm code quản lí siêu thị bằng laravel full chức năng như đăng kí đang nhập quản lí hoá đơn quản li bán hàng, quản lí nhân viên, nhập xuất kho. Dùng cho các sinh viên các trường đại học cntt nói chung và các trường khác.
Mục lục Mục lục .1 Chương I: Tổng quan lý thuyết kiểm thử phần mềm 4 1.1 Kiểm thử phần mềm là gì? 4 1.2 Lý do phải kiểm thử phần mềm 4 1.3 Vai trò của kiểm thử phần mềm? .5 1.3.1 Chất lượng 5 1.3.2 Tính năng 5 1.3.3 Độ tin cậy 5 1.3.4 Chi phí .5 1.4 Mục tiêu của kiểm thử phần mềm? 6 1.4.1 Phát hiện lỗi .6 1.4.2 Đánh giá chất lượng 6 1.4.3 Đảm bảo độ tin cậy 6 1.4.4 Kiểm tra tính năng .6 1.4.5 Xác thực yêu cầu .6 1.5 Các phương pháp kiểm thử phần mềm? 7 1.5.1 Kiểm thử đơn vị (Unit Testing) 7 1.5.2 Kiểm thử tích hợp (Intergration Testing) 7 1.5.3 Kiểm thử hệ thống (System Testing) 7 1.5.4 Kiểm thử chấp nhận (Acceptance Testing) .7 1.6 Các chiến lược kiểm thử? 8 1.6.1 Kiểm thử từ trên xuống (Top – Down Testing) 8 1.6.2 Kiểm thử từ dưới lên (Bottom – Up Testing) 8 1.6.3 Kiểm thử hộp đen (Black Box Testing) 8 1.6.4 Kiểm thử hộp trắng (White Box Testing) 8 1.6.5 Kiểm thử hồi quy (Regression Testing) 8 1.6.6 Kiểm thử tương quan (Concurrent Testing) 8 1.7 Nguyên tắc kiểm thử phần mềm? .9 1.7.1 Nguyên tắc 1: Test chỉ chứng tỏ được việc có lỗi .9 1 1.7.2 Nguyên tắc 2: Không thể Test toàn bộ 9 1.7.3 Nguyên tắc 3: Test từ giai đoạn đầu 9 1.7.4 Nguyên tắc 4: Sự phân bổ không đồng đều của lỗi 10 1.7.5 Nguyên tắc 5: Nghịch lý thuốc trừ sâu 10 1.7.6 Nguyên tắc 6: Test tùy thuộc vào điều kiện 10 1.7.7 Nguyên tắc 7: Cạm bẫy không có BUG 10 1.8 Quy trình kiểm thử phần mềm – Test Process 11 1.8.1 Phân tích yêu cầu .11 1.8.2 Lập kế hoạch kiểm thử 12 1.8.3 Thiết kế kịch bản kiểm thử 13 1.8.4 Thiết lập môi trường kiểm thử 14 1.8.5 Thực hiện kiểm thử 14 1.8.6 Đóng hoạt động kiểm thử 15 Chương II: Lập kế hoạch test 17 Chương III Giới thiệu về công cụ kiểm thử katalon 20 3.1 Giới thiệu về kiểm thử tự động 20 3.2 Tổng quan về lịch sử ra đời của công cụ kiểm thử katalon 21 3.3 Tính năng chính 21 3.4 Ưu, nhược điểm 23 3.5 Hướng dẫn cài đặt, hướng dẫn sử dụng công cụ 23 3.6 So sánh với công cụ khác 33 Chương IV Giới thiệu về hệ thống quản lý siêu thị 35 4.1 Mô tả chung về sản phẩm phần mềm 35 4.2 Đặc tả chức năng .35 4.3 Demo giao diện 35 4.3.5 Quét mã QR 38 4.3.6 Cập nhật thông tin cá nhân .40 Chương V: Báo cáo kết quả buổi test tổng thể 41 5.1 Kiểm thử hộp đen 41 5.1.1 Chức năng thêm hàng hóa 41 5.1.2 Chức năng sửa hàng hóa 47 5.1.3 Chức năng xóa hàng hóa 52 2 5.1.4 Chức năng thêm nhà cung cấp 56 5.1.5 Chức năng sửa nhà cung cấp 63 5.1.6 Chức năng App Quét Mã QR của hàng hóa (App) 68 5.1.7 Chức năng đổi mật khẩu (App) 70 5.1.8 Chức năng cập nhật thông tin (App) .73 5.2 Kiểm thử hộp trắng .81 5.2.1 Chức năng App Quét Mã QR của hàng hóa (APP) 81 5.2.2 Chức năng đổi mật khẩu (APP) .84 5.2.3 Chức năng cập nhật thông tin (APP) .87 5.2.4 Tổng hợp Test Case Kiểm thử hộp trắng các chức năng của App (QR, đổi mật khẩu, cập nhật thông tin) 90 3 Chương I: Tổng quan lý thuyết kiểm thử phần mềm 1.1 Kiểm thử phần mềm là gì? Kiểm thử phần mềm (software testing) là hoạt động nhằm tìm kiếm và phát hiện ra các lỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và đầy đủ theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra Software testing cũng cung cấp mục tiêu, cái nhìn độc lập về phần mềm điều này cho phép đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm Theo IEEE: Kiểm thử phần mềm là tiến trình vận hành hệ thống hoặc thành phần dưới những điều kiện xác định, quan sát hoặc ghi nhận kết quả và đưa ra đánh giá về hệ thống hoặc thành phần đó Theo Myers: Kiểm thử là tiến trình thực thi chương trình với mục đích tìm thấy lỗi Lỗi là kết quả của những sai sót Sai sót là sự nhầm lẫn hay hiểu sai trong quá trình phát triển phần mềm của người phát triển Khi lỗi trở nên quá nhiều hoặc gây ảnh hưởng lớn đến hệ thống khi đó sẽ gây ra hỏng hóc, khiến chương trình không thể hoạt động hoặc hoạt động thiếu chính xác và tin cậy 1.2 Lý do phải kiểm thử phần mềm Kiểm thử phần mềm là hoạt động đảm bảo chất lượng phần mềm và mang tính sống còn trong các dự án sản xuất phần mềm Vì vậy nó đã trở thành quy trình bắt buộc trong các dự án phần mềm hiện nay Các lý do khiến một phần mềm cần phải kiểm thử: - Tiết kiệm chi phí: Việc phát hiện lỗi sớm sẽ giảm chi phí để sửa so với các giai đoạn sau cũng như giảm thiểu rủi ro sản phẩm bị hỏng hóc - Bảo mật: Một phần mềm gây rò rỉ thông tin cá nhân người dùng sẽ không được cấp phép hoạt động - Chất lượng của sản phẩm: Dựa theo độ hoàn thiện chức năng của yêu, chức năng càng hoàn thiện, yêu cầu càng thực hiện trọn vẹn, chất lượng của sản phẩm được đánh giá cao - Sự hài lòng của khách hàng: Chất lượng cao nhưng đặc biệt phải có được sự hài lòng từ người dùng phần mềm 4 - Tối ưu quá trình phát triển: Việc phát hiện lỗi sớm, lỗi sẽ được nhanh chóng sửa chữa vì nó còn đơn giản Lỗi được phát hiện muộn màng sẽ gây khó khăn và rối rắm khi chỉnh sửa lại, làm chậm tiến trình phát triển phần mềm - Dễ dàng thêm mới tính năng: Với việc kiểm thử được trọn vẹn hoàn thành, nhà phát triển có thể tự tin phát triển các tính năng mới mà không cần lo nghĩ sẽ vo tình phá vỡ cấu trúc các tính năng cũ - Xác định hiệu suất của phần mềm: Hiệu suất của phần mềm cực kỳ quan trọng trong việc có được lòng tin của khách hàng KẾT LUẬN: Để có thể thực hiện kiểm thử phần mềm, thì hiểu được lý do tại sao kiểm thử phần mềm là cực kỳ quan trọng, nó sẽ đưa ra mục tiêu và điểm đích của công việc kiểm thử đang diễn ra với một sản phẩm cụ thể nào đó 1.3 Vai trò của kiểm thử phần mềm? 1.3.1 Chất lượng Sản phẩm đến tay của khách hàng phải đảm bảo về yêu cầu, giao diện, cấu trúc, tính năng và một số các yêu cầu đặc hữu khác đồng thời đảm bảo không còn tồn tại lỗi trong hệ thống 1.3.2 Tính năng Sản phẩm phải đảm bảo đầy đủ về tính năng, tuân thủ những yêu cầu đã được đặt ra Trong quá trình phát triển rất có thể sẽ phát sinh thêm nhiều nhiều yêu cầu từ khách hàng Kiểm thử cần bảo đảm các yêu cầu được hoàn thiện và hoàn thành đúng với kết quả mà yêu cầu giao 1.3.3 Độ tin cậy Một sản phẩm chỉn chu, hoàn thiện tạo ra được những trải nghiệm người dùng tốt nhất sẽ đạt được niềm tin của đối tác, khách hàng về sau 1.3.4 Chi phí Việc phát hiện lỗi sớm sẽ mang lại nhiều lợi ích trong quá trình phát triển Giảm chi phí vận hành chính là một trong số đó Phát hiện lỗi sớm có thể kịp thời sửa chữa và dự đoán những lỗi có thể bắt gặp trong tương lai, mở rộng tầm nhìn và thu hẹp phạm vi lỗi được xác định Xử lý lỗi ở giai đoạn đầu sẽ mất chi phí ít hơn là giai doạn sau bởi nó dễ dàng xử lý và không có nhiều khó khăn 5 Ở giai đoạn sau, khi chương trình được kiểm thử hoặc đã được phát hành thì chi phí sửa chữa thường cao hơn do có nhiều khó khăn trong việc xử lý đồng thời cũng sẽ ảnh hưởng đến độ tin cậy của phần mềm KẾT LUẬN: Kiểm thử phần mềm là một phần không thể thiếu trong quá trình phát triển phần mềm, đóng vai trò quan trọng trong việc đảm bảo chất lượng và tính ứng dụng của sản phẩm Mục tiêu của kiểm thử là phát hiện lỗi, đánh giá chất lượng, đảm bảo độ tin cậy, kiểm tra tính năng, và xác thực yêu cầu Điều này đóng góp quan trọng vào việc cung cấp sản phẩm phần mềm chất lượng cao cho khách hàng và bảo vệ danh tiếng của tổ chức phát triển 1.4 Mục tiêu của kiểm thử phần mềm? 1.4.1 Phát hiện lỗi Mục tiêu chính của kiểm thử phần mềm là phát hiện và xác định các lỗi trong phần mềm Các lỗi này có thể là lỗi logic, lỗi giao diện người dùng, lỗi hiệu suất, hoặc lỗi bảo mật Để đảm bảo tính ổn định và đáng tin cậy của sản phẩm, các lỗi này cần phải được báo cáo và sửa chữa 1.4.2 Đánh giá chất lượng Kiểm thử phần mềm giúp đánh giá chất lượng của sản phẩm Điều này bao gồm việc kiểm tra tính năng, hiệu suất, bảo mật, và tương thích với các môi trường khác nhau Đánh giá chất lượng giúp đảm bảo rằng sản phẩm đáp ứng tiêu chuẩn chất lượng của công ty và mong đợi của khách hàng 1.4.3 Đảm bảo độ tin cậy Mục tiêu khác của kiểm thử phần mềm là đảm bảo độ tin cậy của phần mềm Điều này đảm bảo rằng phần mềm hoạt động đáng tin cậy và không gây ra sự cố không mong muốn Độ tin cậy là một yếu tố quan trọng đối với sự hài lòng của khách hàng và danh tiếng của sản phẩm 1.4.4 Kiểm tra tính năng Kiểm thử phần mềm kiểm tra tính năng của sản phẩm để đảm bảo rằng nó hoạt động theo cách được thiết kế và đáp ứng nhu cầu của người dùng Điều này bao gồm kiểm tra các tính năng cơ bản cũng như các tính năng phức tạp 1.4.5 Xác thực yêu cầu 6 Mục tiêu cuối cùng của kiểm thử phần mềm là xác minh rằng phần mềm tuân thủ các yêu cầu đã được đặt ra ban đầu Điều này đảm bảo tính nhất quán và chính xác của sản phẩm, và giúp đảm bảo rằng sản phẩm hoạt động theo cách mà khách hàng mong đợi KẾT LUẬN: Kiểm thử phần mềm là một phần không thể thiếu trong quá trình phát triển phần mềm, đóng vai trò quan trọng trong việc đảm bảo chất lượng và tính ứng dụng của sản phẩm Mục tiêu của kiểm thử là phát hiện lỗi, đánh giá chất lượng, đảm bảo độ tin cậy, kiểm tra tính năng, và xác thực yêu cầu Điều này đóng góp quan trọng vào việc cung cấp sản phẩm phần mềm chất lượng cao cho khách hàng và bảo vệ danh tiếng của tổ chức phát triển 1.5 Các phương pháp kiểm thử phần mềm? 1.5.1 Kiểm thử đơn vị (Unit Testing) Đây là phần quan trọng nhất của quá trình kiểm thử phần mềm Trong kiểm thử đơn vị, các đơn vị nhỏ nhất của mã nguồn, như các hàm hoặc phương thức được kiểm tra độc lập để đảm bảo tính đúng đắn của chúng Thường thực hiện bởi nhà phát triển Kiểm thử đơn vị giúp phát hiện và sửa lỗi ngay từ khi chúng xuất hiện 1.5.2 Kiểm thử tích hợp (Intergration Testing) Sau khi các đơn vị đã được kiểm thử đơn lẻ, kiểm thử tích hợp đảm bảo rằng cho chúng hoạt động đúng cách khi được kết hợp lại với nhau Mục tiêu là phát hiện lỗi liên quan đến sự tương tác giữa các thành phần với nhau và đảm bảo rằng tích hợp hoạt động mượt mà 1.5.3 Kiểm thử hệ thống (System Testing) Kiểm thử hệ thống là bước kiểm tra toàn bộ ứng dụng hoặc hệ thống sau khi đã được tích hợp hoàn chỉnh Giai đoạn này, người kiểm thử đảm bảo rằng hệ thống hoạt động như một thực thể duy nhất và đáp ứng các yêu cầu chức năng và phi chức năng 1.5.4 Kiểm thử chấp nhận (Acceptance Testing) Loại kiểm thử này tập trung vào việc đảm bảo rằng phần mềm đáp ứng các yêu cầu của khách hàng và có khả năng sử dụng trong môi trường thực tế 7 Kiểm thử chấp nhận có thể chia thành kiểm thử chấp nhận người dùng (UAT) do khách hàng thực hiện kiểm thử và kiểm thử chấp nhận hệ thống (SAT) do người kiểm thử độc lập thực hiện 1.6 Các chiến lược kiểm thử? 1.6.1 Kiểm thử từ trên xuống (Top – Down Testing) Trong chiến lược này, kiểm thử bắt đầu từ thành phần cấp cao hơn của hệ thống và sau đó lan tỏa xuống các thành phần cấp thấp hơn Điều này giúp kiểm tra sự tích hợp của các thành phần và đảm bảo tích hợp đúng cách Top – Down Testing cũng giúp xác định các thành phần giả thiết (stub) cho các thành phần chưa hoàn thành 1.6.2 Kiểm thử từ dưới lên (Bottom – Up Testing) Chiến lược này là ngược lại với Top – Down Nó bắt đầu từ các thành phần cấp thấp và sau đó tích hợp chúng lên các thành phần cao hơn Thường sử dụng khi các thành phần cấp cao hơn chưa hoàn thành 1.6.3 Kiểm thử hộp đen (Black Box Testing) Trong kiểm thử hộp đen, người kiểm thử không cần quan tâm cấu trúc nội bộ của phần mềm Họ chỉ quan tâm đến cách phần mềm hoạt động từ bên ngoài và kiểm tra các đầu vào – dầu ra để đảm bảo tính đúng đắn 1.6.4 Kiểm thử hộp trắng (White Box Testing) Kiểm thử hộp trắng liên quan đến việc kiểm tra cấu trúc nội bộ của mã nguồn Người kiểm thử sử dụng kiến thức về mã nguồn để tạo các bộ kiểm tra dựa trên mã nguồn để đảm bảo tính logic và đúng đắn của phần mềm 1.6.5 Kiểm thử hồi quy (Regression Testing) Chiến lược này đảm bảo rằng các thành phần đã kiểm thử trước đó không bị ảnh hưởng bởi các thay đổi sau này trong mã nguồn Regression Testing đảm bảo tính ổn định của phần mềm sau mỗi lần cập nhật hoặc thay đổi 1.6.6 Kiểm thử tương quan (Concurrent Testing) Kiểm thử này kiểm tra khả năng của hệ thống hoạt động đúng cách trong môi trường có nhiều tương tác đồng thời (ví dụ có nhiều người dùng truy cập cùng lúc) 8 KẾT LUẬN: Thông qua sự kết hợp và lựa chọn phương pháp kiểm thử và chiến lược kiểm thử phù hợp, nhà phát triển có thể đảm bảo chất lượng và tính ổn định của sản phẩm phần mềm của họ Quá trình kiểm thử phần mềm là một quá trình quan trọng trong quy trình phát triển, và cải thiện liên tục là điều không thể thiếu để đáp ứng yêu cầu của thị trường 1.7 Nguyên tắc kiểm thử phần mềm? 1.7.1 Nguyên tắc 1: Test chỉ chứng tỏ được việc có lỗi Kiểm thử chỉ có thể chứng minh được rằng sản phẩm có lỗi Kiểm thử phần mềm không thể chứng mình rằng sản phẩm không còn lỗi Nghĩa là sản phẩm luôn có lỗi cho dù có kiểm thử nhiều bao nhiêu Do đó, điều quan trọng là chúng ta phải thiết kế các trường hợp kiểm thử (test case) sao cho có thể tìm được càng nhiều lỗi càng tốt 1.7.2 Nguyên tắc 2: Không thể Test toàn bộ Trừ khi sản phẩm được kiểm thử quá đơn giản cũng như không có nhiều giá trị đầu vào (chẳng hạn như “Hello World”) thì việc chứng minh sản phẩm không còn bug cho dù có kiểm thử nhiều đến đâu là không khả thi Hầu hết các sản phẩm ngày nay rất đa dạng và phức tạp do được phát triển trên nhiều nền tảng, công nghệ phong phú cũng như khả năng lưu trữ kết nối dữ liệu lớn, khiến việc kiểm thử trở nên khó khăn và việc kiểm thử toàn bộ là gần như không thể Kiểm thử với tất cả các kết hợp đầu vào và đầu ra, với tất cả các kịch bản là không thể trừ phi nó chỉ bao gồm ít trường hợp thì có thể kiểm thử toàn bộ Thay vì kiểm thử toàn bộ, việc phân tích rủi ro và dựa trên sự mức độ ưu tiên chúng ta có thể tập trung việc kiểm thử vào một số điểm cần thiết, có nguy cơ lỗi cao hơn 1.7.3 Nguyên tắc 3: Test từ giai đoạn đầu Nguyên tắc này yêu cầu bắt đầu thử nghiệm phần mềm trong giai đoạn đầu của vòng đời phát triển phần mềm Các hoạt động kiểm thử phần mềm từ giai đoạn đầu sẽ giúp phát hiện bug sớm hơn Nó cho phép chuyển giao phần mềm theo yêu cầu đúng thời gian với chất lượng dự kiến Ngoài ra ai làm phần mềm cũng biết được rằng việc phát hiện lỗi càng trể bao nhiêu thì chi phí để sửa lỗi càng cao bấy nhiêu Tương tự, việc thay đổi yêu cầu không đúng ngay từ đầu thường tốn ít chi phí thay đổi tính năng trong hệ thống 9