+3

Thử nghiệm dựa trên rủi ro: Quản lý rủi ro, cách tiếp cận

Khi thử nghiệm phần mềm, việc đánh giá được các rủi ro để thực hiện thử nghiệm cẩn thận là điều rất cần thiết. Vậy hiểu thế nào là rủi ro

Theo Wikipedia:

Với quan điểm truyền thống: "Rủi ro là những thiệt hại, mất mát, nguy hiểm hoặc các yếu tố liên quan đến nguy hiểm, khó khăn hoặc điều không chắc chắn có thể xảy ra cho con người".

Với quan điểm hiện đại: "rủi ro (risk) là sự bất trắc có thể đo lường được, vừa mang tính tích cực, vừa mang tính tiêu cực. Rủi ro có thể mang đến những tổn thất mất mát cho con người nhưng cũng có thể mang lại những lợi ích, những cơ hội"

Rủi ro được hiểu đơn giản là thế. Vậy thử nghiệm dựa trên rủi ro sẽ như thế nào. Bài tìm hiểu dưới đây sẽ nêu ra 1 số quan điểm để phục vụ cho việc thử nghiệm dựa trên rủi ro

Thử nghiệm dựa trên rủi ro là gì?

Thử nghiệm dựa trên rủi ro là ưu tiên các tính năng, mô-đun và chức năng của Ứng dụng thử nghiệm dựa trên tác động và khả năng xảy ra lỗi. Nó liên quan đến việc đánh giá rủi ro dựa trên độ phức tạp, mức độ nghiêm trọng của nghiệp vụ, tần suất sử dụng, khu vực hiển thị, Khu vực dễ bị lỗi. Rủi ro là sự xuất hiện của một sự kiện không chắc chắn cùng với một tác động tích cực hoặc tiêu cực trên kịch bản đo lường sự thành công của một dự án. Nó có thể là sự kiện đã xảy ra trong quá khứ hoặc hiện tại hoặc có thể là trong tương lai. Những sự kiện không chắc chắn này có thể ảnh hưởng đến các mục tiêu như chi phí, nghiệp vụ, kỹ thuật và chất lượng của một dự án.

Rủi ro này có thể là tích cực hoặc tiêu cực:

  • Rủi ro tích cực được gọi là cơ hội và sự giúp đỡ bền vững trong kinh doanh. Ví dụ: đầu tư vào một dự án mới, thay đổi quy trình nghiệp vụ, phát triển sản phẩm mới.
  • Rủi ro tiêu cực được gọi như là các mối đe dọa và khuyến nghị, việc giảm thiểu hoặc loại bỏ chúng phải được thực hiện đảm bảo cho sự thành công của dự án.

Rủi ro trong dự án phần mềm thường là gì?

Thông thường trong dự án phát triển phần mềm thường xuyên xảy ra rủi ro (risk) trong đó phân chia thành Rủi do sản phẩm (Product risk) và Rủi ro dự án (Project risk)

Product risk hay có thể hiểu là: rủi ro về chất lượng

Chúng ta có thể liên tưởng về rủi ro vì khả năng hệ thống hoặc phần mềm có thể không đáp ứng mong đợi của một số khách hàng, người dùng hoặc các bên liên quan. Những vấn rủi ro sản phẩm phần mềm, ứng dung thường là:

  • Có thể bỏ qua một số chức năng chính mà khách hàng chỉ định, người dùng yêu cầu hoặc các bên liên quan mong muốn.
  • Có thể không đáng tin cậy và thường hoạt động bất thường.
  • Có thể gây thiệt hại tài chính hoặc thiệt hại khác cho người dùng hoặc công ty mà người dùng làm việc.
  • Có thể có vấn đề liên quan đến một đặc tính chất lượng cụ thể, có thể không phải là chức năng, mà là bảo mật, độ tin cậy, khả năng sử dụng, khả năng bảo trì hoặc hiệu suất.

Project risk thường liên quan đến các rủi ro phát sinh trong hoạt động nội bộ dự án, ví dụ như:

  • Lập kế hoạch thiếu sót
  • Thiếu nguồn lưc
  • Member ốm đột xuất, hay nghỉ việc đột xuất, ... mà không có người thay thế, ...
  • Kỹ thuật thiếu (yếu kém)
  • Các tools hỗ trợ
  • Quy trình
  • Thời gian
  • Chi phí

Khi nào cần thực hiện kiểm thử dựa trên rủi ro ?

  • Dự án có thời gian, nguồn lực, ngân sách ...
  • Dự án phân tích dựa trên rủi ro có thể được sử dụng để phát hiện các lỗ hổng tấn công SQL injection.
  • Test bảo mật trong môi trường điện toán đám mây
  • Dự án mới có các yếu tố rủi ro cao như: thiếu kinh nghiệm, công nghệ được sử dụng, thiếu kiến thức về nghiệp vụ
  • Sử dụng trong mô hình gia tăng và lặp lại

A. Quy trình quản lý rủi ro

Để quản lý được các rủi ro, chúng ta cùng tìm hiểu về các bước thực hiện quy trình quản lý rủi ro

1. Nhận dạng rủi ro

Việc xác định rủi ro có thể được thực hiện thông qua: thảo luận rủi ro, checklist, tư duy logic, họp nhiều bên, kỹ thuật Delphi, sơ đồ nguyên nhân và kết quả, bài học kinh nghiệm từ các dự án trước đó, phân tích nguyên nhân gốc, ý kiến của các chuyên gia trong lĩnh vực.

Risk Register là bảng liệt kê danh sách các rủi ro được xác định, các phản hổi tiềm ẩn và các nguyên nhân gốc rễ. Nó được sử dụng để nhìn nhận và theo dõi các rủi ro (cả các mối đe dọa và khả năng xảy ra) trong suốt vòng đời của dự án. Kèm theo đó có thể đưa ra các chiến lược đối ứng rủi ro để quản lý rủi ro tích cực và tiêu cực.

Cấu trúc phân chia rủi ro đóng một vai trò quan trọng trong việc lập kế hoạch rủi ro. Nó sẽ giúp xác định các khu vực dễ bị rủi ro từ đó giúp đánh giá hiệu quả và giám sát rủi ro trong quá trình thực hiện dự án. Nó giúp cung cấp đủ thời gian và nguồn lực cho các hoạt động quản lý rủi ro. Nó cũng phân loại nguồn gốc phát sinh các rủi ro của dự án, cung cấp đủ thời gian và nguồn lực cho các hoạt động quản lý rủi ro.

Template cấu trúc phân tích rủi ro:

2. Phân tích rủi ro

Phân tích rủi ro sẽ được thực hiện khi danh sách các rủi ro tiềm ẩn đã được xác định. Ở bước này, sẽ phân thích cả tích định lượng và định tính

Thực hiện phân tích chúng và lọc dựa trên tầm quan trọng. Một trong những kỹ thuật phân tích rủi ro định tính là sử dụng Ma trận rủi ro (sẽ được đề cập trong phần tiếp theo). Kỹ thuật này được sử dụng để xác định xác suất và tác động của rủi ro.

3. Lập kế hoạch đối ứng

Dựa trên những phân tích tầm quan trọng; chúng ta có thể xác định được những rủi ro cần đối ứng. Người quản lý có trách nhiệm xác định các lựa chọn để giảm xác suất và tác động của các rủi ro được giao.

Ví dụ, một số rủi ro sẽ yêu cầu đáp ứng ngay trong kế hoạch dự án trong khi một số rủi ro yêu cầu đáp ứng trong giám sát dự án và một số rủi ro sẽ không yêu cầu bất kỳ đáp ứng nào.

Giảm thiểu rủi ro là một phương pháp đối ứng được sử dụng để giảm bớt tác động bất lợi của có thể. Điều này có thể được thực hiện bằng cách loại bỏ các rủi ro hoặc giảm chúng đến mức chấp nhận được.

Dự phòng rủi ro Dự phòng có thể được mô tả như là một khả năng của một sự kiện không chắc chắn, nhưng tác động là không rõ hoặc không thể đoán trước. Cần có mộtt kế hoạch dự phòng hay là kế hoạch hành động cho các trường hợp xấu nhất. Nói cách khác, xác định những bước nào có thể được thực hiện khi một sự kiện không thể đoán trước xảy ra.

4. Giám sát và kiểm soát rủi ro

Kiểm soát rủi ro và quy trình giám sát được sử dụng để theo dõi các rủi ro đã xác định, giám sát rủi ro tồn dư, xác định rủi ro mới, cập nhật đăng ký rủi ro, phân tích lý do thay đổi, thực hiện kế hoạch đối ứng rủi ro và giám sát các tác nhân rủi ro, v.v. .

Điều này có thể đạt được bằng cách đánh giá lại rủi ro, kiểm toán rủi ro, phân tích về xu hướng, đo lường hiệu suất kỹ thuật, các cuộc họp cập nhật trạng thái và các cuộc họp cải tiến. Chi tiết xem dưới bảng sau:

Inputs Tools and Techniques Outputs
Kế hoạch quản lý rủi ro Kiểm toán đối ứng rủi ro dự án Kế hoạch giải quyết
Kế hoạch đối ứng rủi ro Đánh giá đinh kỳ rủi ro dự án Hành động khắc phục
Kế hoạch giao tiếp dự án Phân tích giá trị thu thập được Yêu cầu thay đổi dự án
Xác định và phân tích rủi ro thêm mới Đo đạc hiệu suất kỹ thuật Cập nhật kế hoạch đối ứng rủi ro và danh sách rủi ro
Thay đổi phạm vi Kế hoạch đối ứng rủi ro bổ sung Rủi ro cơ sở dữ liệu

Chúng ta cần nhớ rằng rủi ro gia tăng khi thay đổi công nghệ, quy mô dự án, thời gian thực hiện dự án (khung thời gian dự án dài hơn), số lượng nhà đầu tư, ước lượng dự án, nguồn lực và thiếu kỹ năng phù hợp.

B. Cách tiếp cận thử nghiệm dựa trên rủi ro

Dưới đây là các bước thực hiện chung:

  1. Phân tích các yêu cầu.
  2. Đánh giá các tài liệu (SRS, FRS, Usecases). Hoạt động này được thực hiện để tìm và loại bỏ lỗi và sự mơ hồ.
  3. Requirements sign-off's (đóng yêu cầu) là một trong những kỹ thuật giảm rủi ro để tránh đưa ra các thay đổi muộn vào các dự án. Mọi thay đổi đối với các yêu cầu sau khi tài liệu được cơ sở sẽ liên quan đến quá trình kiểm soát thay đổi và các phê duyệt tiếp theo.
  4. Đánh giá rủi ro bằng cách tính toán tính khả thi và tác động của từng yêu cầu đối với dự án; có thể xem xét các tiêu chí đã xác định như chi phí, lịch trình, tài nguyên, phạm vi, an toàn hiệu suất kỹ thuật, độ tin cậy, độ phức tạp, v.v.
  5. Xác định xác suất thất bại và các vùng rủi ro cao. Điều này có thể được thực hiện bằng cách sử dụng ma trận đánh giá rủi ro.
  6. Sử dụng một công cụ để liệt kê các rủi ro được xác định. Cập nhật, theo dõi và theo dõi các rủi ro định kỳ theo định kỳ.
  7. Hồ sơ rủi ro cần được thực hiện ở giai đoạn này để hiểu được khả năng rủi ro và mức độ chấp nhận rủi ro.
  8. Ưu tiên các yêu cầu dựa trên đánh giá.
  9. Quy trình kiểm tra dựa trên rủi ro được xác định
  10. Rủi ro cao và trung bình có thể được xem xét để lập kế hoạch giảm thiểu, thực hiện, giám sát tiến độ. Rủi ro thấp có thể được xem xét trong danh sách theo dõi.
  11. Đánh giá chất lượng dữ liệu rủi ro được thực hiện để phân tích chất lượng dữ liệu.
  12. Lập kế hoạch và xác định kiểm tra theo thứ hạng
  13. Áp dụng phương pháp thử nghiệm thích hợp và kỹ thuật thiết kế thử nghiệm để thiết kế các trường hợp thử nghiệm theo cách mà các mục rủi ro cao nhất được thử nghiệm trước tiên. Các mục có rủi ro cao có thể được test bởi đội ngũ có kinh nghiệm kiến thức giỏi.
  14. Các kỹ thuật thiết kế thử nghiệm khác nhau có thể được sử dụng như: kỹ thuật bảng quyết định dựa trên các mục kiểm tra có rủi ro cao, kỹ thuật phân vùng tương đương cho các mục kiểm tra có rủi ro thấp.
  15. Các trường hợp thử nghiệm cũng được thiết kế để bao gồm nhiều chức năng và kịch bản người dùng cuối.
  16. Chuẩn bị dữ liệu thử nghiệm, điều kiện thử nghiệp và hạ tầng thử nghiệm.
  17. Xem xét kế hoạch thử nghiệm, Chiến lược thử nghiệm, Trường hợp thử nghiệm, báo cáo thử nghiệm hoặc bất kỳ tài liệu khác được tạo bởi đội thử nghiệm.
  18. Xem xét chéo là một bước quan trọng trong việc xác định sai sót và giảm thiểu rủi ro.
  19. Thực hiện chạy và kiểm tra chất lượng về kết quả
  20. Các trường hợp thử nghiệm được thực hiện theo mức độ ưu tiên của mức độ rủi ro.
  21. Duy trì nguồn gốc giữa các mục rủi ro, các thử nghiệm bao hàm chúng, kết quả của các thử nghiệm đó và các sai sót được tìm thấy trong quá trình thử nghiệm. Tất cả các chiến lược thử nghiệm được thực hiện đúng sẽ làm giảm rủi ro về chất lượng.
  22. Thử nghiệm dựa trên rủi ro có thể được sử dụng ở mọi cấp độ thử nghiệm, ví dụ: component, integration, system, and acceptance testing
  23. Ở cấp độ hệ thống, chúng ta cần tập trung vào những gì quan trọng nhất trong ứng dụng. Điều này có thể được xác định bằng cách xem xét khả năng hiển thị của các chức năng, tần suất sử dụng và chi phí thất bại có thể xảy ra.
  24. Đánh giá tiêu chí kết thúc. Tất cả các khu vực rủi ro cao được kiểm tra đầy đủ, chỉ còn lại rủi ro nhỏ.
  25. Báo cáo kết quả kiểm tra dựa trên rủi ro và phân tích số liệu.
  26. Đánh giá lại các sự kiện rủi ro hiện tại và các rủi ro mới dựa trên các chỉ số của rủi ro chính
  27. Cập nhật danh sách rủi ro
  28. Kế hoạch dự phòng - Nó chính là một kế hoạch dự phòng / kế hoạch khẩn cấp cho các rủi ro cao.
  29. Phân tích và phòng ngừa để loại bỏ các sai sót
  30. Retest và Regression test để xác nhận các sửa lỗi dựa trên phân tích rủi ro được tính toán trước và nên tập trung vào vùng có nguy cơ cao
  31. Thử nghiệm tự động hóa dựa trên rủi ro (nếu khả thi)
  32. Tính toán rủi ro tồn dư;
  33. Giám sát và kiểm soát rủi ro
  34. Tiêu chí kết thúc và hoàn thành có thể được sử dụng cho các mức độ rủi ro khác nhau. Tất cả các rủi ro chính đã được giải quyết với các hành động hoặc kế hoạch dự phòng thích hợp. Rủi ro ở mức thấp hoặc dưới mức thấp đã chấp nhận cho dự án.
  35. Hồ sơ đánh giá rủi ro và phản hồi của khách hàng.

Cách tiếp cận thử nghiệm dựa trên rủi ro đối với System Test

Technical System Test được gọi là thử nghiệm môi trường và thử nghiệm tích hợp. Kiểm tra môi trường bao gồm kiểm tra trong giai đoạn phát triển, giai đoạn thử nghiệm, và trong môi trường sản phẩm.

Functional System Test Kiểm tra tất cả các chức năng, tính năng, chương trình, mô-đun. Mục đích của thử nghiệm này là để đánh giá xem hệ thống có đáp ứng các yêu cầu được chỉ định hay không.

Non-functional System Test Kiểm tra hiệu năng các yêu cầu phi chức năng, kiểm tra tải, kiểm tra căng thẳng, kiểm tra cấu hình, kiểm tra bảo mật, quy trình và tài liệu sao lưu và phục hồi (tài liệu hệ thống, vận hành và cài đặt).

Sơ đồ dưới đây cung cấp một cái nhìn tổng quan rõ ràng về quy trình nêu trên System Testing bao gồm cả Functional tests cũng như Non-Functional tests.

Kiểm tra chức năng đảm bảo rằng sản phẩm / ứng dụng đáp ứng yêu cầu của khách hàng và doanh nghiệp. Mặt khác, thử nghiệm phi chức năng được thực hiện để xác minh xem sản phẩm có đáp ứng mong đợi của khách hàng về chất lượng, khả năng sử dụng độ tin cậy, hiệu suất, khả năng tương thích, v.v.

Trên đây là phần giới thiệu về Rủi ro, cách quản lý và tiếp cận rủi ro. Quy trình thử nghiệm dựa trên rủi ro mình sẽ viết ở bài tiếp sau. rất mong nhận được ý kiến đóng góp của các bạn, để bài viết hoàn thiện hơn

Link Refer: https://www.guru99.com/risk-based-testing.html


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí