04 Điều Cần Chú Ý Cho Người Mới Làm Automation Test
Automation Test nghe có vẻ cao siêu, đặc biệt là với các bạn Tester mới. Chỉ cần chú ý đến 4 điều dưới đây, Automation Test sẽ dễ không tưởng.
1. Chú ý về cách dùng Locators
Element Locators là một yếu tố quan trọng để quyết định sự ổn định một một automation test script. Nhiều bạn mới học thường không quan tâm nhiều đến việc lấy locator hiệu quả mà chỉ lấy để nó chạy được ngay lúc đó. Tuy nhiên việc một XPath chạy được ngay lúc đó không có nghĩa là một thời gian sau nó sẽ chạy tốt. Nhất là khi có một sự thay đổi nhỏ trên ứng dụng và tác động đến cấu trúc của XPath. Việc đầu tư thời gian để tìm hiểu về locator, về các kiểu locating đang hỗ trợ, XPath tương đối – tuyệt đối & XPath tối ưu sẽ giúp ích rất nhiều và cũng giảm thời gian để sửa lại sau này. Việc tìm và sửa XPath nói riêng hay locator nói chung là một việc làm mệt mỏi và tốn thời gian.
Hai XPath này là cùng một element, nhưng cách thứ nhất sẽ hay hơn.
//*[@class=’nav-logo’]
//*[@id=”main-nav”]/div[1]/a/svg
2. Chú ý về việc chuẩn bị Test Data
Việc chuẩn bị test data (hay còn gọi là bước Pre-Conditions) cũng là một việc quan trọng. Phần lớn script lỗi là do locator, phần còn lại là về test data. Nhiều bạn thường sử dụng data có sẵn để test và không tự chuẩn bị data. Ví dụ như khi kiểm tra chức năng tìm kiếm thì lấy ngẫu nhiên một tên sản phẩm để search. Tuy nhiên cách này chỉ là cách tạm thời và mang nhiều rủi ro, vì có thể sau một thời gian tên sản phẩm đó bị đổi, bị xoá bới một người khác, và khi đó script sẽ không tìm ra sản phẩm và trả về kết quả là Fail.
Việc tự tạo một data để test sẽ giúp chúng ta kiểm soát được điều kiện và đảm bảo luôn có đúng dữ liệu cần thiết, ví dụ như kịch bản phía trên, thay vì chọn ngẫu nhiên một tên sản phầm thì việc tạo mới sản phẩm trước để có data cần thiết, hoặc có thể tham khảo thêm một số cách để chuẩn bị data như bên dưới tương tự phần #3.
3. Chú ý về khôi phục Test Data
Việc khôi phục test data (Post-Conditions) cũng quan trọng như bước chuẩn bị, ví dụ như sau khi thực hiện test case thay đổi mật khẩu của một tài khoản thành công, chúng ta phải có bước để khôi phục lại giá trị cũ để những test khác có dùng đến tài khoản (hoặc data đó nói chung) không bị ảnh hưởng, tương tự như việc đổi quyền hạn, trạng thái của những data cần test.
Một số ý tưởng để restore lại data sau khi chạy automation test script
3.1. Dùng luôn UI để restore sau khi chạy test xong (Ví dụ sau khi tạo tài khoản và verify thành công thì xoá tài khoản đó trên web UI luôn). Cách này không cần can thiệp vào DB tuy nhiên sẽ tốn thời gian và làm script trở nên dài hơn.
3.2. Có API thì nên gọi API, nếu có thể nhờ dev viết thêm cho những API để sử dụng thì càng tốt. Cách này nhanh & an toàn tuy nhiên cần phải có sẵn những API cần thiết.
3.3. Xoá thông qua query SQL. Ví dụ tạo user a1122 thì query user đó ra để xoá, tuy nhiên đòi hỏi phải có quyền connect trực tiếp vào data và mang nhiều rủi ro.
3.4. Snapshot cả DB trước khi chạy test, test xong hết thì restore cả DB lại. Cách này sẽ đảm bảo DB sạch như ban đầu.
3.5. Không cần restore trên môi trường test nếu không lo lắng về việc data rác. Cái này không phải giải pháp hay.
3.6. Tạo sẵn 1 list các câu query cần thiết trước, chạy nó (hoặc nhờ DB admin chạy) sau khi run test. Áp dụng trong trường hợp không có quyền thực hiện trên DB mà phải nhờ DB admin chạy giúp các câu lệnh.
4. Chú ý về việc phụ thuộc giữa các test cases (Dependency)
Các test không nên phụ thuộc nhau, hay nói cách khác nó nên độc lập (Independence Tests).
Ví dụ mình có 3 test cases, thì 3 testcase này nên độc lập nhau, nếu chỉ lấy ra một trong ba thì vẫn có khả năng chạy được, tránh việc các test phụ thuộc gì đó với nhau và khi chạy riêng thì bị lỗi là không đúng. Nếu có ràng buộc thì cần chuẩn bị nó như một pre-condition tương tự bước #2.
Việc phụ thuộc nhau còn dẫn đến tình huống nếu một test gặp lỗi sẽ ảnh hưởng đến những test khác phía sau.
Lời kết
Trên đây là 4 điều cần lưu ý trong giai đoạn bắt đầu với automation test, có thể nó sẽ tốn thêm một chút thời gian để tìm hiểu nhưng nó rất đáng và giúp ích nhiều đặc biệt là khi bạn sẽ tham gia vào một dự án thật tế trong công ty. Nếu cần thêm thông tin hay thắc mắc bạn có thể comment bên dưới nhé!