7 NGUYÊN TẮC KIỂM THỬ PHẦN MỀM MÀ MỌI TESTER NÊN ÁP DỤNG

Kiểm thử là một phần thiết yếu của quá trình phát triển phần mềm. Để quá trình kiểm thử đạt được hiệu quả cao nhất, các tester cần tuần theo 7 nguyên tắc kiểm thử dưới đây.

Theo ISTQB (International Software Testing Qualifications Board), 7 nguyên tắc kiểm thử phần mềm bao gồm:

1. Kiểm thử cho thấy sự hiện diện của lỗi

2. Kiểm thử tất cả là điều không thể

3. Kiểm thử sớm giúp tiết kiệm thời gian và chi phí

4. Lỗi tập trung lại một cụm với nhau

5. Nghịch lý thuốc trừ sâu

6. Kiểm thử phụ thuộc ngữ cảnh

7. Suy nghĩ sai lầm về việc hết lỗi

Hãy cùng iViettech tìm hiểu cụ thể về các nguyên tắc này nhé!

1. Kiểm thử cho thấy sự hiện diện của lỗi

Mục đích của kiểm thử phần mềm là xác định các lỗi (bug) để các developer có thể khắc phục chúng trước khi triển khai phần mềm vào môi trường sản xuất. Nhờ có hoạt động kiểm thử, các lỗi tiềm ẩn trong giai đoạn phát triển phần mềm sẽ được phát hiện và loại bỏ, từ đó đảm bảo những sản phẩm có chất lượng tốt nhất mới được phép đến tay khách hàng.

Tuy nhiên, quá trình kiểm thử này không có nghĩa là không có bất kỳ lỗi nào trong sản phẩm. Nó chỉ có nghĩa là có thể có lỗi, nhưng bạn đã không tìm thấy chúng. Điển hình là một ứng dụng không còn xuất hiện lỗi khi chuyển sang giai đoạn kiểm thử khác, nhưng nó có thể xuất hiện lỗi trong quá trình đưa ra thị trường cho người dùng thử nghiệm.

Do đó, kiểm thử phần mềm chỉ giúp giảm thiểu tối đa lỗi của sản phẩm. Điều quan trọng là các Tester phải thiết kế được bộ Test Case có mức bao phủ rộng để có thể tìm được càng nhiều lỗi càng tốt.

2. Kiểm thử tất cả là điều không thể

Sự thật là các Tester không thể kiểm thử tất cả mọi thứ. Người kiểm thử không thể thử nghiệm ứng dụng từ mọi khía cạnh, tức là mọi sự kết hợp của dữ liệu đầu vào và dữ liệu đầu ra. Nếu bạn cố gắng làm vậy, bạn sẽ lãng phí thời gian, tiền bạc và công sức, nhưng nó sẽ không ảnh hưởng đến chất lượng tổng thể của phần mềm.

Không có sản phẩm nào đảm bảo sự hoàn hảo 100%. Nó có thể đạt được 99% hiệu quả về mặt chức năng, nhưng việc đạt được hiệu quả 100% về mặt kỹ thuật là điều phi thực tế. Các Tester luôn nỗ lực tối đa để tạo ra một phần mềm không có lỗi, nhưng việc tìm ra được toàn bộ lỗi là ngoài sức tưởng tượng.

Thay vì kiểm thử toàn diện, bạn có thể đánh giá các rủi ro và lập kế hoạch kiểm thử xung quanh những rủi ro này để chắc chắn rằng mình đang kiểm tra các chức năng chính. Các Tester thường lường trước các rủi ro và ưu tiên tập trung kiểm tra các điểm cần thiết có nguy cơ lỗi cao – và không cần phải kiểm tra từng dòng code riêng lẻ.

3. Kiểm thử sớm giúp tiết kiệm thời gian và chi phí

Trong vòng đời phát triển phần mềm, kiểm thử sớm là chìa khóa để xác định bất định bất kỳ lỗi nào trong giai đoạn yêu cầu hoặc thiết kế càng sớm càng tốt. Việc gỡ lỗi sớm từ giai đoạn đầu của kiểm thử sẽ dễ dàng và ít tốn kém hơn nhiều so với khi kết thúc vòng đời phần mềm, vì khi đó bản có thể phải viết lại toàn bộ khu vực chức năng. Ngoài ra, nếu phát hiện lỗi muộn (nhất là vào giai đoạn cuối) sẽ dẫn đến việc sửa – test – code vội, kéo theo chất lượng sản phẩm không được đảm bảo. Điều này có nghĩa tiến độ dự án sẽ không hoàn thành đúng thời hạn và buộc phải overtime, chi phí của dự án theo đó cũng tăng lên.

Tóm lại, hoạt động kiểm thử nên được tiến hành càng sớm càng tốt ngay từ giai đoạn đầu của quá trình phát triển phần mềm.

4. Lỗi tập trung lại một cụm với nhau

Nguyên tắc này mô tả về việc mật độ phân bổ lỗi trong một sản phẩm. Đa số mọi người nghĩ rằng lỗi sẽ phân bổ đồng đều nhưng thực chất thì phần lớn lỗi sẽ tập trung vào những module chính của hệ thống. Ví dụ, một sản phẩm có 10 module nhưng chỉ 1 module gây ra số lượng lỗi tối đa trong quá trình phát triển phần mềm.

Hiểu được điều này có thể giúp ích cho quá trình kiểm thử, vì nếu bạn tìm thấy một lỗi trong một khu vực cụ thể, bạn có thể sẽ tìm thấy nhiều lỗi hơn trong cùng module đó. Nếu bạn xác định được những khu vực phức tạp đang thay đổi nhiều nhất hoặc những khu vực có nhiều yếu tố phụ thuộc hơn, thì bạn có thể tập trung thử nghiệm vào những khu vực rủi ro chính này.

5. Nghịch lý thuốc trừ sâu

Nguyên tắc này xoay quanh lý thuyết rằng nếu bạn sử dụng lặp đi lặp lại một loại thuốc trừ sâu cụ thể trên cây trồng của mình, thì côn trùng mà bạn đang cố gắng tiêu diệt hoặc xua đuổi cuối cùng sẽ trở nên miễn nhiễm với thuốc trừ sâu và thuốc sẽ không còn hiệu quả nữa.

Tương tự như vậy, nếu bạn liên tục chạy cùng một bộ Test Case để kiểm tra sản phẩm, thì cuối cùng bạn sẽ không tìm ra lỗi mới, có thể xác nhận phần mềm đang hoạt động, nhưng rồi vẫn thất bại do xuất hiện các vấn đề khác phát sinh.

Do đó, bạn phải tiếp tục xem xét, bổ sung và sửa đổi bộ Test Case của mình thường xuyên để khắc phục nghịch lý thuốc trừ sâu này.

6. Kiểm thử phụ thuộc ngữ cảnh

Nguyên tắc này yêu cầu các Tester phải có sự linh hoạt. Mỗi ứng dụng đều có những yêu cầu riêng và nhiệm vụ của Tester là phải thiết kế được bộ Test Case phù hợp với ngữ cảnh.

Ví dụ: Kiểm thử ứng dụng iOS khác với kiểm thử website thương mại điện tử, nên bạn không thể sử dụng cùng một bộ Test Case y hệt nhau cho cả hai trường hợp này. Điều này là do sự khác biệt về giao diện, kích thước, bộ nhớ, tính tương thích, hành vi thao tác người dùng, v.v.

7. Suy nghĩ sai lầm về việc hết lỗi

Nếu phần mềm của bạn 99% không có lỗi nhưng nó không đáp ứng được yêu cầu của người dùng, thì nó vẫn không sử dụng được. Nguyên tắc này khuyến khích các Tester xác nhận xem ứng dụng có đáp ứng được yêu cầu hay không.

Việc tiến hành kiểm thử liên quan đến các yêu cầu của hệ thống là rất quan trọng. Kiểm thử phần mềm không chỉ là tìm lỗi, mà còn đảm bảo rằng phần mềm đáp ứng nhu cầu và yêu cầu của người dùng.

Kết luận

Nếu bạn áp dụng 7 nguyên tắc này vào quy trình kiểm thử của mình, bạn có thể trở nên tập trung và hiệu quả hơn cũng như nâng cao chất lượng của chiến lược kiểm thử tổng thể của mình.

Ngoài ra, bạn có thể thấy rằng khi bạn áp dụng một nguyên tắc, các nguyên tắc khác có thể được áp dụng một cách tự nhiên. Chẳng hạn, thử nghiệm sớm trong vòng đời phát triển phần mềm có thể giúp giảm thiểu suy nghĩ sai lầm về việc hết lỗi, vì nếu bạn thử nghiệm ở mức yêu cầu, bạn có thể giúp đảm bảo rằng phần mềm sẽ đáp ứng yêu cầu của người dùng.

Bài viết trên đã tổng hợp 7 nguyên tắc quan trọng trong kiểm thử phần mềm. Việc áp dụng các nguyên tắc này sẽ giúp nâng cao chất lượng của toàn bộ quy trình kiểm thử.

Bạn muốn trở thành Tester chuyên nghiệp chỉ trong thời gian ngắn? Tìm hiểu ngay khóa học Kiểm thử phần mềm với lộ trình 03 tháng của iViettech: https://iviettech.vn/chuong-trinh-dao-tao/48-kiem-thu-phan-mem-3.html

Đối tác tuyển dụng