Test Suite & Test Hook: Bí kíp quản lý bộ kiểm thử chuyên nghiệp và hiệu quả
Ở bài viết các “Các thành phần cơ bản của một dự án Automation Test”, trong dự án automation test, Test suite (Bộ Kiểm thử) như một công cụ quản lý các scripts test case giúp cho việc quản lý project nói chung và quản lý vận hành nói riêng trở nên dễ dàng hơn. Vậy giải pháp nào để quản lý Test suite vào một project automation, cũng như từng Test level của một dự án phát triển phần mềm một cách hợp lý? Trong bài viết này, Test Mentor sẽ đưa ra một giải pháp quản lý Test suite và áp dụng Test hook để hỗ trợ quản lý Test suite một cách chuyên nghiệp. Do bài viết khá là dài và có đưa ra nhiều khái niệm, Test Mentor sẽ chia ra làm 3 phần để thuận lợi cho các bạn khi đọc về chủ đề này. Nội dung của 3 phần như sau:
- [Part 1] Test Suite – Công cụ quản lý kiểm thử cho các Test Level
- [Part 2] Test Hook – Tùy biến Execution cho Bộ kiểm thử Chức năng
- [Part 3] Test Hook – Tùy biến Execution cho Bộ kiểm thử theo Business Flow
Lưu ý: Giải pháp đưa ra trong bài viết này chỉ là một hướng để giải quyết vấn đề và nó sẽ mang tính chất tổng quan để các bạn tham khảo và hiểu được tổng quan của vấn đề. Tùy thuộc vào đặc thù của từng loại dự án mà mình có thể tùy biến hoặc có những giải pháp phù hợp khác.
Nội Dung Bài Viết
Các khái niệm về Test Level
Kiểm thử phần mềm có 4 Test Level. Test mentor đã từng có những bài viết chi tiết cho các level này nên sẽ chỉ liệt kê. Các bạn có thể nhấn các level để ôn lại kiến thức cũng như hiểu sâu thêm nhé:
Để dễ hình dung về các mức độ trên, Test Mentor sẽ đưa ra một câu chuyện thể thao sau:
Câu chuyện về huấn luyện đội chạy tiếp sức 4 x 100m
Bạn là một Huấn luyện viên điền kinh nội dung 4 x 100m. Mục tiêu của bạn đặt ra sẽ là đạt huy chương cho giải điền kinh sắp diễn ra. Và là nội dung chạy tiếp sức, nên chắc chắn sẽ có 4 vị trí xuất phát khác nhau với các yêu cầu kỹ thuật khác nhau phụ thuộc vào chiến thuật của bạn. Cụ thể:
- Vị trí đầu tiên ~ Yêu cầu 1
- Vị trí thứ hai ~ Yêu cầu 2
- Vị trí thứ ba ~ Yêu cầu 3
- Vị trí cuối cùng ~ Yêu cầu 4
Và để đạt được mục tiêu đã đề ra, bạn lên kế hoạch cho quá trình build team của mình thành 4 phase. Cụ thể:
Phase 1: Mục tiêu của phase này là bạn sẽ phải có được trong tay các vận động viên đảm bảo được những đặc điểm sau:
- Sức khỏe: Đảm bảo sức khỏe theo quy định dành cho một vận động viên như không bị mắc các bệnh về tim mạch, huyết áp, phổi,…
- Thể hình: Có được thể hình nhẹ nhàng, sải chân dài,…
- Thể lực: Thể lực đảm bảo để có thể duy trì tốc độ cao trong cự ly 100m
- Kỹ thuật căn bản: Có được các kỹ thuật căn bản của vận động viên điền kinh, đặc biệt là chạy cự ly ngắn như kỹ thuật chạy, kỹ năng bứt tốc,..
Để có thể lựa chọn những con người phù hợp, bạn đã phân công cho những trợ lý của mình tuyển chọn các Vận động viên sao cho phù hợp với các yêu cầu của mình đặt ra. Và các vị trợ lý này sẽ kiểm tra Vận động viên được tuyển chọn trong phòng tập.
Phase 2: Sau một tuần, bạn đã có được danh sách 4 Vận động viên mà bạn mong muốn từ các trợ lý của mình. Và bạn sẽ cho Vận động viên thực hiện các bài tập đối với từng yêu cầu của vị trí trên sân tập (lúc này không còn ở phòng tập nữa).
Mục tiêu của phase này đó là, từng Vận động viên được tuyển chọn sẽ phải đảm bảo được các tiêu chí của giáo án đã đề ra. Các vận động viên lúc này sẽ CHƯA được phối hợp với nhau và họ sẽ phải kết hợp tất các các đặc điểm như đã được kiểm tra ở phase 1 của bản thân để hoàn thành giáo án.
Phase 3: Sau một thời gian điều chỉnh nhiều lần về kỹ năng, kỹ thuật bạn thấy các Vận động viên này đã phù hợp với chiến thuật của mình. Và lắp ráp các vận động viên này vào các vị trí xuất phát để họ tập luyện phối hợp với nhau để kiểm tra xem team này phối hợp với nhau ra sao khi thực hiện chiến thuật của mình.
Mục tiêu của phase này đó là, các Vận động viên sẽ phải phối hợp với nhau để hoàn thành cự ly thi đấu với thành tích đảm bảo được khả năng giành được huy chương cho giải đấu mà họ tham dự.
Phase 4: Cuối cùng sau khi đã hoàn thành các bài tập chiến thuật, các vận động viên trong team của bạn đã phối hợp ăn ý với nhau, bạn quyết định cho họ tham gia một số giải nhỏ trước khi tham gia vào giải điền kinh lớn theo kế hoạch của mình. Mục tiêu của bạn lúc này là để cho team của mình có thể phối hợp ăn ý với nhau hơn nữa, tích lũy được kinh nghiệm, ngoài ra có thể điều chỉnh kỹ, chiến thuật của các thành viên trong team trước khi tham dự giải đấu chính thức.
Phân tích câu chuyện thể thao theo góc nhìn QA/QC
Nhìn vào câu chuyện trên, nếu bạn cảm thấy có gì đó quen quen thì bạn đã đúng rồi đó. 4 phase trong câu chuyện trên rất giống với 4 Test Level.
Ở Phase 1: Các trợ lý của bạn lúc này sẽ phải kiểm tra từng vận động viên mà họ đã tuyển chọn. Họ sẽ phải kiểm tra từng đặc điểm của vận động viên như: Kỹ thuật căn bản, Thể hình, Thể lực,… Việc này giống như việc, test từng dòng code của các method của mỗi chức năng vậy.
Để dễ hình dung, thì mỗi một vận động viên họ sẽ như là một chức năng của chương trình vậy. Còn các đặc điểm vừa kể trên sẽ giống như các method bên trong một chức năng. Và để kiểm tra các đặc điểm đó, các bạn sẽ phải thực hiện tất cả các bài tập liên quan để có thể đánh giá một cách chính xác nhất. Và phase này chính là Unit Test.
Ở Phase 2: Khi các Vận động viên đến tay bạn, rõ ràng là bạn sẽ phải kiểm tra tất cả các Vận động viên này có thực sự đáp ứng mong đợi của mình hay không. Lúc này bạn sẽ đưa các bài tập theo giáo án của mình cho từng Vận động viên trên sân tập cụ thể ở đây chính là một đoạn đường 100m. Lúc này, bạn thấy mình có vẻ giống giống Tester rồi đấy nhỉ. Cự ly 100m trên sân tập lúc này chính là Môi trường Test. Các bài tập theo giáo án của bạn chính là các Kịch bản test. Và phase này chính là Integration Test.
Ở Phase 3: Khi các Vận động viên đã đạt được các tố chất mà bạn mong đợi cho chiến thuật của mình và bạn lắp ráp họ bằng các bài kiểm tra phối hợp với nhau. Lúc này cự ly lúc này không là 100m nữa mà là 400m. Cự ly này chính là Môi trường Staging. Các bài tập phối hợp của bạn chính là các Kịch bản test. Đương nhiên phase này chính là System Test.
Ở Phase 4: Cuối cùng, sau khi luyện tập chán chê rồi, đã đến lúc bạn đưa team của mình ra thử sức trên môi trường thi đấu mà cụ thể là các giải đấu nhỏ tiền giải đấu lớn chính thức. Lúc này, việc team của bạn thích nghi được trong môi trường thi đấu là điều quan trọng nhất. Và môi trường thi đấu chính là Môi trường UAT/Pre-product. Thành tích của team bạn lúc này sẽ giống như các đánh giá từ việc End-users về sản phẩm vậy. Đây chính là Acceptance Test.
Dưới đây là hình ảnh khái quát về sự liên kết của câu chuyện thể thao và Test Level để các bạn có thể hình dung:
Test Suite – Công cụ quản lý Test script hiệu quả cho các Test Level
Test Suite là gì?
Test Suite được định nghĩa là một tập hợp các kịch bản kiểm thử (Test script) hoặc một chuỗi các kịch bản kiểm thử được sắp xếp theo thứ tự thực hiện hay còn gọi là kịch bản theo luồng (Test procedures) được thực thi trong một lần chạy kiểm thử cụ thể.
Cách quản lý Test Suite đối với từng Level
Thông thường, Unit Testing sẽ được Dev thực hiện và Acceptance Testing sẽ được khách hàng hoặc một đơn vị kiểm thử độc lập thực hiện nên đứng vai trò là một Tester của dự án, nên trong phần này chúng ta sẽ tạm thời chỉ quan tâm đến việc quản lý Test Suite đối với 2 level là Integration Testing và System Testing.
Quay lại câu chuyện thể thao đã nêu trên, trong Phase 2, mỗi một yêu cầu của từng vị trí sẽ có một bộ bài tập riêng và nó nằm trong một giáo án của yêu cầu đó. Nếu bạn áp dụng vào việc kiểm thử phần mềm, thì đây giống như một bộ các kịch bản mà bạn dùng để test một chức năng của chương trình. Và ở đây, giống như gom một bộ bài tập vào một giáo án, thì bạn sẽ gom một bộ Test case vào Test suite.
Tiếp tục với Phase 3, bạn sẽ có một bộ các bài tập chiến thuật cho team của mình, lúc này cần đánh giá khả năng phối hợp của cả 4 vị trí với nhau trong các trường hợp thi đấu cụ thể. Về cơ bản thì nó vẫn là một số bài tập của từng vị trí trong quá trình luyện tập ở Phase 2 tuy nhiên không phải là tất cả vì lúc này chúng ta đề cao khả năng phối hợp giữa các vị trí với nhau. Nếu bạn áp dụng vào việc kiểm thử phần mềm, thì đây giống như một bộ các kịch bản mà bạn dùng để test một business flow của phần mềm. Với một bộ các bài tập này các bạn cũng có thể gộp các bài tập có nét tương đồng về chiến thuật thành một giáo án. Tương tự như với Phase 2, thì một giáo án nó sẽ tương đương với một Test Suite.
Nhìn vào cách quản lý Test suite của cả 2 phase trên, các bạn có thể thấy chúng khá là tương đồng. Trên thực tế khi thực hiện kiểm thủ công, sẽ có những kịch bản có những điểm tương đồng. Ví dụ: Nhóm kịch bản có chung “Các bước thực hiện” nhưng khác nhau về “Dữ liệu đầu vào” hoặc Nhóm kịch bản có chung “Dữ liệu đầu vào” nhưng lại khác nhau về “Các bước thực hiện”,… Đó là lý do mặc dù ở các phase khác nhau, nhưng cách quản lý Test suite là khá giống nhau vì nó xoay quanh việc tập hợp, gom nhóm các kịch bản có điểm chung với nhau.
Kết luận
Thực tế, đối với mỗi một dự án sẽ có những yêu cầu khác nhau, từ đó sẽ có những kịch bản kiểm thử khác nhau. Điều này dẫn đến việc sẽ có những nhóm kịch bản kiểm thử khác nhau và cách quản lý Test Suite khác nhau. Qua bài viết này, Test Mentor mong rằng các bạn sẽ có được góc nhìn tổng quan hơn về các Test Level từ đó sẽ đưa ra được các cách quản lý Test Suite cho các kịch bản của mình sao cho hiệu quả và phù hợp với từng Test Level trong dự án của mình.
Như đã đề cập ở trên, Test Suite là một tập hợp các Test Cases sẽ có những điểm chung nào đó. Ở các phần sau, Test Mentor sẽ giới thiệu về Test Hook, nó có thể được coi là một phương pháp, công cụ giúp các bạn quản lý Test suite hiệu quả và code automation test trở nên chuyên nghiệp hơn.
Chuột Béo Tester
Leave a Comment