Các hoạt động chính trong quy trình kiểm thử phần mềm – Phần 2
Ở bài viết Các hoạt động chính trong quy trình kiểm thử phần mềm – Phần 1, chúng ta đã tìm hiểu về 3 hoạt động đầu tiên trong Quy trình kiểm thử phần mềm là: Lập kế hoạch kiểm thử, Giám sát và kiểm soát kiểm thử, phân tích kiểm thử. Ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu chi tiết về 2 hoạt động tiếp theo, đó là:
- Thiết kế kiểm thử
- Phát triển kiểm thử
Sau khi xác định được đối tượng test ở bước Phân tích kiểm thử thì chúng ta sẽ phải xác định xem phải test đối tượng đó như thế nào. Hoạt động đó được gọi là Thiết kế kiểm thử.
4/ Thiết kế kiểm thử
Dựa trên các điều kiện kiểm thử đã được làm rõ trong hoạt động Phân tích kiểm thử, chúng ta sẽ thiết kế các trường hợp kiểm thử cấp cao (high level test case) và tài nguyên kiểm thử (data test, tài liệu thiết kế môi trường kiểm thử). Hoạt động này được gọi là Thiết kế kiểm thử.
Trong hoạt động Thiết kế kiểm thử, sẽ có bốn hoạt động chính như sau:
Thiết kế test case, bộ test case và phân chia độ ưu tiên
Sau khi Phân tích test basis hoàn thành, chúng ta sẽ bắt đầu thiết kế kiểm thử dựa trên kế hoạch kiểm thử, thực hiện chuyển đổi các điều kiện kiểm thử thành các trường hợp kiểm thử cấp cao (high level test case), phân chia theo các hạng mục lớn và hạng mục vừa. High level test case là những trường hợp kiểm thử không chứa các giá trị dữ liệu đầu vào và kết quả mong đợi cụ thể.
Điều này có nghĩa là chúng ta sẽ không đi vào chi tiết như thứ tự kiểm thử hay kết quả mong đợi, mà sẽ thiết kế sao cho đảm bảo bao phủ các điều kiện kiểm thử. Để đạt được độ bao phủ này, cần thỏa mãn hai yếu tố: độ bao phủ đối với yêu cầu và đặc tả (spec), cũng như độ bao phủ đối với cấu trúc của phần mềm.
Khi thiết kế kiểm thử, đồng thời cần phân chia độ ưu tiên cho từng test case dựa trên phương pháp kiểm thử đã xác định.
Xác định các điều kiện kiểm thử và dữ liệu kiểm thử cần thiết để hỗ trợ cho các trường hợp kiểm thử
Cần xem xét dữ liệu kiểm thử (data test) khi kiểm thử từng hạng mục (test UT) và khi kiểm thử liên kết các hạng mục với nhau (test IT) để xác định xem chúng có khác nhau hay không. Đồng thời, xác định dữ liệu kiểm thử phù hợp cho từng cấp độ kiểm thử.
Thiết kế môi trường thử nghiệm và xác định cơ sở hạ tầng cũng như công cụ cần thiết
Xác định môi trường kiểm thử cần thiết từ hai phương diện: vật lý và logic.
- Về phương diện vật lý, cần xem xét xem có cần tách biệt môi trường kiểm thử (test) và môi trường phát triển (dev) hay không. Cần cân nhắc các yếu tố như middleware, hệ điều hành, phiên bản, loại ứng dụng bundle, ứng dụng liên kết qua internet và cách kết hợp chúng.
- Về phương diện logic, cần xem xét cách thiết lập bảng có khả năng thay đổi và giá trị mặc định (default) của các biến số có thể thay đổi trong firmware và middleware khi thực hiện kiểm thử.
Thiết lập khả năng truy vết hai chiều giữa các cơ sở kiểm thử (test basis), điều kiện kiểm thử và trường hợp kiểm thử (test case)
Nếu không đảm bảo được khả năng truy vết hai chiều giữa các sản phẩm trong quá trình phát triển, thì sẽ không thể đảm bảo tính nhất quán trong việc phát triển sản phẩm.
Ví dụ: Có một tài liệu đặc tả yêu cầu. Nếu khả năng truy vết nguồn gốc được đảm bảo, khi mô tả yêu cầu thay đổi, ta sẽ dễ dàng xác định được các trường hợp kiểm thử tương ứng và thực hiện các điều chỉnh cần thiết để đảm bảo tính nhất quán.
Ngược lại, nếu việc quản lý truy vết không chặt chẽ, thường sẽ xảy ra sự mất nhịp giữa các thay đổi trong test case và yêu cầu, dẫn đến thiếu sót và sai lệch nghiêm trọng.
5/ Phát triển kiểm thử
Ở bước Phát triển kiểm thử, chúng ta sẽ tạo ra các trường hợp kiểm thử và thứ tự kiểm thử chi tiết từ các high level test case đã được xây dựng ở bước Thiết kế kiểm thử. Tại bước này, chúng ta cũng sẽ tiến hành xây dựng môi trường kiểm thử.
Ngoài ra, cũng cần xác định các kỹ năng cần thiết mà người thực hiện kiểm thử cần phải có. Đồng thời, các test case và thứ tự kiểm thử cũng cần được ghi chép sao cho phù hợp với trình độ của người thực hiện.
Các hoạt động chính trong quá trình Phát triển kiểm thử bao gồm 6 hoạt động như sau:
Xây dựng quy trình kiểm thử và phân chia mức độ ưu tiên. Tạo kịch bản kiểm thử tự động tùy theo từng trường hợp
Chúng ta sẽ thực hiện việc tạo test case và thứ tự kiểm thử dựa trên thiết kế kiểm thử. Thứ tự ưu tiên thực hiện kiểm thử sẽ được xác định dựa trên kế hoạch kiểm thử và thiết kế kiểm thử. Tuy nhiên, thứ tự ưu tiên này có thể thay đổi khi thực hiện kiểm thử thực tế so với thứ tự ưu tiên ban đầu.
Kiểm thử tự động có hai loại: tự động hóa kiểm thử thủ công và sử dụng công cụ phân tích đối tượng kiểm thử để tự động tạo test case và thứ tự kiểm thử. Kịch bản kiểm thử (script test) phải được chuẩn bị phù hợp cho mỗi loại này.
Tạo bộ kiểm thử (test suite) từ quy trình kiểm thử và kịch bản kiểm thử (nếu có)
Thường thì, việc tạo quy trình kiểm thử, dữ liệu kiểm thử (data test) và chuẩn bị khai thác kiểm thử (test harness) sẽ diễn ra đồng thời, tuy nhiên, điều này chỉ xảy ra khi đã có đặc tả (spec) cho test harness. Trong trường hợp sử dụng test harness để tạo dữ liệu, chúng ta sẽ phải đợi cho đến khi test harness được chuẩn bị xong và sau đó mới chuẩn bị dữ liệu kiểm thử. Khi đó, chúng ta sẽ tạo kịch bản kiểm thử. Cuối cùng, tất cả các thành phẩm này sẽ được tập hợp lại để tạo thành bộ kiểm thử (test suite).
Điều chỉnh các bộ kiểm thử (test suite) trong lịch trình thực hiện kiểm thử để tối ưu hóa hiệu quả kiểm thử
Test suite là sự kết hợp của các test case sau khi xem xét hiệu quả của quy trình kiểm thử, chuẩn bị test harness và dọn dẹp sau khi kiểm thử. Việc tạo test suite không chỉ dựa trên lịch trình mà còn phải căn cứ vào mục đích kiểm thử. Nếu mục đích kiểm thử là xác nhận chức năng thì các trường hợp kiểm thử liên quan đến cùng một tính năng sẽ được gom lại thành một test suite.
Xây dựng môi trường kiểm thử. Đảm bảo mọi thứ cần thiết đã được thiết lập chính xác
Trước khi tiến hành kiểm thử, cần thiết lập môi trường kiểm thử, bao gồm cả việc chuẩn bị cơ sở hạ tầng như test tool, test harness, môi trường giả lập, và kết nối với hệ thống bên ngoài qua mạng nếu cần. Phạm vi hệ thống của đối tượng kiểm thử sẽ được xác định theo kế hoạch test. Về mặt quản lý công việc, cần phân rõ các nhiệm vụ liên quan đến việc thiết lập môi trường kiểm thử tổng thể và các nhiệm vụ chuẩn bị để thực hiện kiểm thử hàng ngày.
Đảm bảo rằng dữ liệu kiểm thử được chuẩn bị và được đọc đúng cách vào môi trường kiểm thử
Nếu đối tượng kiểm thử là phát triển phái sinh (ví dụ: nâng cấp phiên bản, thay đổi thông số yêu cầu), có thể sử dụng dữ liệu thực tế từ hệ thống hiện có. Tuy nhiên, cần xem xét kỹ lưỡng việc sử dụng dữ liệu này, đặc biệt nếu nó chứa thông tin nhạy cảm như thông tin cá nhân hoặc bí mật.
Kiểm thử và cập nhật khả năng truy vết hai chiều giữa test basis, điều kiện kiểm thử, trường hợp kiểm thử (test case), quy trình kiểm thử và bộ kiểm thử (test suite)
Kiểm thử và cập nhật khả năng truy vết hai chiều giữa test basis (cơ sở kiểm thử), điều kiện kiểm thử, trường hợp kiểm thử (test case), quy trình kiểm thử, và bộ kiểm thử (test suite) là quá trình đảm bảo rằng mọi yêu cầu và điều kiện kiểm thử đều được liên kết và theo dõi một cách nhất quán. Quá trình này giúp bảo đảm bao phủ tất cả các yêu cầu mà không bị bỏ sót, phát hiện lỗi và vấn đề trong giai đoạn phát triển, từ đó giảm thiểu rủi ro. Ngoài ra, việc duy trì khả năng truy vết hai chiều cũng góp phần tối ưu hóa quy trình kiểm thử bằng cách xác định rõ ràng các điều kiện và test case liên quan, nâng cao chất lượng phần mềm và hiệu quả trong quá trình kiểm thử.
Hôm nay, chúng ta đã tìm hiểu thêm về hai hoạt động trong Quy trình kiểm thử phần mềm. Hãy cùng xác nhận lại kiến thức của bạn về hai hoạt động này bằng cách làm bài trắc nghiệm nhỏ sau đây nhé!