Nguồn: Salesforce Engineering
Tóm tắt
Khi Salesforce tái cấu trúc test harness của mình vào năm 2022, code coverage của codebase Apex đã giảm 28 điểm phần trăm. Thay vì viết thêm test mới (do giới hạn nguồn lực), nhóm kỹ thuật đã tìm cách phục hồi toàn bộ độ phủ đó chỉ bằng cách cải thiện cách thức chạy các test hiện có.
Giải pháp chính đầu tiên là thêm annotation @IsTest(SeeAllData=false) vào tất cả test method. Thao tác này buộc từng test class phải tự tạo dữ liệu riêng thay vì phụ thuộc vào dữ liệu tổng của org — từ đó kích hoạt cơ chế chạy song song tự động của Salesforce, giúp tăng cả tốc độ lẫn độ tập trung của từng test.
Giải pháp thứ hai là tổ chức test thành các Test Suite có phạm vi hẹp hơn. Thay vì chạy toàn bộ test cùng nhau, các suite theo từng nhóm chức năng giúp đo coverage có mục tiêu hơn — tương tự unit testing framework ở các ngôn ngữ khác. Nhóm cũng tận dụng lại test.startTest / test.stopTest đúng cách để kiểm soát governor limit và phạm vi coverage.
Kết quả là 28 điểm phần trăm coverage được phục hồi hoàn toàn mà không tốn một dòng test mới nào. Bài viết là minh chứng rõ ràng rằng chất lượng tổ chức test và cách ly dữ liệu ảnh hưởng lớn đến coverage không kém gì số lượng test cases.