Rủi ro và Kiểm thử

Rủi ro và Kiểm thử

Rủi ro được định nghĩa là “một sự kiện có khả năng gây ra kết quả tiêu cực trong tương lai.” Mức độ rủi ro được xác định dựa trên xác suất xảy ra của sự kiện đó và ảnh hưởng (tức là thiệt hại) mà nó gây ra khi xảy ra.

Nói cách khác, rủi ro là “một điều gì đó” có khả năng gây bất lợi. “Điều gì đó” này được đánh giá từ hai khía cạnh: khả năng trở thành hiện thực (gọi là “xác suất”) và mức độ thiệt hại gây ra khi trở thành hiện thực (gọi là “ảnh hưởng”). Khi một rủi ro được xác định, cần thiết lập “mức độ rủi ro” để quyết định mức độ quan trọng và ưu tiên xử lý.

Chúng ta sẽ giải thích về các phương pháp để tránh hoặc giảm thiểu bất lợi mà các bên liên quan trong dự án hoặc người dùng của sản phẩm có thể gặp phải, hay còn gọi là các biện pháp phòng ngừa rủi ro.

Rủi ro được chia thành hai loại chính: rủi ro sản phẩm và rủi ro dự án. Dưới đây là phần giải thích chi tiết về từng loại.

Rủi ro sản phẩm

Rủi ro sản phẩm đề cập đến “rủi ro rằng các sản phẩm đầu ra của công việc (ví dụ: tài liệu yêu cầu, thành phần, hệ thống, trường hợp kiểm thử, v.v.) không đáp ứng được nhu cầu chính đáng của người dùng hoặc các bên liên quan.” Do sản phẩm là đối tượng kiểm thử, rủi ro sản phẩm có thể được hiểu là những tổn thất hoặc thiệt hại do việc kiểm thử không đầy đủ gây ra. Vì vậy, rủi ro sản phẩm cần được nhận thức như một yếu tố có thể ảnh hưởng nghiêm trọng đến toàn bộ quá trình phát triển.

Rủi ro sản phẩm thay đổi tùy theo tiêu chuẩn chất lượng yêu cầu đối với sản phẩm. Dưới đây là một số ví dụ cụ thể:

  • Phát hành phần mềm có lỗi
    Khi lỗi xuất hiện sau khi phát hành, chi phí sửa chữa sẽ trở thành tổn thất cho doanh nghiệp.
  • Khả năng gây thiệt hại do phần mềm hoặc phần cứng
    Lỗi có thể gây thiệt hại cho cá nhân hoặc doanh nghiệp, dẫn đến trách nhiệm pháp lý (như trách nhiệm sản phẩm) hoặc các yêu cầu bồi thường thiệt hại. Ngoài rủi ro pháp lý, thiệt hại về uy tín và ảnh hưởng gián tiếp cũng là những mối lo ngại.
  • Chất lượng thấp về đặc tính
    Mặc dù các chức năng được đáp ứng, nhưng nếu thiếu các đặc tính như bảo mật, độ tin cậy, hoặc hiệu suất, sức hấp dẫn và sự tin tưởng vào sản phẩm sẽ giảm sút.
  • Thiếu sót về tính toàn vẹn hoặc chất lượng dữ liệu
    Các vấn đề liên quan đến chuyển đổi hoặc di chuyển dữ liệu có thể làm suy giảm chức năng của sản phẩm. Việc xác minh độ chính xác và tính hợp lý của dữ liệu là rất quan trọng.
  • Hoạt động không đúng của chức năng dự kiến
    Nếu các chức năng cơ bản không hoạt động đúng, doanh nghiệp có thể không nhận được thanh toán từ khách hàng hoặc phải đối mặt với yêu cầu bồi thường thiệt hại.

Các biện pháp đối phó với rủi ro

Đối với các rủi ro đã được xác định, cần xem xét các biện pháp như phòng ngừa trước, chuẩn bị trước, và xử lý sau khi xảy ra. Tuy nhiên, không phải tất cả rủi ro đều được áp dụng biện pháp xử lý. Thay vào đó, việc quyết định thứ tự ưu tiên được thực hiện dựa trên xác suất xảy ra và mức độ ảnh hưởng (hay còn gọi là “phơi nhiễm rủi ro”). Thứ tự ưu tiên này được xác định ngay từ giai đoạn lập kế hoạch dự án và được cụ thể hóa hơn trong kế hoạch kiểm thử.

Một trong những cách hiệu quả nhất để giảm thiểu rủi ro là kiểm thử. Đặc biệt, cần xác nhận thông qua kiểm thử rằng các chức năng có rủi ro cao hoạt động như mong đợi. Kiểm thử có thể được coi là một trong những biện pháp phòng ngừa trước hiệu quả nhất.

Nếu không thực hiện kiểm thử, các rủi ro sau đây có thể trở nên rõ ràng:

・Phần mềm không hoạt động đúng theo đặc tả.

・Không đáp ứng nhu cầu của người dùng hoặc các bên liên quan.

・Kiến trúc hệ thống không đáp ứng đầy đủ các yêu cầu phi chức năng.

・Kết quả tính toán cụ thể có thể không chính xác.

・Có vấn đề trong việc điều khiển vòng lặp của mã nguồn.

・Hệ thống chịu tải cao có thời gian phản hồi không phù hợp.

・Trải nghiệm người dùng (UX) không đáp ứng được kỳ vọng.

Việc xác định chính xác rủi ro và thực hiện các biện pháp phù hợp là yếu tố không thể thiếu để đảm bảo chất lượng và sự thành công của sản phẩm.

Rủi ro dự án
Rủi ro dự án được định nghĩa là “các rủi ro mà khi xảy ra sẽ gây ảnh hưởng tiêu cực đến việc đạt được mục tiêu của dự án”. Rủi ro dự án thường tiềm ẩn các vấn đề từ ba khía cạnh: Con người, Trang thiết bị, và Tài chính. Dưới đây là các nội dung cụ thể cần được quản lý dưới góc nhìn kiểm thử:

Con người

Các yếu tố liên quan đến con người có thể được chia thành hai nhóm:

Tổ chức và thành viên thực hiện kiểm thử

  • Các kỹ sư phụ trách quy trình kiểm thử hoặc tổ chức mà họ thuộc về có thể gặp các rủi ro như thiếu kỹ năng, không được đào tạo đầy đủ, hoặc không có sự phân bổ nhân sự phù hợp.
  • Việc đánh giá và theo dõi nhân viên không đầy đủ cũng là một yếu tố rủi ro.

Sự phối hợp với các tổ chức khác

  • Nếu sự liên kết giữa các phòng ban như quản lý dự án, đội phát triển, và bộ phận hỗ trợ không tốt, có thể xảy ra thiếu thông tin hoặc sai sót trong kế hoạch.

Trang thiết bị
Trang thiết bị” ở đây đề cập đến các yếu tố liên quan đến phần cứng, phần mềm, tài liệu, hay còn gọi là “testware” trong quá trình kiểm thử. Rủi ro có thể phát sinh nếu các công cụ hoặc thiết bị cần thiết không đầy đủ hoặc bị thiếu sót.

Tài chính
“Tài chính” bao gồm ngân sách, chi phí thực tế và các chi phí liên quan đến quản lý lịch trình. Không chỉ chi phí nhân sự trực tiếp, mà cả các chi phí gián tiếp như chi phí đào tạo và chi phí duy trì môi trường kiểm thử cũng cần được xem xét.

 

Quản lý rủi ro dự án
Quản lý rủi ro dự án bắt đầu từ giai đoạn lập kế hoạch, khi các rủi ro tiềm ẩn liên quan đến “con người, vật chất, tài chính” được xác định và biện pháp đối phó được đưa ra. Nếu rủi ro xảy ra, cần thực hiện các biện pháp đã lên kế hoạch và linh hoạt điều chỉnh khi cần thiết. Ngoài ra, rủi ro xảy ra không nên chỉ được xem như rủi ro, mà cần coi đó là “vấn đề cần giải quyết” để thực hiện các biện pháp cụ thể.

Thông thường, trách nhiệm quản lý rủi ro dự án được chia sẻ giữa quản lý dự án và quản lý kiểm thử. Quản lý dự án chịu trách nhiệm theo dõi tiến độ tổng thể, trong khi quản lý kiểm thử chịu trách nhiệm về tiến độ liên quan đến các hoạt động kiểm thử.

Ví dụ về rủi ro dự án trong kiểm thử

Rủi ro tiến độ

・Phát hiện số lượng lớn vấn đề trong kiểm thử dẫn đến chậm tiến độ.

・Thay đổi yêu cầu hoặc bổ sung chức năng khiến việc tạo các trường hợp kiểm thử bị trì hoãn, làm ảnh hưởng đến lịch trình.

Rủi ro môi trường kiểm thử

・Không thể cung cấp thiết bị cần thiết, môi trường kiểm thử không được chuẩn bị đầy đủ.

・Dữ liệu cho môi trường kiểm thử không được chuẩn bị do chậm trễ trong việc phát triển công cụ chuyển đổi dữ liệu.

・Công cụ cần thiết để xây dựng môi trường staging gặp vấn đề.

Rủi ro quản lý kiểm thử

・Không thể đảm bảo nhân sự có kỹ năng và số lượng cần thiết.

・Kế hoạch kiểm thử không đầy đủ, dẫn đến thiếu tài nguyên khi thực hiện.

・Phân bổ tài nguyên không có kế hoạch, làm thiếu hụt ngân sách.

Quản lý rủi ro dự án một cách hợp lý sẽ giúp tăng khả năng thành công của các hoạt động kiểm thử và toàn bộ dự án.

 

Kiểm thử dựa trên rủi ro và chất lượng sản phẩm

Việc áp dụng “phương pháp tiếp cận dựa trên rủi ro” giúp thực hiện các biện pháp phòng ngừa để giảm thiểu rủi ro sản phẩm. Trong phương pháp này, các hành động sau sẽ được thực hiện đối với các rủi ro đã xác định:

Quyết định kỹ thuật kiểm thử áp dụng
Đối với các chức năng có mức độ rủi ro cao, chọn lựa kỹ thuật kiểm thử để tăng cường tỷ lệ bao phủ. Ví dụ, với kỹ thuật kiểm thử hộp trắng (white-box), có thể sử dụng kiểm thử quyết định (decision coverage), còn với kỹ thuật kiểm thử hộp đen (black-box), có thể áp dụng bảng quyết định (decision table testing) để đảm bảo bao phủ đầy đủ các yêu cầu chức năng.

Cài đặt mức độ và loại kiểm thử
Xem xét phân phối của các khiếm khuyết được phát hiện trước đó, ảnh hưởng của việc sửa chữa khiếm khuyết đối với dự án, và mức độ bao phủ cao đối với các điều kiện kiểm thử quan trọng, để chọn lựa mức độ và loại kiểm thử phù hợp.

Xác định phạm vi thực hiện kiểm thử
Phạm vi chuẩn bị môi trường kiểm thử cũng có thể được xác định dựa trên rủi ro. Ví dụ, khi kiểm thử ứng dụng web, cần xem xét liệu có kiểm thử trên chỉ Internet Explorer, hay bao gồm thêm Opera, Firefox, và đến phiên bản nào của các trình duyệt này. Trong trường hợp này, cần cân nhắc số lượng người dùng và rủi ro khi không đủ kiểm thử, từ đó thu hẹp phạm vi kiểm thử.

Cài đặt ưu tiên kiểm thử để phát hiện các khiếm khuyết nghiêm trọng sớm
Để giảm thiểu tác động khi khiếm khuyết nghiêm trọng xảy ra trên thị trường, kiểm thử sẽ được thực hiện theo thứ tự ưu tiên để không bỏ sót những khiếm khuyết nghiêm trọng. Nếu khiếm khuyết nghiêm trọng được phát hiện vào cuối giai đoạn kiểm thử, nguy cơ trì hoãn lịch trình (rủi ro dự án) sẽ tăng lên. Tuy nhiên, ngay cả khi lịch trình bị trì hoãn, cũng không thể hoàn thành kiểm thử mà không kiểm tra những chức năng có thể chứa khiếm khuyết nghiêm trọng. Thiết lập ưu tiên kiểm thử dựa trên rủi ro sẽ giúp giảm bớt các hạn chế về chi phí và thời gian giao hàng.

Xem xét các phương pháp giảm rủi ro ngoài kiểm thử
Kiểm thử là một trong các biện pháp phòng ngừa, vì vậy cũng cần xem xét các phương pháp khác. Ví dụ như thiết kế quy trình để ngăn ngừa lỗi phát sinh, đào tạo hoặc huấn luyện công việc cho các nhà phát triển, bổ sung tính năng để giảm thiểu tác động khi rủi ro phát sinh, v.v.
Kiểm thử dựa trên rủi ro (Risk-based Testing) nhằm mục tiêu tối thiểu hóa rủi ro hỏng hóc trong môi trường người dùng. Để làm được điều này, cần có các góc độ quản lý rủi ro như phân tích và đánh giá rủi ro, xác định mức độ quan trọng, xây dựng các biện pháp giảm thiểu rủi ro (Kế hoạch dự phòng). Dưới đây là cách tiến hành kiểm thử dựa trên rủi ro.

Cách tiến hành kiểm thử dựa trên rủi ro

Đầu tiên, tiến hành phân tích rủi ro và xác định, đánh giá các rủi ro sản phẩm. Phân tích này sẽ tận dụng kiến thức và cái nhìn sâu sắc của các bên liên quan trong dự án. Trong quá trình này, các yếu tố rủi ro sẽ được xác định và mức độ quan trọng của chúng sẽ được xác định.
Dựa trên các rủi ro sản phẩm, thiết kế các cấp độ kiểm thử và biện pháp phòng ngừa phù hợp với mức độ quan trọng và phản ánh vào kế hoạch kiểm thử.
Tập trung vào góc độ rủi ro, đối với những rủi ro có mức độ quan trọng thấp, có thể chỉ thực hiện xác nhận hoạt động, trong khi đối với những rủi ro có mức độ quan trọng cao, cần đảm bảo độ bao phủ đầy đủ và cần tạo ra các trường hợp kiểm thử với khả năng truy vết rõ ràng. Ví dụ, có thể sử dụng ma trận truy vết để kiểm tra tất cả các trường hợp kiểm thử đối ứng với các rủi ro sản phẩm.
Thực hiện kiểm thử dựa trên mức độ quan trọng của các rủi ro đã đánh giá trong giai đoạn lập kế hoạch và báo cáo tình hình giảm thiểu rủi ro sản phẩm trong toàn bộ dự án từ trưởng nhóm kiểm thử tới quản lý dự án và các bên liên quan. Nếu trong quá trình kiểm thử, phát hiện ra các rủi ro sản phẩm mới, cần tái đánh giá mức độ quan trọng của chúng và điều chỉnh phạm vi cũng như nội dung kiểm thử.
Vì rủi ro thay đổi khi dự án tiến triển, việc xem xét lại kiểm thử đúng lúc là rất quan trọng. Như vậy, trong kiểm thử dựa trên rủi ro, việc đánh giá mức độ quan trọng của rủi ro từ giai đoạn lập kế hoạch và linh hoạt điều chỉnh tình hình giảm thiểu rủi ro theo sự tiến triển của dự án là rất cần thiết.

 

Đặc điểm của lỗi
Lỗi được gọi là sự khác biệt giữa kết quả mong đợi và kết quả thực tế khi thiết lập đầu vào trong các trường hợp kiểm thử. Thông thường, khi phát hiện sự khác biệt giữa kết quả mong đợi và kết quả thực tế, sẽ nghi ngờ có sự tồn tại của lỗi và cần phải điều tra thêm. Tuy nhiên, không phải mọi hiện tượng đều có thể xác định rõ ràng là lỗi, và những hiện tượng như vậy được mô tả là “anomaly” (không chính xác).

Trong số các lỗi và hiện tượng bất thường, kết quả điều tra có thể cho thấy rằng bản thân đối tượng kiểm thử không có lỗi, mà chỉ do ảnh hưởng từ thời gian hoặc môi trường bên ngoài dẫn đến sự khác biệt giữa kết quả mong đợi và kết quả quan sát được. Trong những trường hợp như vậy, sẽ không coi là lỗi và được giải thích rằng “báo cáo lỗi có thể bao gồm các trường hợp dương tính giả”.

Việc phát hiện lỗi và xác định lỗi liên quan có thể diễn ra không chỉ trong thời gian kiểm thử mà còn trong quá trình phát triển, khi đánh giá, trong các hoạt động kiểm thử khác, thậm chí trong giai đoạn vận hành hệ thống. Ngoài ra, lỗi không chỉ tồn tại trong mã nguồn mà còn có thể xuất hiện trong các tài liệu liên quan đến phát triển và kiểm thử (ví dụ: tài liệu đặc tả, hướng dẫn cài đặt, tài liệu trợ giúp).

 

Cần thiết của quản lý lỗi
Để đối phó với lỗi, cần định nghĩa các hoạt động thích hợp và theo dõi, quản lý quy trình từ khi phát hiện lỗi đến khi hoàn tất sửa chữa. Quy trình quản lý lỗi có thể khác nhau giữa các tổ chức, nhưng thông thường sẽ tiến hành theo các bước sau:

  1. Nhận thức sự xuất hiện của lỗi (hoặc bất thường)
  2. Ghi lại lỗi (hoặc bất thường)
  3. Điều tra nguyên nhân của lỗi (hoặc bất thường)
  4. Phân tích phạm vi ảnh hưởng và phân loại lỗi
  5. Chờ đợi sửa chữa hoàn thành
  6. Xác nhận việc sửa chữa đã hoàn tất

Để quản lý tất cả các lỗi một cách thích hợp, việc tạo báo cáo lỗi là rất quan trọng. Bên cạnh đó, tổ chức cần thiết lập quy trình quản lý lỗi và thiết lập các quy tắc phân loại lỗi.

Báo cáo lỗi
Để quản lý lỗi, cần ghi lại tất cả các lỗi phát sinh. Việc ghi nhận này không chỉ do người phụ trách kiểm thử thực hiện mà đôi khi cũng có thể do người phát triển hoặc khách hàng thực hiện. Điều này có thể xảy ra khi khách hàng nhận thấy hiện tượng khác với kết quả mà họ mong đợi, và báo cáo đó sẽ được ghi nhận là lỗi.

Mục đích của báo cáo lỗi là như sau:

  1. Cung cấp thông tin
    Cung cấp thông tin về các hiện tượng trái ngược với kỳ vọng cho người phát triển và các bên liên quan khác. Nhờ đó, có thể xác định phạm vi ảnh hưởng cụ thể, thực hiện các bài kiểm tra tái tạo tối thiểu để phân tách vấn đề và sửa chữa lỗi.
  2. Theo dõi ảnh hưởng đến chất lượng và kiểm thử
    Cung cấp cho người quản lý kiểm thử phương tiện để nắm bắt chất lượng của các sản phẩm công việc và ảnh hưởng đến kiểm thử. Nếu số lượng báo cáo lỗi nhiều, người kiểm thử có thể phải dành nhiều thời gian cho công việc báo cáo hơn là thực hiện kiểm thử, và có thể cần thêm các bài kiểm tra xác nhận bổ sung.
  3. Gợi ý cải tiến quy trình
    Cung cấp gợi ý để cải thiện quy trình phát triển và kiểm thử.

Mục tiêu đầu tiên, “Cung cấp thông tin”, là mục tiêu dễ hiểu. Việc điều tra lỗi (hoặc bất thường) và người phát triển nhận thức đúng về đối tượng cần sửa chữa sẽ giúp phản hồi nhanh chóng và chính xác.

Báo cáo lỗi cũng cung cấp thông tin quan trọng cho người quản lý kiểm thử. Bằng cách nắm bắt số lượng lỗi, tình trạng và tiến độ sửa chữa, người quản lý kiểm thử có thể xây dựng kế hoạch kiểm thử một cách hiệu quả.

 

※Bài tập xác nhận

https://exam-site.briswell-vn.com/startTest/jstqb-12-vn