Automation Testing

7. Spring Data Repository

1. Khái niệm

Trong lĩnh vực kiểm thử phần mềm, thì kiểm thử tự động hay còn gọi là 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.

Kiểm thử tự động là một quá trình xử lý tự động các bước thực hiện một test case. Kiểm thử tự động được thực hiện bởi phần mềm kiểm thử tự động – hay còn gọi là Automation Testing Tool. Một số phần mềm kiểm thử tự động nổi tiếng hiện nay như:

  • Quick Test Profressional – (HP)
  • Selenium
  • Test Architect – (LogiGear)
  • Ranorex
  • Visual Studio CodedUI Testing
  • TestComplete (SmartBear)
  • SOAPUI – Web Services Testing (SmartBear)

2. Ưu, nhược điểm của Automation Testing so với Manual Testing

Ưu điểm:

  • Độ tin cậy cao: công cụ kiểm thử tự động có sự ổn định cao hơn so với con người, đặc biệt trong trường hợp nhiều test cases, nên độ tin cậy cao hơn so với kiểm thử thủ công.
  • Khả năng lặp: công cụ kiểm thử tự động ra đời là để giúp cho các tester không phải lặp đi lặp lại các thao tác (ví dụ: nhập dữ liệu, click, check kết quả…) một cách nhàm chán với độ tin cậy và ổn định cao.
  • Khả năng tái sử dụng: với một bộ kiểm thử tự động, người ta có thể sử dụng cho nhiều phiên bản ứng dụng khác nhau, đây được gọi là tính tái sử dụng.
  • Tốc độ cao: do thực thi bởi máy nên tốc độ của kiểm thử tự động nhanh hơn nhiều so với tốc độ của con người. Nếu cần 5 phú để thực thi một test case một cách thủ công thì có thể người ta 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, người ta có thể tiết kiệm được nhiều chi phí, thời gian và nhân lực, do 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.

3. Để trở thành Automation Tester thì bắt đầu từ đâu?

Một Automation Testing 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.

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

  • Types testing: Unit/Intergration/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õ về HTML và XPath để nhận dạng đúng test objects/elements mà mình cần thao tác.
  • 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 thư viện của Selenium WebDriver API bởi Selenium open source, dễ sử dụng, cộng đồng lớn.
  • 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ý testscript, 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 convension, 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.., Clould: AWS, Saucelab, Browserstack, Testingbot…, big data: Hadoop, HBase, Hive…, mobile: Appinum…

Leave a Reply

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