Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Automation Test là gì?

  1. KHÁI NIỆM

Automation Test 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à 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.

Một số phần mềm kiểm tra tự động nổi tiếng hiện nay như:

  • Quick Test Professional – (HP)
  • Ranorex
  • Test Architect – (LogiGear)
  • Selenium
  • Visual Studio CodedUI Testing
  • TestComplete (SmartBear)
  • SOAPUI – Web Services Testing (SmartBear)
  1. ƯU – NHƯỢC ĐIỂM CỦA AUTOMATION TESTING

Ưu điểm:

  • Độ tin cậy cao: Công cụ kiểm thử tự động có sự ổn định cao vì hoạt động theo quy trình định sẵn, đặc biệt trong trường hợp nhiều test case tránh được nhiều trường hợp lỗi do con người tạo ra khi kiểm tra thủ công. Ví dụ như nhập sai dữ liệu.
  • Khả năng lặp: Mình có thể test cách phần mềm xử lý (tính năng/hiệu năng) khi gặp tình huống chạy lặp đi lặp lại nhiều lần trên cùng script test giúp các Tester xử lý trường hợp lặp đi lặp lại các thao tác như: click, nhập dữ liệu, check kết quả,…) Đây còn gọi là performance/load testing.
  • Khả năng tái sử dụng: Với automation test mình có thể tái sử dụng test trên nhiều phiên bản khác nhau của ứng dụng ngay cả khi có sự thay đổi giao diện. có thể test ở nhiều môi trường khác nhau: môi trường test, môi trường beta, môi trường production.
  • Tốc độ cao: Automation test giúp chạy test nhanh hơn với tốc độ nhanh hơn ít nhất 10 lần so với tốc độ test bằng tay. Nếu cần 5 phút để thực thi một test case một cách thủ công thì có thể chỉ cần khoảng 30s để thực thi một cách tự động.
  • Chi phí thấp: nếu áp dụng kiểm thử tự động đúng cách, chúng ta có thể tiết kiệm được nhiều chi phí về thời gian và nhân lực. Bởi kiểm thử tự động nhanh hơn nhiều so với kiểm thử thủ công, đồng thời nhân lực cần để thực thi và bảo trì scripts không nhiều.

Nhược điểm:

  • Khó mở rộng, khó bảo trì: trong cùng một dự án, để mở rộng phạm vi cho kiểm thử tự động khó hơn nhiều so với kiểm thử thủ công vì cập nhật hay chỉnh sửa yêu cầu nhiều công việc như debug, thay đổi dữ liệu đầu vào và cập nhật code mới.
  • Khả năng bao phủ thấp: do khó mở rộng và đòi hỏi nhiều kỹ năng lập trình nên độ bao phủ của kiểm thử tự động thấp xét trên góc nhìn toàn dự án.
  • Vấn đề công cụ và nhân lực: hiện nay cũng có nhiều công cụ hỗ trợ kiểm thử tự động khá tốt nhưng chúng vẫn còn nhiều hạn chế. Ngoài ra nhân lực đạt yêu cầu (có thể sử dụng thành thạo các công cụ này) cũng không nhiều.
  • Tốn thời gian: để có thể áp dụng tốt đòi hỏi thời gian chuẩn bị dài hơn để thiết kế, cài đặt kỹ càng trước khi chạy dự án.
  • Nhân lực: Đòi hỏi Tester có kinh nghiệm về technical và kỹ năng lập trình,… đồng nghĩa với mức lương phải trả cho Tester cao.
  1. ĐỂ TRỞ THÀNH AUTOMATION TESTER THÌ CẦN NHỮNG KỸ NĂNG GÌ? 

Bản chất của Automation Tester Architect là xác định các tính năng của Automation Testing Framework, hỗ trợ phát triển Framework để làm automation test.

Đầu tiên, để trở thành một Automation Tester bạn cần có những kiến thức nằm lòng về testing:

  • Types testing: Unit/Integration/System/Sanity/Regression test/…. là gì?
  • 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ì?
  • Nắm rõ nguyên lý nhận dạng test objects: HTML và XPath để nhận dạng đúng khi mình cần thao tác.
  • Sử dụng thành thạo thư viện của Selenium WebDriver API bởi Selenium open source, dễ sử dụng, cộng đồng lớn.
  • Thành thạo ít nhất một ngôn ngữ lập trình thông dụng, hỗ trợ cho việc scripting trên test tools: Java/C#/Python/Ruby/JS/…
  • Sử dụng thành thạo ít nhất 1 framework testing: Junit/TestNG/NUnit/… từ đây 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ý test script, report, prepare data/environment/browsers.
  • Tìm hiểu về software design pattern để build framework/common library
  • Sử dụng/build framework thành thạo từ Page Object Model pattern.
  • Kỹ năng về coding/IDE: Debug, coding convention, source version control (GIT, SVN,…), cách sử dụng IDE: Visual Studio, Eclipse, IntelliJ…, làm việc với database…
  • Học hỏi công nghệ mới trong mảng automation testing: build tools: Maven, ANT…, CI/CD: Jenkins, TeamCity, CircleCI, TFS, Docker.., Cloud: AWS, Saucelab, Browserstack, Testingbot…, Big Data: Hadoop, HBase, Hive…, mobile: Appium…
  • Nên học hỏi những các mới tránh trường hợp không update sẽ bị tụt hậu.
  1. TẦM QUAN TRỌNG CỦA AUTOMATION TESTING TRONG THỜI KỲ 4.0

Hiện nay, với sự phát triển không ngừng ở thời kỳ công nghiệp kéo theo đó là sự phát triển của rất nhiều ngành nghề, đặc biệt là ngành công nghệ thông tin. Trong những năm gần đây, vị trí Automation Tester đang là vị trí hot trong nhiều công ty. Từ những vị trí chuyên sâu về phát triển tool/framework/library đế những bạn có thể viết được script dựa trên một công cụ Automation Test nào đó. Vì vậy Automation Test đang và sẽ là xu hướng chung của ngành tester.

Với xu hướng chung như vậy cho thấy sự canh tranh trong tương lai nên yêu cầu về nhân lực trong mảng này cũng đòi hỏi các ứng viên cần phải có kỹ năng tốt hơn nữa về lập trình, technical, các kỹ năng về automation…

  1. LỜI KHUYÊN DÀNH CHO CÁC AUTOMATION TESTER 

  • Phải xác định thông tin cẩn thận với khách hàng: có nhiều trường hợp sản phẩm được tạo ra mà không phải cái mà khách hàng cần. Để tránh rơi vào trường hợp khó xử này, chúng ta nên viết recap sau đó gửi cho khách hàng và yêu cầu họ trả lời và xác nhận email. Bởi đó là bằng chứng nếu khách hàng chối bỏ sả phẩn cũng như một lần nữa chốt lại vấn đề tranh hiểu nhầm về sau.
  • Không được bảo thủ: Khách hàng đến với mình vì họ không có kinh nghiệm chuyên sâu về cái đó vì vậy nếu không chịu lắng nghe mong muốn của khách hàng mà chỉ cho rằng khách không hiểu biết gì và cố bảo vệ quan điểm của mình và thuyết phục khách hàng như vậy sẽ mất thời gian xử lý cũng như hợp tác các bên sẽ không vui vẻ. Chúng ta nên tìm cách giải quyết thay vì bác bỏ ngay từ đầu ý kiến của khách hàng để dự án được thành công tốt đẹp.
  1. SÁCH THAM KHẢO

Các bạn có thể tham khảo hai quyển sách cơ bản mà rất hữu ích sau đây:

  • Automated Testing Handbook: quyển sách này mô tả rõ ràng và đầy đủ đặc điểm chính về các tính năng tìm kiếm trong một bộ kiểm tra tự động.
  • Experience of Test Automation: quyển sách này nêu lên ba vấn đề: những cách tiếp cận phù hợp, các ứng dụng nào có thể áp dụng Automation Test và Automation Test thay đổi như thế nào.

Nguồn: Nordiccoder