Tổng quan về testing – Phần 3: Công việc của tester, Automation Test có gì hot

 

Trong phần cuối này, chúng ta sẽ tìm hiểu về công việc thường ngày về của 1 tester và sự hay ho của automation test – một trào lưu khá nổi gần đây (Nói gần đây chứ nổi chắc cũng cả mấy năm rồi) nha.

Series gồm 3 phần:

Ở phần trước, mình đã có một sự so sánh nhẹ giữa manual testing và automation testing. Thật ra, manual testing là nền móng cho automation testing. Muốn tự động hoá một thứ gì, bạn phải biết cách thực hiện nó một cách thủ công trước.

Do vậy, mình sẽ kể các bạn nghe về công việc mà một tester phải làm hàng ngày, và automation testing sẽ giúp ta tiết kiệm thời gian như thế nào.

Công việc thường ngày của 1 tester

Nếu như công việc thường ngày của 1 developer là phân tích, thiết kế hệ thống và công thì công việc thường ngày của một tester là phân tích, thiết kế test case và … test.

Chúng ta tiếp tục câu chuyện về bạn Tùng tester phần trước. Mỗi ngày đi làm, Tùng nhận được 1 danh sách các test case để test (Danh sách này có thể do Tùng tự viết ra, hoặc của sếp hoặc các đàn anh đi trước trong team để lại).

Một test case bao gồm các thông tin:

  • Tên test case + Mô tả thêm về test case đó
  • Các bước thực hiện
  • Môi trường + phiên bản test
  • Kết quả nên có
  • Kết quả thực tế (Phần này Tùng sẽ test sau đó ghi vào)

Dưới đây là một test case mẫu:

  • Tên test case: Cho hàng vào giỏ hàng
  • Các bước thực hiện: Đăng nhập, click vào nút “Mua Hàng” phía dưới sách Code Dạo Kí Sự trên trang chủ
  • Môi trường + phiên bản test: Phiên bản 1.1.22 trên trình duyệt Chrome
  • Kết quả nên có: Giỏ hàng có thêm sản phẩm sách Code Dạo Kí Sự với giá 112k
  • Kết quả thực tế: Pass

Tùng thực hiện các bước với từng test case, đối chiếu kết quả nhận được với kết quả nên có, sau đó viết vào test report gửi cho sếp.

Khi phát hiện ra bug, Tùng sẽ log bug lại, sau khi có người trong team developer fix, Tùng sẽ vào test lại để xác nhận bug đã được fix.

Qui trình báo bug và fix bug

Test đi test lại là một chuyện … vô cùng nhàm chán và mệt mỏi

Các bạn có thể thấy, công việc của tester mang tính chất lặp đi lặp lại khá nhiều. Khi hệ thống có chức năng mới, tester phải test chức năng đó. Khi developer fix một bug, tester phải test để check lại bug đó.

Quan trọng hơn là, khi hệ thống có thay đổi (đổi design, thêm tính năng, refactor code), tester phải test lại những test case đã pass để đảm bảo những thay đổi này không… tạo thêm bug cho hệ thống (còn gọi là regression test). Nhiều khi các anh developer vô tình hay cố ý giấu bug vào thì sao.

Những việc testing này được thực hiện bằng tay, bằng sức người, gọi là manual test. Việc này vừa mất thời gian, vừa nhàm chán và mệt mỏi nên không thể làm thuường xuyên. Chưa kể, tester cũng là con người, cũng có lúc sai lầm hoặc sơ sót, test đi test lại sẽ để log bug.

Thế rồi, automation test ra đời, giải quyết hầu hết những vấn đề trên!

Automation Test là có gì hot?

Nguyên lý của automation test rất đơn giản. Thay vì test bằng tay, ta để máy thực hiện việc testing mà tester phải làm (Khởi động hệ thống, nhập dữ liệu đầu vào, kiểm tra so sánh với dữ liệu đầu ra và ghi kết quả).

Ta có thể viết code để cho máy làm những điều này, hoặc sử dụng một số công cụ record lại những hành động chúng ta đã làm, sau đó chạy lại những hành động này. Một số công cụ/framework mà các bạn Automation Tester hay dùng là QTP, Appium, Selenium,… .

Automation Test có gì hot?

Nếu các bạn chưa viết Automation Test bao giờ, ở lần đầu tiên chạy Automation test, bạn sẽ ngạc nhiên và sửng sốt vì nó quá cool. Trình duyệt tự động mở lên, nhập dữ liệu, click v…v mà không cần ta động tay động chân làm gì cả!

Automation test với selenium, các bạn bấm vào hình xem cho rõ nhé

Quay lại câu chuyện trên, nếu Tùng là một Automation Test engineer, Tùng sẽ chạy thử test case bằng tay, sau đó viết code hoặc dùng tool để automation. Lần sau, nếu hệ thống thay đổi, Tùng chỉ việc bấm Run để chạy code test và ngồi chờ kết quả, nhanh gọn chưa nào!

Với Automation Test, ta có thể test nhanh hơn, test thường xuyên hơn, test kĩ hơn. Ví dụ như người test chỉ có thể test 3,4 trường hợp, dùng automation test ta có thể test hàng chục hàng trăm trường hợp.

Tất nhiên Automation Test cũng có 1 số ưu khuyết điểm, nó chỉ bổ sung chứ không thể thay thế hoàn toàn manual test được. Có người đã viết kĩ rồi nên mình khỏi tóm tắt lại nhe.

https://viblo.asia/p/khi-nao-thi-su-dung-automation-testing-OeVKBYyE5kW

Automation Engineer – Hot mà hiếm

Như mình đã nói,manual testing là nền móng cho automation testing. Muốn tự động hoá một thứ gì, bạn phải biết cách thực hiện nó một cách thủ công trước.

Do vậy, dù developer chúng ta có thể viết code automation giỏi hơn các bạn tester, nhưng chúng ta thua xa tester về khả năng tìm lỗi, khả năng nghĩ ra testcase để test.

Thật lòng mà nói thì tìm Automation Engineer đôi khi còn khó tìm hơn lập trình viên. Vì vị trí này đòi hỏi phải có tư duy và góc nhìn của tester, vừa có kĩ năng code của developer. Đa phần code được thì họ đi làm developer cả rồi.

Do vậy, đây là vị trí khá “ngon ăn” với các bạn tester. Tuyển tester thường dễ hơn developer một chút. Các bạn làm manual test có thể nhảy từ manual sang automation, công việc thú vị hơn, ít nhàm chán hơn, lương cao hơn nữa (do nhu cầu mà).

Lương của Automation QC Engineer cũng không thua gì senior developer đâu nhe

(Nói nhỏ là mình full-stack nên viết code automation test cũng được luôn, có điều case chắc không cover nhiều bằng các bạn tester rồi).

Túm lại thì bài này mang lại lợi ích gì?

Thông qua bài này, các bạn đã hiểu hơn về công việc của các bạn tester trong công ty, qua đó thông cảm và thấu hiểu họ để làm việc hiệu quả hơn.

Dân developer chúng ta rất thích viết code. Làm Automation QC Engineer cũng viết rất nhiều code, các bạn nào có hứng thú cũng có thể thử nhảy qua luôn.

Ngoài ra, với nhiều team không có tester, developer chúng ta chịu khó viết unit test, automation test cũng sẽ giảm thiếu rất nhiều khả năng phát sinh bug; đâu có lỗ gì đâu phải không nào!

Kết

Như mình đã nói, testing là một mảng khá rộng khá rộng, có thể coi như một chuyên ngành riêng. Nội chuyện viết test case, unit test hoặc automation test cũng tốn 3, 4 cuốn sách rồi nên trong vòng 1, 2 bài viết code dạo sẽ không thể nói hết được.

Liên quan đến testing còn 1 số khái niệm như TDD, BDD nữa mà mình không nhắc đến trong bài viết. Mấy cái này mình chỉ biết về lý thuyết chứ chưa thực sự áp dụng bao giờ. Bạn nào có kinh nghiệm cứ comment chia sẻ cho mọi người nhé!

Link tham khảo thêm:

5 thoughts on “Tổng quan về testing – Phần 3: Công việc của tester, Automation Test có gì hot”

  1. Chào bạn, mình năm nay 25 tuổi đã làm xây dựng đc hơn 2 năm. Nhưng mình đang tìm hiểu về tester và muốn chuyển hướng nghề nghiệp, do mình cũng có đam mê công nghệ, trước đây cũng đã học và làm intern về frontend. Mình mong nhận được lời khuyên từ bạn, cảm ơn bạn rất nhiều.

    Like

  2. Chào anh Hoàng, em là thực tập sinh, công ty em xếp em vào làm automation, bỏ qua chuyện bản thân thích gì, em muốn hỏi theo automation testing cso tương lai không ạ? Hay là em nên dừng lại và quay về làm dev

    Like

  3. Anh ơi cho e hỏi: viết unitest có đươcj gọi là automation test không anh? tại vì em tìm trên mạng thì cứ nhắc đến automation test là cứ chỉ nói về selenium, webdriver,… những tool hỗ trợ auto test khi trên UI mà không thấy những thứ khác. Giờ em đang tìm hiểu về automation test để trình bày cho team xem nó là gì? và để xem hệ thống hiện tại của team nên sử dungj automation test ở level nào cho phù hợp. E vẫn thấy mông lung quá vì tìm cứ chỉ nói xoay quanh automation test cho UI thôi :((. Anh có thể giải đáp thắc mắc giúp e với đc k ạ? e cảm ơn !

    Like

Leave a comment