Những kiến thức cần có để trở thành một Automation Tester


Trong một quy trình phát triển phần mềm, hình thức test phần mềm phổ biến là Manual Test (kiểm tra thủ công bằng tay). Ví dụ để test chức năng của form log in, một Manual Tester sẽ tự nhập tay username, password, click “log in”, xem kết quả đăng nhập thành công hay không.

Khi có bất kì sự thay đổi về giao diện hay tính năng thì Tester phải test lại những case đã từng làm để đảm bảo chức năng không có lỗi. Quá trình này mất khá nhiều thời gian và công sức.

Khái niệm Automation Test ra đời có thể hiểu rất đơn giản là thay vì test bằng tay, ta để máy thực hiện việc testing mà Manual 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ả). Automation Testing đóng một vai trò quan trọng góp phần nâng cao năng suất kiểm thử, giảm thiểu lỗi cũng như sự nhàm chán với việc kiểm thử bằng tay trong một thời gian dài hoặc lặp đi lặp lại.

Automation Test là một quá trình xử lý tự động các bước thực hiện một test case và được thực hiện bởi phần mềm là Automation Testing Tool. Mục đích của Tester là tìm bug nhưng mục đích cuối cùng vẫn là hỗ trợ để làm ra sản phẩm tốt nhất.

Vậy để trở thành một Automation Tester thì cần phải làm gì? Dưới đây là những kinh nghiệm mình chia sẻ dưới góc nhìn cá nhân của bản thân sau gần 5 năm làm việc trong vai trò của 1 Automation Tester. Bài viết không đi sâu vào phần technical mà chỉ định hướng giúp mọi người làm sao để tiếp cận với nguồn kiến thức và cách học tiết kiệm thời gian nhất.

I. Những kiến thức nằm lòng về testing:


1, Types Testing: Unit/ Intergration/ System/ Sanity/ Regression test/… là gì?
2, Testing Techniques: Phân tích giá trị biên/ phân vùng tương đương/ biểu đồ kết quả/ Đoán lỗi/… là gì?
Tại sao phải trang bị những kiến thức này, bởi vì một AT sẽ không design được đúng/ đủ tất cả những cases mà mình cần nếu không nắm chắc những nội dung này, trong trường hợp bạn phải ôm xô cả vai trò của manual tester hoặc phải design testcase trước khi thực hiện scripting.
Nguồn tham khảo: http://www.guru99.com/software-testing.html

II. Nắm rõ về HTML, CSS và Xpath:


Để nhận dạng đúng Test Objects/ Elements mà mình cần thao tác. Việc nhận dạng đúng đối tượng cần thao tác sẽ tăng sự ổn định và độ chính xác của Test Script. Đây cũng chính là phần quan trọng không thể thiếu khi bạn muốn áp dụng Automation Test vào dự án.
Nguồn tham khảo: http://www.guru99.com/xpath-selenium.html

III. Có kiến thức về hướng đối tượng (OOP) và thành thạo ít nhất một ngôn ngữ lập trình thông dụng (Java, C#, Python, ...)


Rất dễ hiểu, khi bạn muốn sử dụng máy thay thế công việc của con người, bạn cần sử dụng một ngôn ngữ lập trình để máy có thể "hiểu" được điều bạn muốn. Nếu bạn muốn làm tốt công việc của một Automation Tester, hãy nắm vững phần này.

IV. Sử dụng thành thạo thư viện của Selenium WebDriver API


Selenium Webdriver (Se driver) là một tool open source giúp việc thực thi các hành động lên trang web một cách tự động, tất nhiên là tùy vào mục đích và yêu cầu của người viết. Selenium được sử dụng tại hầu hết các công ty có làm Automation (open source, dễ sử dụng, cộng đồng lớn). Khi bạn đã thành thạo việc sử dụng Selenium, việc tiếp cận với các công cụ khác (dành cho mobile, desktop) sẽ vô cùng nhanh chóng.
Nguồn tham khảo: http://www.seleniumhq.org/docs/03_webdriver.jsp

V. Sử dụng thành thạo ít nhất 1 framework testing (Junit/ TestNG/ NUnit/..)


Việc sử dụng thành thạo sẽ giúp bạn rất nhiều trong việc build framework, hỗ trợ trong việc phân nhóm, quản lí testscript, report, prepare data/ environment/ browsers.
Nguồn tham khảo:
http://toolsqa.wpengine.com/selenium-webdriver/testng-introduction
http://toolsqa.com/java/junit-framework/junit-introduction

VI. Tìm hiểu về software design pattern


Mục đích của việc tìm hiểu về các software design pattern để hỗ trợ cho bạn việc xây dựng framework hay common library cho dự án Automation Test.
Nguồn tham khảo:
https://www.tutorialspoint.com/design_pattern/

VII. Các kiến thức về Database:


Hầu hết dự án phần mềm nào cũng có thao tác với DB, nắm vững kiến thức về truy vấn, verify data, ràng buộc dữ liệu,.. sẽ giúp bạn rất nhiều trong công việc hàng ngày của Automation Tester.

VIII. Sử dụng IDE, source control (git, svn, ...) và các kỹ năng cơ bản trong coding:


1, Coding convension
2, Debugging
3, Control source, resolve conflict, ...

IX. Sử dụng/ build framework thành thạo từ Page Object Model pattern:


Tại sao lại là Page Object Model (POM)?
POM (Page Object Model) là 1 design pattern giúp mô hình hóa các pages, hoặc các phần (component: header, footer, menu…) trong page của trang web thành mỗi đối tượng riêng biệt. Mỗi component / page sẽ gói gọn tất cả các hành động và các thuộc tính của component / page đó.
Hiện nay, pattern phổ biến nhất trong việc phát triển một dự án Automation là POM.

X. Học hỏi công nghệ mới trong mảng Automation Testing:


Automation Test là một mảng vô cùng rộng, vậy nên việc cập nhật thêm các công nghệ mới (khi chúng được update mỗi ngày) là không thể thiếu, bạn có thể tham khảo thêm:
1, Build tools: Gradle, Maven, ANT,...
2, CI/CD: Jenkins, TeamCity, CircleCI, TFS, Docker,...
3, Cloud: AWS, Saucelab, Browserstack, Testingbot,...
4, BDD: Cucumber, Serenity, Specflow,...
5, Mobile: Appium, Perfecto,...
6, Desktop: Appium, AutoIT,...

Kết luận:

Xu hướng phát triển của ngành Testing trong hiện tại và tương lai:
Để có câu trả lời chính xác thì chúng ta nên dựa trên số liệu hay những công bố, tuy nhiên để trả lời câu hỏi này thì mình nghĩ là trong tương lai, một bạn làm Manual Tester dù muốn hay không, cũng nên trang bị những kỹ năng Automation Testing. Dù không đam mê đến mức build một hệ thống automation testing hoàn chỉnh, bạn cũng có thể maintain mở rộng hệ thống của công ty, tổ chức mà bạn đang hoặc sẽ tham gia trong tương lai. Đối với người tuyển dụng, yêu cầu về Automation Testing bây giờ là optional, nhưng tương lai nó sẽ là một requirement (bắt buộc). Từ 2 nhận định này, trong tương lai thị trường về Automation Testing hầu như chiếm xu thế, và những doanh nghiệp đang có sản phẩm CNTT là chủ lực, họ sẽ chuyển dần từ Manual sang Automation.

Tài liệu tham khảo:
https://sdacademy.dev/who-is-a-test-automation-engineer-and-how-to-become-one/

Leave a Reply

Your email address will not be published. Required fields are marked *