1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận môn học công nghệ phần mềm đề tài hệ thống các kỹ thuật kiểm thử phần mềm

23 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 662,81 KB

Nội dung

Kiểm thử phần mềm đóng vai trò quan trọng trong việc đảm bảo rằng sản phẩm phần mềm được phát triển đáp ứng các yêu cầu chất lượng, đồng thời giúp cải thiện hiệu suất, tính bảo mật và độ

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

Mục lục

Lời Cảm Ơn 4

Lời Cam Đoan 4

Phần Mở đầu 5

Phần Nội Dung 5

Chương 1: Giới thiệu và phân loại kỹ thuật kiểm thử phần mềm 5

1.1 Giới thiệu 5

1.2 Phân loại 5

1.2.1 Cấp độ kiểm thử 5

1.2.2 Phương pháp kiểm thử 6

1.2.3 Loại hình kiểm thử 6

Chương 2: Nội dung của mỗi loại kiểm thử 6

1.2.1 Kiểm thử đơn vị (Unit Testing) 6

2.1.1 Khái niệm 6

2.1.2 Mục tiêu 6

2.1.3 Cách thực hiện 6

2.1.4 Công cụ 7

2.1.5 Ưu và nhược điểm 7

2.2 Kiểm thử tích hợp (Integration Testing) 8

2.2.1 Khái niệm 8

2.2.2 Mục tiêu 8

2.2.3 Cách thực hiện 8

2.2.4 Công cụ 8

2.2.5 Ưu và nhược điểm 9

2.3 Kiểm thử hệ thống (System Testing) 9

2.3.1 Khái niệm 9

1

Trang 3

2.3.2 Mục tiêu 9

2.3.3 Cách thực hiện 10

2.2.4 Công cụ 10

2.2.5 Ưu và nhược điểm 10

2.4 Kiểm thử chấp nhận (Acceptance Testing) 11

2.4.1 Khái niệm 11

2.4.2 Mục tiêu 11

2.4.3 Cách thực hiện 11

2.4.4 Công cụ 11

2.4.5 Ưu và nhược điểm 12

2.5 Kiểm thử hộp đen (Black Box Testing) 12

2.5.1 Khái niệm 12

2.5.2 Nguyên tắc 12

2.5.3 Cách thực hiện 13

2.5.4 Công cụ 13

2.5.5 Ưu và nhược điểm 13

2.6 Kiểm thử hộp trắng (White Box Testing) 14

2.6.1 Khái niệm 14

2.6.2 Nguyên tắc 14

2.6.3 Cách thực hiện 14

2.6.4 Công cụ 14

2.6.5 Ưu và nhược điểm 15

2.7 Kiểm thử hộp xám (Gray Box Testing) 15

2.7.1 Khái niệm 15

2.7.2 Mục tiêu 15

2.7.3 Cách thực hiện 16

2.7.4 Công cụ 16

2.7.5 Ưu và nhược điểm 16

2.8 Kiểm thử chức năng (Functional Testing) 17

Trang 4

2.8.1 Khái niệm 17

2.8.2 Mục tiêu 17

2.8.3 Cách thực hiện 17

2.8.4 Công cụ 18

2.8.5 Ưu và nhược điểm 18

2.9 Kiểm thử phi chức năng (Non-Functional Testing) 18

2.9.1 Khái niệm 18

2.9.2 Mục tiêu 19

2.9.3 Cách thực hiện 19

2.9.4 Công cụ 19

2.9.5 Ưu và nhược điểm 19

2.10 Kiểm thử hồi quy (Regression Testing) 20

2.10.1 Khái niệm 20

2.10.2 Mục tiêu 20

2.10.3 Cách thực hiện 21

2.10.4 Công cụ 21

2.10.5 Ưu và nhược điểm 21

Tổng Kết 22

3

Trang 5

Lời Cảm Ơn

Em xin bày tỏ lòng biết ơn sâu sắc đến khoa công nghệ thông tin của Trường Đại Học Xây Dựng Hà Nội, cũng như đến Giảng viên Đoàn Như Tùng, với sự tận tâm và hướng dẫn trong suốt môn học đã giúp em hoàn thành bài tiểu luận với đề tài “ Hệ thống các kỹ thuật kiểm thử phần mềm

Dù em đã cố gắng hết sức hoàn thành đề tài một cách tốt nhất, nhưng chắc chắn sẽ không tránh khỏi những sai sót Do thời gian và trình độ kiến thức còn có hạn nên em chưa thể hoàn thành bài tiểu luận một cách hoàn hảo Vì vậy, em mong sẽ nhận được những sự góp ý từ thầy để em có thể hoàn thành bài tiểu luận một cách hoàn hảo hơn.Một lần nữa, em xin cảm ơn sự hỗ trợ và dẫn dắt của Giảng viên Đoàn Như Tùng trong suốt môn học này

Em xin chân thành cảm ơn

Lời Cam Đoan

Em xin cam đoan bài tiểu luận trên là bài nghiên cứu độc lập của riêng em Các thôngtin, số liệu sử dụng phân tích trong bài tiểu luận có nguồn gốc rõ ràng, đã công bố theo đúng quy định Các kết quả nghiên cứu trong tiểu luận là do em tự tìm hiểu và tổng hợp lại một cách chính xác và cụ thể nhất

Trang 6

Phần Mở đầu

Trong thế giới phần mềm hiện đại, việc đảm bảo chất lượng của sản phẩm là một yếu tố không thể phủ nhận Kiểm thử phần mềm đóng vai trò quan trọng trong việc đảm bảo rằng sản phẩm phần mềm được phát triển đáp ứng các yêu cầu chất lượng, đồng thời giúp cải thiện hiệu suất, tính bảo mật và độ tin cậy của hệ thống

Với sự phát triển không ngừng của công nghệ và môi trường phát triển phần mềm ngày càng phức tạp, có một loạt các kỹ thuật và công cụ kiểm thử phần mềm được sử dụng để đảm bảo rằng sản phẩm cuối cùng đáp ứng các yêu cầu chất lượng và mục tiêu kinh doanh

Trong bài tiểu luận này, chúng ta sẽ đi sâu vào việc tổng kết và phân loại các kỹ thuật kiểm thử phần mềm phổ biến nhất hiện nay, cùng với các công cụ hỗ trợ tương ứng.Bằng cách phân tích và tổng hợp kiến thức này, chúng ta sẽ có cái nhìn tổng quan về cáchcác tổ chức và nhà phát triển phần mềm tiếp cận và triển khai quy trình kiểm thử để đảm bảo chất lượng và sự thành công của dự án phần mềm

mô tả ngữ cảnh áp dụng, ưu nhược điểm, kỹ thuật thực hiện và công cụ liên quan

1.2 Phân loại

Các kỹ thuật kiểm thử phần mềm được phân loại theo các mục dưới đây:

1.2.1 Cấp độ kiểm thử

- Kiểm thử đơn vị (Unit Testing)

- Kiểm thử tích hợp (Integration Testing)

- Kiểm thử hệ thống (System Testing)

5

Trang 7

- Kiểm thử chấp nhận (Acceptance Testing).

1.2.2 Phương pháp kiểm thử

- Kiểm thử hộp đen (Black Box Testing)

- Kiểm thử hộp trắng (White Box Testing)

- Kiểm thử hộp xám (Gray Box Testing)

1.2.3 Loại hình kiểm thử

- Kiểm thử chức năng (Functional Testing)

- Kiểm thử phi chức năng (Non-Functional Testing)

- Kiểm thử hồi quy (Regression Testing)

Chương 2: Nội dung của mỗi loại kiểm thử

1.2.1 Kiểm thử đơn vị (Unit Testing)

2.1.1 Khái niệm

Kiểm thử đơn vị là một kỹ thuật kiểm thử phần mềm nhằm xác minh tính chính xác của các đơn vị code riêng lẻ, thường là các hàm, phương thức hoặc lớp Kiểm thử đơn vị được thực hiện bởi các lập trình viên ngay sau khi viết code để đảm bảo code hoạt động theo thiết kế

2.1.2 Mục tiêu

- Phát hiện lỗi sớm trong quá trình phát triển phần mềm

- Giảm thiểu chi phí sửa lỗi

- Tăng cường độ tin cậy và chất lượng phần mềm

2.1.3 Cách thực hiện

1, Viết các trường hợp kiểm thử:

- Xác định các đầu vào đầu ra mong muốn của đơn vị code

- Viết các trường hợp kiểm thử để kiểm tra tất cả các trường hợp hợp lệ và không hợp lệ

2, Chạy các trường hợp kiểm thử:

Trang 8

- Sử dụng framework kiểm thử đơn vị để tự động hoá việc chạy các trường hợp kiểm thử.

- Xác minh kết quả của các trường hợp kiểm thử

3, Sửa lỗi

- Nếu có trường hợp kiểm thử nào thất bại, cần sửa lỗi trong code

- Chạy lại các trường hợp kiểm thử để đảm bảo lỗi được sửa chữa

2.1.4 Công cụ

- Junit, Nunit, xUnit, Mocha: Dùng để viết và chạy các trường hợp kiểm thử đơn vị

- Mockito, Sion: Dùng để tạo các đối tượng giả (mock objects) cho các trường hợp kiểm thử

2.1.5 Ưu và nhược điểm

Trang 9

2.2.1 Khái niệm

Kiểm thử tích hợp là một kỹ thuật kiểm thử phần mềm nhằm xác minh tính tương thích và phối hợp giữa các đơn vị code riêng lẻ sau khi chúng được tích hợp thành một hệthống hoàn chỉnh Kiểm thử tích hợp được thực hiện sau khi hoàn thành kiểm thử đơn vị

và trước khi tiến hành kiểm thử hệ thống

2.2.2 Mục tiêu

- Phát hiện lỗi sớm trong quá trình phát triển phần mềm

- Giảm thiểu chi phí sửa lỗi

- Tăng cường độ tin cậy và chất lượng phần mềm

2.2.3 Cách thực hiện

1, Thiết kế các trường hợp kiểm thị:

- Xác định các giao diện giữa các đơn vị code

- Viết các trường hợp kiểm thử để kiểm tra tất cả các trường hợp lệ và không hợp lệ của các giao diện này

2, Chạy các trường hợp kiểm thử:

- Sử dụng công cụ kiểm thử tích hợp để tự động hoá việc chạy các trường hợp kiểm thử

- Xác minh kết quả của các trường hợp kiểm thử

- Selenium, Cypress: Dùng để kiểm thử giao diện người dùng

- Postman: Dùng để kiểm thử API

- Jmeter, Gatling: Dùng để kiểm thử tải

2.2.5 Ưu và nhược điểm

Trang 10

2.3.2 Mục tiêu

- Đảm bảo hệ thống đáp ứng yêu cầu đề ra: Kiểm thử hệ thống giúp đảm bảo hệ thống đáp ứng tất cả các yêu cầu về chức năng, hiệu năng, bảo mật, khả năng sử dụng, v.v

- Phát hiện lỗi hệ thống: Kiểm thử hệ thống giúp phát hiện lỗi hệ thống, bao gồm cả lỗi chức năng, lỗi hiệu năng, lỗi bảo mật, v.v

- Tăng cường độ tin cậy và chất lượng hệ thống: Kiểm thử hệ thống giúp tăng cường

độ tin cậy và chất lượng hệ thống, giảm thiểu rủi ro lỗi xảy ra trong quá trình sử dụng

2.3.3 Cách thực hiện

9

Trang 11

1, Lập kế hoạch kiểm thử hệ thống: Xác định các loại hình kiểm thử cần thực hiện, phạm

vi kiểm thử, tài nguyên cần thiết và lịch trình kiểm thử

2, Thiết kế các trường hợp kiểm thử: Viết các trường hợp kiểm thử để kiểm tra tất cả các chức năng, hiệu năng, bảo mật, khả năng sử dụng, v.v của hệ thống

3, Thực hiện kiểm thử: Chạy các trường hợp kiểm thử và ghi lại kết quả

4, Phân tích kết quả: Phân tích kết quả kiểm thử để xác định lỗi hệ thống

5, Báo cáo kết quả: Báo cáo kết quả kiểm thử cho các bên liên quan

2.2.4 Công cụ

- Selenium, Cypress: Dùng để kiểm thử giao diện người dùng

- Postman: Dùng để kiểm thử API

- Jmeter, Gatling: Dùng để kiểm thử tải

- SoapUI: Dùng để kiểm thử dịch vụ web

2.2.5 Ưu và nhược điểm

1, Ưu điểm:

- Dễ phát hiện được lỗi hệ thống: Kiểm thử hệ thống có thể phát hiện lỗi hệ thống

mà các kỹ thuật kiểm thử khác không thể phát hiện được

- Đảm bảo chất lượng hệ thống: Kiểm thử hệ thống giúp đảm bảo chất lượng hệ thống trước khi triển khai, giảm thiểu rủi ro lỗi xảy ra trong quá trình sử dụng

- Có thể tiết kiệm chi phí: Việc phát hiện và sửa lỗi sớm giúp tiết kiệm chi phí so với việc sửa lỗi sau khi hệ thống đã được triển khai

2, Nhược điểm:

- Tốn thời gian: Việc thực hiện kiểm thử hệ thống có thể tốn thời gian, đặc biệt là cho các hệ thống phức tạp

- Tốn kém chi phí: Việc sử dụng các công cụ kiểm thử và thuê tester có thể tốn kém

- Có thể khó bảo trì: Việc bảo trì các trường hợp kiểm thử hệ thống có thể khó khăn khi hệ thống thay đổi

2.4 Kiểm thử chấp nhận (Acceptance Testing)

Trang 12

2.4.1 Khái niệm

Kiểm thử chấp nhận là một kỹ thuật kiểm thử phần mềm nhằm xác minh và xác nhận

hệ thống phần mềm đáp ứng các yêu cầu của người dùng và có thể được chấp nhận để triển khai Kiểm thử chấp nhận được thực hiện bởi người dùng cuối hoặc đại diện của người dùng cuối, sau khi hoàn thành kiểm thử hệ thống

2.4.2 Mục tiêu

- Đảm bảo hệ thống đáp ứng nhu cầu của người dùng: Kiểm thử chấp nhận giúp đảm bảo hệ thống đáp ứng tất cả các yêu cầu về chức năng, hiệu năng, bảo mật, khả năng sử dụng, v.v của người dùng

- Phát hiện lỗi hệ thống: Kiểm thử chấp nhận giúp phát hiện lỗi hệ thống mà các kỹ thuật kiểm thử khác không thể phát hiện được, bao gồm cả lỗi về khả năng sử dụng, trải nghiệm người dùng, v.v

- Tăng cường sự hài lòng của người dùng: Hệ thống được kiểm thử kỹ lưỡng bởi người dùng sẽ mang lại trải nghiệm tốt hơn cho người dùng, tăng cường sự hài lòng của người dùng

- Selenium, Cypress: Dùng để kiểm thử giao diện người dùng

- Postman: Dùng để kiểm thử API

11

Trang 13

- Jmeter, Gatling: Dùng để kiểm thử tải.

- SoapUI: Dùng để kiểm thử dịch vụ web

2.4.5 Ưu và nhược điểm

1,Ưu điểm:

- Dễ dàng phát hiện lỗi hệ thống: Kiểm thử chấp nhận có thể phát hiện lỗi hệ thống

mà các kỹ thuật kiểm thử khác không thể phát hiện được, bao gồm cả lỗi về khả năng sử dụng, trải nghiệm người dùng, v.v

- Có thể đảm bảo hệ thống đáp ứng nhu cầu người dùng: Kiểm thử chấp nhận giúp đảm bảo hệ thống đáp ứng nhu cầu của người dùng, tăng cường sự hài lòng của người dùng

- Có thể tiết kiệm chi phí: Việc phát hiện và sửa lỗi sớm giúp tiết kiệm chi phí so với việc sửa lỗi sau khi hệ thống đã được triển khai

2, Nhược điểm:

- Tốn thời gian: Việc thực hiện kiểm thử chấp nhận có thể tốn thời gian, đặc biệt là cho các hệ thống phức tạp

- Tốn kém chi phí: Việc sử dụng công cụ kiểm thử và thuê tester có thể tốn kém

- Khó bảo trì: Việc bảo trì các trường hợp kiểm thử chấp nhận có thể khó khăn khi

Trang 14

thử chỉ nhìn vào ứng dụng như một "hộp đen" và kiểm tra các đầu vào và đầu ra của nó.

- Hộp đen: Người kiểm thử không có kiến thức về cấu trúc bên trong của phần mềm, bao gồm mã nguồn, thiết kế, kiến trúc, v.v

- Dựa trên dữ liệu: Kiểm thử hộp đen dựa trên dữ liệu đầu vào và đầu ra để kiểm tra chức năng của phần mềm

2.5.3 Cách thực hiện

1, Xác định các trường hợp kiểm thử: Viết các trường hợp kiểm thử dựa trên các yêu cầu chức năng và phi chức năng của phần mềm

2, Chạy các trường hợp kiểm thử: Chạy các trường hợp kiểm thử và ghi lại kết quả

3, Phân tích kết quả: Phân tích kết quả để xác định lỗi phần mềm

4, Báo cáo kết quả: Báo cáo kết quả kiểm thử cho các bên liên quan

2.5.4 Công cụ

- Selenium, Cypress: Dùng để kiểm thử giao diện người dùng

- Postman: Dùng để kiểm thử API

- Jmeter, Gatling: Dùng để kiểm thử tải

- SoapUI: Dùng để kiểm thử dịch vụ web

2.5.5 Ưu và nhược điểm

Trang 15

- Khó phát hiện lỗi logic: Kiểm thử hộp đen khó phát hiện lỗi logic trong phần mềm.

- Khó kiểm tra toàn diện: Kiểm thử hộp đen khó kiểm tra toàn diện tất cả các chức năng của phần mềm

- Phụ thuộc vào dữ liệu: Kiểm thử hộp đen phụ thuộc vào dữ liệu đầu vào và đầu ra,

do đó có thể bỏ sót các lỗi xảy ra với dữ liệu không được kiểm tra

2.6 Kiểm thử hộp trắng (White Box Testing)

2.6.1 Khái niệm

Kiểm thử hộp trắng là một kỹ thuật kiểm thử phần mềm mà việc kiểm tra các chức năng của một ứng dụng dựa trên cấu trúc nội bộ, mã nguồn, thiết kế và kiến trúc của nó Mục đích chính của kiểm thử hộp trắng là để đảm bảo rằng phần mềm được viết đúng, hiệu quả và dễ bảo trì

1, Phân tích mã nguồn: Phân tích mã nguồn để hiểu cách thức hoạt động của phần mềm

2, Thiết kế các trường hợp kiểm thử: Viết các trường hợp kiểm thử dựa trên cấu trúc nội

bộ của phần mềm

3, Chạy các trường hợp kiểm thử: Chạy các trường hợp kiểm thử và ghi lại kết quả

4, Phân tích kết quả: Phân tích kết quả để xác định lỗi phần mềm

5, Báo cáo kết quả: Báo cáo kết quả kiểm thử cho các bên liên quan

2.6.4 Công cụ

Trang 16

- Debugger: Dùng để gỡ lỗi phần mềm.

- Code coverage tools: Dùng để đo lường mức độ phủ của code trong quá trình kiểmthử

- Static analysis tools: Dùng để phân tích mã nguồn và phát hiện lỗi tiềm ẩn

2.6.5 Ưu và nhược điểm

2.7.2 Mục tiêu

15

Trang 17

- Phát hiện lỗi: Kiểm thử hộp xám giúp phát hiện lỗi phần mềm, bao gồm lỗi chức năng, lỗi hiệu năng, lỗi bảo mật, v.v.

- Cải thiện chất lượng phần mềm: Kiểm thử hộp xám giúp cải thiện chất lượng phầnmềm bằng cách phát hiện lỗi và cải thiện hiệu quả của phần mềm

- Tiết kiệm chi phí: Kiểm thử hộp xám có thể giúp tiết kiệm chi phí phát triển phần mềm bằng cách phát hiện lỗi sớm

2.7.3 Cách thực hiện

1, Hiểu biết về cấu trúc nội bộ: Người kiểm thử cần có kiến thức hạn chế về cấu trúc nội

bộ của phần mềm, chẳng hạn như kiến thức về cơ sở dữ liệu, API hoặc kiến trúc tổng thể

2, Thiết kế các trường hợp kiểm thử: Viết các trường hợp kiểm thử dựa trên kiến thức về cấu trúc nội bộ và các yêu cầu chức năng của phần mềm

3, Chạy các trường hợp kiểm thử: Chạy các trường hợp kiểm thử và ghi lại kết quả

4, Phân tích kết quả: Phân tích kết quả để xác định lỗi phần mềm

5, Báo cáo kết quả: Báo cáo kết quả kiểm thử cho các bên liên quan

2.7.4 Công cụ

- Công cụ debugger: Dùng để gỡ lỗi phần mềm

- Công cụ phân tích mã: Dùng để phân tích mã nguồn và phát hiện lỗi tiềm ẩn

- Công cụ kiểm thử API: Dùng để kiểm thử API

2.7.5 Ưu và nhược điểm

Trang 18

- Có thể kiểm tra toàn diện: Kiểm thử hộp xám có thể kiểm tra toàn diện tất cả các chức năng của phần mềm.

Kiểm thử chức năng là một kỹ thuật kiểm thử phần mềm nhằm xác minh và xác nhận

hệ thống phần mềm đáp ứng các yêu cầu chức năng, tức là hệ thống thực hiện đúng các chức năng theo yêu cầu của người dùng Kiểm thử chức năng được thực hiện sau khi hoàn thành kiểm thử đơn vị và trước khi triển khai hệ thống

Trang 19

2, Thiết kế các trường hợp kiểm thử: Viết các trường hợp kiểm thử dựa trên các yêu cầu chức năng và các kịch bản sử dụng thực tế.

3, Thực hiện kiểm thử: Chạy các trường hợp kiểm thử và ghi lại kết quả

4, Phân tích kết quả: Phân tích kết quả kiểm thử để xác định lỗi hệ thống

5, Báo cáo kết quả: Báo cáo kết quả kiểm thử cho các bên liên quan

2.8.4 Công cụ

- Selenium, Cypress: Dùng để kiểm thử giao diện người dùng

- Postman: Dùng để kiểm thử API

- JMeter, Gatling: Dùng để kiểm thử tải

- SoapUI: Dùng để kiểm thử dịch vụ web

2.8.5 Ưu và nhược điểm

- Phụ thuộc vào dữ liệu: Kiểm thử chức năng phụ thuộc vào dữ liệu đầu vào và đầu

ra, do đó có thể bỏ sót các lỗi xảy ra với dữ liệu không được kiểm tra

2.9 Kiểm thử phi chức năng (Non-Functional Testing)

2.9.1 Khái niệm

Ngày đăng: 20/05/2024, 15:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN