Giáo Trình Kiểm Thử Phần Mềm 1: Cẩm Nang Cho Sinh Viên Công Nghệ Thông Tin

Khám phá giáo trình kiểm thử phần mềm 1 trong công nghệ thông tin, cung cấp kiến thức và kỹ năng cần thiết cho nghề nghiệp trong lĩnh vực này.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Giáo Trình

2019

144
5
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI GIỚI THIỆU

1. CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

1.1. Sự cần thiết của kiểm thử

1.1.1. Ngữ cảnh hệ thống phần mềm

1.1.2. Nguyên nhân gây ra các lỗi của phần mềm

1.1.3. Vai trò của kiểm thử trong phát triển, vận hành và bảo trì phần mềm

1.1.4. Kiểm thử và chất lượng

1.1.5. Kiểm thử bao nhiêu là đủ?

1.2. Kiểm thử là gì?

1.3. Bảy nguyên lý của kiểm thử phần mềm

1.4. Quy trình tổng quát của kiểm thử phần mềm

2. CHƯƠNG 2: KIỂM THỬ TRONG VÒNG ĐỜI PHẦN MỀM

2.1. Các mô hình phát triển phần mềm

2.2. Kiểm thử trong một mô hình vòng đời phần mềm

2.3. Các mức độ kiểm thử

2.3.1. Kiểm thử đơn vị (Component testing)

2.3.2. Kiểm thử tích hợp

2.3.3. Kiểm thử hệ thống

2.3.4. Kiểm thử chấp nhận

2.4. Các loại kiểm thử

2.4.1. Kiểm thử chức năng

2.4.2. Kiểm thử phi chức năng

2.4.3. Kiểm thử cấu trúc

2.4.4. Kiểm thử liên quan đến thay đổi: Kiểm thử xác nhận và kiểm thử hồi quy

2.4.5. Kiểm thử bảo trì

3. CHƯƠNG 3: KỸ THUẬT TĨNH

3.1. Kỹ thuật tĩnh và quy trình kiểm thử

3.2. Tiến trình Review

3.2.1. Những giai đoạn của một buổi Review chính thức

3.2.2. Vai trò và trách nhiệm

3.2.3. Các yếu tố giúp một buổi Review thành công

4. CHƯƠNG 4: CÁC KỸ THUẬT THIẾT KẾ KIỂM THỬ

4.1. Quy trình phát triển của kiểm thử phần mềm

4.2. Phân loại các kỹ thuật thiết kế kiểm thử

4.3. Kỹ thuật kiểm thử Hộp đen hoặc Kiểm thử dựa trên đặc tả

4.3.1. Kỹ thuật phân vùng tương đương

4.3.2. Kỹ thuật phân tích giá trị biên

4.3.3. Kiểm thử dựa trên Bảng quyết định

4.3.4. Kiểm thử chuyển trạng thái

4.3.5. Kiểm thử theo mô hình Use Case

4.4. Kỹ thuật kiểm thử hộp trắng hoặc kiểm thử dựa trên cấu trúc

4.4.1. Kiểm thử bao phủ câu lệnh (Statement Coverage)

4.4.2. Kiểm thử bao phủ quyết định

4.5. Kỹ thuật kiểm thử dựa trên kinh nghiệm

4.5.1. Kiểm thử thăm dò

4.6. Lựa chọn các kỹ thuật kiểm thử

5. CHƯƠNG 5: QUẢN LÝ KIỂM THỬ

5.1. Tổ chức kiểm thử

5.1.1. Tổ chức kiểm thử độc lập

5.1.2. Nhiệm vụ của Test Leader và Tester

5.2. Lập kế hoạch và ước lượng kiểm thử

5.2.1. Lập kế hoạch kiểm thử

5.2.2. Những hoạt động lập kế hoạch kiểm thử

5.2.3. Tiêu chí đầu vào

5.2.4. Tiêu chí xuất (Exit criteria)

5.2.5. Ước lượng kiểm thử

5.2.6. Hướng tiếp cận kiểm thử (chiến lược kiểm thử)

5.3. Giám sát và điều khiển tiến độ kiểm thử

5.3.1. Giám sát tiến độ kiểm thử

5.4. Kiểm soát kiểm thử

5.5. Quản lý cấu hình

5.5.1. Tại sao cần Quản lý cấu hình?

5.5.2. Hoạt động quản lý cấu hình

5.6. Kiểm thử và rủi ro

5.6.1. Rủi ro của dự án

5.6.2. Rủi ro của sản phẩm

5.7. Quản lý sự cố (quản lý lỗi)

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về Giáo Trình Kiểm Thử Phần Mềm 1 Kiến Thức Cơ Bản

Giáo trình Kiểm thử phần mềm 1 cung cấp cho sinh viên những kiến thức cơ bản về lĩnh vực kiểm thử phần mềm theo chuẩn ISTQB. Nội dung giáo trình bao gồm các khái niệm, nguyên lý và quy trình kiểm thử, giúp sinh viên nắm vững các đặc trưng và yêu cầu của ngành. Qua đó, sinh viên sẽ hiểu rõ hơn về các mức độ kiểm thử, các loại kiểm thử và kỹ thuật thiết kế kiểm thử. Giáo trình cũng bao gồm các bài tập thực hành để sinh viên có thể áp dụng lý thuyết vào thực tế.

1.1. Ứng dụng của Kiểm Thử Phần Mềm trong Thực Tế

Kiểm thử phần mềm đóng vai trò quan trọng trong việc đảm bảo chất lượng sản phẩm. Nó giúp phát hiện lỗi sớm, giảm thiểu chi phí sửa chữa và nâng cao sự hài lòng của khách hàng. Việc áp dụng các kỹ thuật kiểm thử phù hợp sẽ giúp tối ưu hóa quy trình phát triển phần mềm.

1.2. Các Nguyên Tắc Cơ Bản trong Kiểm Thử Phần Mềm

Có bảy nguyên tắc cơ bản trong kiểm thử phần mềm mà mọi tester cần nắm vững. Những nguyên tắc này không chỉ giúp định hướng quy trình kiểm thử mà còn nâng cao hiệu quả công việc. Việc hiểu rõ các nguyên tắc này sẽ giúp sinh viên thực hiện kiểm thử một cách hiệu quả hơn.

II. Vấn Đề và Thách Thức trong Kiểm Thử Phần Mềm

Trong quá trình phát triển phần mềm, việc phát hiện và xử lý lỗi là một thách thức lớn. Nhiều lỗi có thể phát sinh từ giai đoạn thu thập yêu cầu cho đến khi sản phẩm được phát hành. Việc không thực hiện kiểm thử đúng cách có thể dẫn đến những hậu quả nghiêm trọng, như mất uy tín và khách hàng. Do đó, việc hiểu rõ các vấn đề liên quan đến kiểm thử phần mềm là rất cần thiết.

2.1. Nguyên Nhân Gây Ra Lỗi trong Phần Mềm

Có nhiều nguyên nhân dẫn đến lỗi trong phần mềm, từ việc thu thập yêu cầu không chính xác đến thiết kế và lập trình sai. Việc phát hiện lỗi càng sớm sẽ giúp giảm thiểu chi phí sửa chữa và nâng cao chất lượng sản phẩm.

2.2. Những Thách Thức Khi Thực Hiện Kiểm Thử

Các thách thức trong kiểm thử phần mềm bao gồm việc xác định các trường hợp kiểm thử phù hợp, quản lý thời gian và nguồn lực. Ngoài ra, việc phối hợp giữa các thành viên trong nhóm cũng là một yếu tố quan trọng để đảm bảo quy trình kiểm thử diễn ra suôn sẻ.

III. Phương Pháp Kiểm Thử Phần Mềm Hiệu Quả

Để thực hiện kiểm thử phần mềm hiệu quả, cần áp dụng các phương pháp và kỹ thuật kiểm thử phù hợp. Việc lựa chọn phương pháp kiểm thử sẽ phụ thuộc vào loại phần mềm và yêu cầu của dự án. Các phương pháp như kiểm thử hộp đen, kiểm thử hộp trắng và kiểm thử dựa trên kinh nghiệm đều có những ưu điểm riêng.

3.1. Kiểm Thử Hộp Đen và Hộp Trắng

Kiểm thử hộp đen tập trung vào đầu vào và đầu ra của phần mềm mà không cần biết cấu trúc bên trong. Ngược lại, kiểm thử hộp trắng yêu cầu tester phải hiểu rõ về mã nguồn và cấu trúc của phần mềm. Việc kết hợp cả hai phương pháp này sẽ giúp nâng cao hiệu quả kiểm thử.

3.2. Kỹ Thuật Kiểm Thử Dựa Trên Kinh Nghiệm

Kỹ thuật kiểm thử dựa trên kinh nghiệm cho phép tester sử dụng kiến thức và kinh nghiệm của mình để xác định các trường hợp kiểm thử. Phương pháp này thường giúp phát hiện lỗi nhanh chóng và hiệu quả hơn.

IV. Ứng Dụng Thực Tiễn của Kiểm Thử Phần Mềm

Kiểm thử phần mềm không chỉ là một bước trong quy trình phát triển mà còn là một phần quan trọng trong việc đảm bảo chất lượng sản phẩm. Việc áp dụng các kỹ thuật kiểm thử trong thực tế sẽ giúp nâng cao chất lượng phần mềm và đáp ứng tốt hơn nhu cầu của khách hàng.

4.1. Kiểm Thử Trong Vòng Đời Phát Triển Phần Mềm

Kiểm thử cần được thực hiện xuyên suốt trong vòng đời phát triển phần mềm, từ giai đoạn thu thập yêu cầu đến khi sản phẩm được phát hành. Việc này giúp phát hiện lỗi sớm và giảm thiểu chi phí sửa chữa.

4.2. Kết Quả Nghiên Cứu và Ứng Dụng Kiểm Thử

Nghiên cứu cho thấy rằng việc thực hiện kiểm thử đúng cách có thể giảm thiểu 30% chi phí phát triển phần mềm. Các công ty áp dụng quy trình kiểm thử hiệu quả thường có tỷ lệ lỗi thấp hơn và sự hài lòng của khách hàng cao hơn.

V. Kết Luận và Tương Lai của Kiểm Thử Phần Mềm

Kiểm thử phần mềm là một lĩnh vực đang phát triển mạnh mẽ với nhiều thách thức và cơ hội. Việc nắm vững kiến thức và kỹ năng trong kiểm thử sẽ giúp sinh viên chuẩn bị tốt hơn cho sự nghiệp trong ngành công nghệ thông tin. Tương lai của kiểm thử phần mềm sẽ tiếp tục được định hình bởi sự phát triển của công nghệ và nhu cầu ngày càng cao về chất lượng phần mềm.

5.1. Xu Hướng Mới Trong Kiểm Thử Phần Mềm

Các xu hướng mới trong kiểm thử phần mềm bao gồm tự động hóa kiểm thử, kiểm thử dựa trên AI và kiểm thử trong môi trường DevOps. Những xu hướng này sẽ giúp nâng cao hiệu quả và giảm thiểu thời gian kiểm thử.

5.2. Tương Lai của Ngành Kiểm Thử Phần Mềm

Ngành kiểm thử phần mềm sẽ tiếp tục phát triển với sự gia tăng nhu cầu về chất lượng phần mềm. Các chuyên gia kiểm thử sẽ cần cập nhật kiến thức và kỹ năng để đáp ứng tốt hơn yêu cầu của thị trường.

27/07/2025
Giáo trình kiểm thử phần mềm 1 công nghệ thông tin

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM MỤC TIÊU THỰC HIỆN: Sau khi học xong chương này, sinh viên có khả năng: - Trình bày được sự cần thiết của kiểm thử phần mềm, 7 nguyên tắc kiểm thử và quy trình tổng quát của kiểm thử. - Trình bày được những kiến thức, kỹ năng, đạo đức, thái độ và những yêu cầu của doanh nghiệp mà một nhân viên kiểm thử phần mềm cần đạt được.1 Sự cần thiết của kiểm thử 1.1 Ngữ cảnh hệ thống phần mềm Một trong những nguyên lý kiểm thử quan trọng đó là: Kiểm thử phụ thuộc vào ngữ cảnh. Theo nguyên lý này, việc kiểm thử được thực hiện khác nhau trong những ngữ cảnh khác nhau. Ví dụ, khi kiểm thử một ứng dụng Web thương mại điện tử chúng ta thường tập trung vào những tiêu chí như giao diện, cách thanh toán, sự tiện dụng khi mua hàng,.trong khi nếu kiểm thử một phần mềm Đăng ký môn học thì chúng ta thường tập trung vào kiểm thử những vấn đề như điều kiện tiên quyết của môn học, số sinh viên tối thiểu và tối đa trong một lớp, số lượng người đăng ký đồng thời,.Có thể thấy được tùy vào mỗi loại phần mềm khác nhau mà nhân viên kiểm thử sẽ thiết kế các bộ Test phù hợp để kiểm thử đúng các tiêu chí quy định cho mỗi loại phần mềm đó.2 Nguyên nhân gây ra các lỗi của phần mềm Có 4 trường hợp thường gặp khi phát triển phần mềm như sau (xem hình 1.1): Trường hợp 1: Đội ngũ lấy yêu cầu khách hàng lấy yêu cầu đúng, đội ngũ thiết kế thiết kế đúng theo yêu cầu, và đội ngũ lập trình lập trình đúng theo thiết kế, từ đó sẽ sản xuất ra được một phần mềm hoạt động đúng như mong đợi của khách hàng.

Trường hợp 2: Đôi ngũ lấy yêu cầu khách hàng lấy yêu cầu đúng, đội ngũ thiết kế thiết kế đúng theo yêu cầu, tuy nhiên trong quá trình lập trình, đội ngũ lập trình gây ra nhiều lỗi dẫn đến phần mềm có nhiều bugs trong đó. Ở trường hợp này, bugs phát sinh trong giai đoạn lập trình và có thể sửa chữa (fix) nhanh chóng nếu được kiểm thử kỹ càng. 1 Trường hợp 3: Đội ngũ lấy yêu cầu khách hàng lấy yêu cầu đúng, nhưng đội ngũ thiết kế có thể hiểu lầm hoặc vì lý do nào đó dẫn đến thiết kế không đúng với yêu cầu, sau đó chuyển sang đội ngũ lập trình thì họ sẽ lập trình đúng theo thiết kế, sau khi code xong và chuyển sang giai đoạn kiểm thử thì phát hiện ra sản phẩm tuy code ít lỗi nhưng lại có thiết kế không đúng theo yêu cầu. Ở trường hợp này, chi phí để chỉnh sửa phần mềm tốn kém nhiều hơn ở trường hợp 2 vì bắt buộc phải đi thiết kế lại theo đúng yêu cầu rồi sau đó lập trình lại theo thiết kế.

Trường hợp 4: Đội ngũ lấy yêu cầu khách hàng vì lý do nào đó (ví dụ: ngôn ngữ dịch không chuẩn, hoặc không triển khai nhiều phương pháp để làm rõ yêu cầu của khách hàng) dẫn đến lấy yêu cầu sai mà cứ nghĩ mình đúng, sau đó đội ngũ thiết kế sẽ thiết kế theo đúng những yêu cầu mà đội ngũ lấy yêu cầu truyền đạt lại, và đội ngũ lập trình sẽ lập trình đúng theo thiết kế. Ở trường hợp này, sản phẩm tưởng chừng như là đúng đó (code đúng theo thiết kế, và thiết kế đúng theo yêu cầu) có thể chứa đựng những lỗi tiềm ẩn bên trong nó mà đội ngũ lập trình lẫn kiểm thử có thể không biết, khi bàn giao cho khách hàng, tuy rằng phần mềm hoạt động tốt nhưng cuối cùng khách hàng không chấp nhận vì không đúng ý của họ. Trường hợp này rất nguy hiểm, có thể bị đền hợp đồng cho khách hàng và xa hơn nữa là có thể mất khách hàng và mất uy tín của công ty. Từ 4 trường hợp trên ta có thể thấy được việc kiểm thử phải được thực hiện càng sớm càng tốt.

Kiểm thử cần bắt đầu từ giai đoạn lấy yêu cầu của khách hàng để có thể phát hiện sớm và làm rõ các vấn đề còn mơ hồ để thiết kế và xây dựng phần mềm cho đúng, đáp ứng được mong muốn của khách hàng và giảm thiểu được chi phí phát triển phần mềm.1: Các trường hợp lỗi khi phát triển phần mềm Lỗi được phát hiện càng sớm thì chi phí sửa lỗi càng ít.2: Lỗi được phát hiện càng sớm thì chi phí sửa lỗi càng ít 1.3 Vai trò của kiểm thử trong phát triển, vận hành và bảo trì phần mềm Kiểm thử nghiêm ngặt hệ thống phần mềm và tài liệu có thể giúp giảm thiểu những vấn đề rủi ro xảy ra trong quá trình vận hành và góp phần nâng cao chất lượng của hệ thống phần mềm, nếu như các lỗi được tìm thấy và sửa chữa trước khi hệ thống được vận hành thực tế. 3 Kiểm thử phần mềm đảm bảo cho phần mềm đáp ứng đúng các yêu cầu từ phía khách hàng, tuân thủ hợp đồng cũng như đáp ứng tốt những tiêu chuẩn nghiệp vụ của công ty mua và sử dụng phần mềm, ví dụ: nghiệp vụ du lịch trong phần mềm quản lý các tour du lịch, nghiệp vụ kế toán trong phần mềm kế toán, các nghiệp vụ liên quan đến việc quản lý sinh viên, quản lý điểm, đăng ký học phần. trong phần mềm quản lý trường học,.4 Kiểm thử và chất lượng Ngoài việc xây dựng được một phần mềm đáp ứng các yêu cầu của khách hàng về mặt chức năng, giao diện thì việc tạo ra được một phần mềm tốt, hiệu suất tốt, độ ổn định cao khi vận hành là vấn đề rất cần được quan tâm và cần có quy trình thực hiện với đầy đủ các khâu từ phân tích, thiết kế, cài đặt, kiểm thử để đảm bảo phần mềm đạt được chất lượng tốt nhất, đáp ứng yêu cầu của khách hàng, đem lại sự tự tin cho phần mềm và gia tăng uy tín của công ty. Kiểm thử mang lại sự tự tin về chất lượng của phần mềm nếu việc kiểm thử tìm thấy một vài hoặc không tìm thấy lỗi.

Kiểm thử đúng sẽ giảm thiểu được tổng thể mức độ rủi ro của hệ thống. Khi quá trình kiểm thử tìm thấy lỗi, chất lượng của hệ thống phần mềm được nâng cao sau khi những lỗi đó được sửa chữa. Kiểm thử có thể đo lường chất lượng của phần mềm về các khiếm khuyết được tìm thấy (cả yêu cầu phần mềm chức năng và phi chức năng) và cả các đặc tính: - Độ tin cậy - Khả năng sử dụng - Hiệu quả - Bảo trì - Tính di động Cải thiện chất lượng của hệ thống trong tương lai bằng cách rút ra những bài học từ những dự án trước. Hiểu được nguyên nhân gốc của các khiếm khuyết được tìm thấy trong dự án.

Kiểm thử là một trong những hoạt động đảm bảo chất lượng.5 Kiểm thử bao nhiêu là đủ? Một trong những nguyên tắc quan trọng trong Kiểm thử phần mềm đó là Kiểm thử toàn bộ là không thể. Kiểm thử mọi thứ là không thực hiện được, trừ khi nó chỉ bao 4 gồm một số trường hợp bình thường. Thay vì kiểm thử toàn bộ, việc phân tích rủi ro và dựa trên mức độ ưu tiên để tập trung nỗ lực kiểm thử vào một số điểm cần thiết.2 Kiểm thử là gì? Kiểm thử phần mềm là một quy trình với một chuỗi các hoạt động như sau: - Lập kế hoạch kiểm thử và điều khiển việc kiểm thử. - Phân tích và thiết kế kiểm thử (chọn điều kiện test, thiết kế các Test Case).

- Thiết lập môi trường kiểm thử và chạy kiểm thử. - Đánh giá tiêu chí xuất và báo cáo. - Các hoạt động kết thúc việc kiểm thử. Mục tiêu của việc kiểm thử bao gồm: - Mục tiêu quan trọng của kiểm thử phần mềm là tìm lỗi.

Bất kỳ phần mềm nào được tạo ra cũng đều có lỗi bên trong đó, nhiệm vụ của các Tester là tìm kiếm được các lỗi có trong phần mềm để các Developer sửa lỗi và bàn giao được một phần mềm tốt nhất cho khách hàng. - Một mục tiêu nữa là việc kiểm thử giúp nâng cao chất lượng của phần mềm, gia tăng sự tự tin của đội ngũ phát triển với phần mềm mình tạo ra. - Một mục tiêu khác của kiểm thử phần mềm là giúp ngăn ngừa lỗi. Việc kiểm thử phần mềm được tiến hành từ các giai đoạn sớm trong quá trình phát triển phần mềm giúp cho quá trình phát triển phần mềm được thuận lợi hơn, ngăn ngừa được các lỗi phát sinh kể cả từ giai đoạn phân tích và làm rõ yêu cầu phần mềm.3 Bảy nguyên lý của kiểm thử phần mềm Nguyên lý 1: Kiểm thử cho thấy sự hiện diện của lỗi Kiểm thử có thể cho thấy sự có mặt của các lỗi, nhưng không thể chứng minh phần mềm không có lỗi.

Kiểm thử giảm xác suất của các lỗi chưa được tìm thấy vẫn còn trong phần mềm. Nguyên lý 2: Kiểm thử toàn bộ là không thể Kiểm thử mọi thứ là không thực hiện được, trừ khi nó chỉ bao gồm một số trường hợp bình thường. Thay vì kiểm thử toàn bộ, việc phân tích rủi ro và dựa trên mức độ ưu tiên để tập trung nỗ lực kiểm thử vào một số điểm cần thiết. Ví dụ chúng ta có một phần mềm dùng để đếm số lượng nguyên âm khi chúng ta nhập một từ có 5 ký tự vào Textbox như sau: 5 Hình 1.3: Nguyên lý 2 – kiểm thử toàn bộ là không thể Nếu chúng ta kiểm thử hết tất cả các từ 5 chữ có thể có (ví dụ: apple, hello, awake,.) thì chúng ta sẽ cần tới 26 mũ 5 = 11.376 Test Cases để kiểm thử, điều này là bất khả thi vì những vấn đề như thời gian, nhân lực, chi phí không cho phép.

Do đó, chúng ta cần có những kỹ thuật kiểm thử phù hợp để rút ngắn được thời gian kiểm thử mà vẫn đảm bảo phần mềm hoạt động đúng theo yêu cầu (ví dụ các kỹ thuật phân vùng tương đương, kỹ thuật phân tích giá trị biên, kỹ thuật dùng bảng quyết định,.) Nguyên lý 3: Kiểm thử sớm Để tìm được các lỗi sớm nhất có thể, các hoạt động kiểm thử nên được bắt đầu càng sớm càng tốt trong vòng đời phát triển phần mềm hoặc hệ thống.4: Nguyên lý 3 – kiểm thử sớm Nguyên lý 4 – Sự tập trung của lỗi Nỗ lực kiểm thử nên tập trung một cách cân đối vào mật độ lỗi dự kiến và lỗi phát hiện ra sau đó trong các mô-đun. Một số ít các mô-đun thường chứa nhiều lỗi không phát hiện ra trong lúc kiểm thử trước khi phát hành (release), hoặc chịu trách nhiệm cho hầu hết các lỗi hoạt động của phần mềm.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ