Bài viết chuyên sâu

[Software Testing] Autotest experience

[Software Testing] Autotest experience

by Admin Dathoc -
Number of replies: 0

#koolj_softwaretesting


Sáng có bạn đặt câu hỏi rất hay về kinh nghiệm làm auto test:


----------------------------------------------------------------


Question:


Chào bạn,


Cho mình hỏi kinh nghiệm xây dựng kịch bản automation test với các ứng dụng web (chức năng giao diện/webservice)


Vd: Tiêu chí lựa chọn các test case, đánh giá phạm vi,..


Sau khi mình đã lựa chọn được danh sách các test case cần làm script test rồi thì mình sẽ thực hiện theo hướng nào


1. Xây dựng script test cho các test case riêng biệt, có file excel dữ liệu test để input và ghi nhận kết quả


Đối với phương án này thì một số test case có cập nhật cơ sở dữ liệu thì sẽ không thể chạy lại kịch bản nếu không sử dữ liệu test. VD: Chỉ xóa được 1 bản ghi 1 lần, nếu chạy lại test case xóa với cùng 1 input key ban đầu thì kịch bản sẽ gặp lỗi


2. Xây dựng theo các test suite, mỗi test suite gồm một số test case có liên quan với nhau. Đầu ra của test case này là đầu vào của test case sau


Vd: Tạo điện chuyển tiền > Đẩy duyệt điện > Duyệt điện


3. Việc xây dựng kịch bản auto test, theo bạn là chỉ cần tester phối hợp với dev thôi hay là tester phối hợp với nghiệp vụ (khách hàng), bởi vì nó còn liên quan tới ai là người chuẩn bị dữ liệu test (như bên mình là file excel input)


Cảm ơn bạn nhiều !


-------------------------------------------------------------------


Thú thật tôi chưa rõ ý bạn hỏi. Để tôi làm rõ thêm nhé:


1. "tester phối hợp với dev thôi hay là tester phối hợp với nghiệp vụ" <--- Hai cái này nó ko liên quan ..HOẶC là.. Mà nó là 2 phần việc độc lập.


2 "xoá một bản ghi, xong rồi chạy lại sẽ ...gây lỗi." <--- cái này có nghĩa là bạn đang adhoc testing chứ ko phải làm 1 chu trình auto.


3. "kinh nghiệm xây dựng kịch bản automation test với các ứng dụng web (chức năng giao diện/webservice) <--- Xin trả lời bên dưới


.


.


.


👉Kinh nghiệm số 1: Làm testing từ 1996 tới nay (2015) tôi thấy CẦN KHUYÊN các fans là: cần thiết việc bạn cần mua và sử dụng các công cụ test chuyên nghiệp. Để nó sẽ saving time các bạn rất rất nhiều. VD, UFT, IBM Functional tester... còn nếu bạn không có tiền thì....


👉Bạn cần xác định làm test auto ngay từ đầu dự án. ĐÂY LÀ KHÂU QUYẾT ĐỊNH giảm 99% khó khăn tiếp theo trong chuỗi dự án dài định làm autotest. Vậy khi thiết kế ra ID Mobile app, HTML, CSS, và dev làm ra các DOM động, thì phải phục vụ cho việc autotest. Tức là cần xác định các android/ios id, dom id, hoặc css id dễ lấy, để tool record/hoặc script của tester biết mà tự động theo. Để làm việc này: toàn team phải thống nhất, chứ ko dev hoặc test. 


👉Xác định ngay SỬ DỤNG LẠI: khi đã tạo ra một thao tác auto gì đó, cần sử dụng lại nó. Không được phép tạo ra cái mới, ví dụ: bạn tạo auto việc copy và paste, vậy ở tất cả các chỗ khác bạn cần sử dụng lại nó; ví dụ bạn tạo ra việc auto nhận vị trí id, vậy các script khác của bạn nếu cần biết vị trí id nên sử dụng lại cái trên.


👉Khi test một ứng dụng, tester cần rõ nghiệp vụ. Chứ ko có từ HOẶC ở đây (như bạn nêu). Sau đó: 90% kịch bản auto sẽ như sau:


1. case 1, làm script reset hệ thống


2. làm script các case cơ bản (thêm xoá sửa)


3. làm script các case mở rộng (ví dụ như ảnh đính kèm check lỗi, alter cases). Nếu tool bạn xịn bạn chỉ cần 1 vòng for chạy 1000 test cases với các kết hợp đầu ra đầu vào là xong.


4. Sang case khác, cần trở lại buớc (1)


👉Người ta bắt buộc phải động tới autotest khi và chỉ khi:


- Bạn muốn regression test (validate lại những chức năng khác so với chức năng đang được sửa)


- Dự án quá lớn và có nhiều cái lặp đi lặp lại


- Dự án có nhiều chỗ cần verify điện tử (tức là mắt mũi tay chân không đảm bảo)


- Dự án có nhiều chỗ cần validate về tốc độ, chịu tải, hiệu năng


👉TUYỆT ĐỐI phải dùng công cụ để validate: màu sắc, kích cỡ, vị trí, GUI, UI. Đôi khi tool cũng có thể validate cho bạn đc UX- User Experience. Bạn chưa rõ dùng thế nào bở tool tự tạo, nên xem clip này: https://www.youtube.com/watch?v=6geMSqPGtGo&t=33s


👉Khi làm testauto cần phải thiết kế dữ liệu test cho toàn nghiệp vụ, các truờng hợp, chứ ko 1 adhoc, một công đoạn, hoặc đang tới lưọt mình test các bạn khác chen ngang. Vầ 100% cần data đó bạn load động từ db khác, từ csv, từ excel, nếu bạn không rõ xin xem cấu hình với tool nhà: https://www.youtube.com/watch?v=U8bNpclQNLg&list=PL751V5I3RIDH4RzUWGCQ1NhXuO2sCb-G3&index=5


👉Rất nhiều lần có nhiều lượt auto test trong cùng nghiệp vụ (vd nhiều bạn autotest 1 app). Bạn cần có những chiến lược tìm ra bản ghi của mình hoặc tìm ra tình huống của mình mà ko lẫn vào data của ng khác đang test.


👉Rất cần ở bạn có một sức khoẻ tốt và thể dục thường xuyên, để chống lại ngày đêm theo dõi test case chạy.


Các bạn có thể tham khảo tool HERA, team phát triển từ 2011, có thể đáp ứng những yêu cầu trên:


https://www.youtube.com/watch?v=r7AOkVpGV5E&t=16s


.


.


.


Còn các fans khác ra sao, xin mọi người bổ sung ý kiến nhé.


--------------------------------


SÁCH - TẠP CHÍ - TÀI LIỆU ĐÚC KẾT KINH NGHIỆM làm về SOFTWARE TESTING cần tham khảo: dathoc.net/booktest


Các fans có thể học MIỄN PHÍ demo course online qua: youtube.com/c/TesterPRO/playlists


Bạn muốn thông thạo hơn việc viết thiết kế testcase, sử dụng công cụ HERA để automation test, các framework Appium, TestNG, xin tham gia các khoá học trực tuyến miễn phí, học lúc nào cũng được tại: youtube.com/c/TesterPRO/


By: dathoc.net/cv