A. Kiểm thử tự động

1. Kiểm thử tự động là gì?

Kiểm thử tự động là việc sử dụng các công cụ để thực hiện các test case.
Kiểm thử tự động cũng có thể nhập dữ liệu thử nghiệm vào hệ thống kiểm thử, so sánh kết quả mong đợi với kết quả thực tế và tạo ra các báo cáo kiểm thử chi tiết.

2. Kiểm thử tự động sử dụng khi nào?

Kiểm thử tự động được sử dụng khi:
 Các trường hợp kiểm thử được thực hiện lặp đi lặp lại để đảm bảo tính năng. của phần mềm/ sản phẩm.
 Thực hiện ở các trường hợp mà kiểm thử thủ công khó thực hiện.
 Các trường hợp kiểm thử cần tốn nhiều thời gian.

3. Kiểm thử tự động sử dụng ở đâu?

  • Kiểm thử tự động sử dụng trong các giai đoạn kiểm thử:
     Unit Testing( Kiểm thử đơn vị)
     Integration Testing( Kiểm thử tích hợp)
  • Và trong các loại kiểm thử:
     Smoke Testing( Kiểm thử khói)
     Functional Testing( Kiểm thử chức năng)
     Regression Testing( Kiểm thử hồi quy)
  • Và trong kỹ thuật kiểm thử:
     Black Box Testing( Kiểm thử hộp đen)

4. Tại sao phải kiểm thử tự động?

 Kiểm thử tự động sử dụng các công cụ có thể ghi lại bộ kiểm tra này và phát lại nó theo yêu cầu.
 Tiết kiệm thời gian kiểm thử
 Tự động hóa không cần can thiệp của con người nên có thể chạy tự động kiểm tra mà không cần giám sát.
 Tự động tăng tốc độ thực hiện kiểm tra
 Tự động hóa giúp tăng phạm vi kiểm tra
 Kiểm tra bằng tay có thể trở nên nhàm chán và do đó dễ bị lỗi.
 Cải thiện độ chính xác
 Nhanh hơn 70% so với kiểm tra thủ công

B. Các công cụ tốt nhất được sử dụng trong kiểm thử tự động

1. Selenium

  • Khái niệm:
    Nó là một công cụ kiểm tra phần mềm được sử dụng để kiểm tra hồi quy( Regression Testing). Đây là một công cụ kiểm tra mã nguồn mở cung cấp chức năng phát lại và thu âm để kiểm tra hồi quy. Các Selenium IDE chỉ hỗ trợ trình duyệt web Mozilla Firefox.
  • Đặc điểm của Selenium:
     Cung cấp các điều khoản để xuất khẩu ghi lại kịch bản trong các ngôn ngữ khác như Java, Ruby, RSpec, Python, C #, JUnit và TestNG
     Nó có thể thực hiện nhiều bộ kiểm thử cùng một lúc
     Xác định phần tử sử dụng id, tên, đường dẫn X, v.v.
     Lưu trữ các bộ kiểm thử như Ruby Script, HTML và bất kỳ định dạng nào khác
     Hỗ trợ tệp tin người dùng selenium-extensions.js
     Cho phép để chèn ý kiến ở giữa của kịch bản để hiểu rõ hơn nội dung và mục đích của kịch bản kiểm thử

2. QTP (HP UFT)

  • Khái niệm:
    QTP được sử dụng rộng rãi để kiểm tra chức năng( Functional Testing) và hồi quy( Regression Testing), giải quyết các ứng dụng phần mềm và môi trường. Để đơn giản hóa việc tạo và bảo trì thử nghiệm, nó sử dụng khái niệm kiểm tra từ khóa.
  • Đặc điểm:
     Được sử dụng dễ dàng hơn dành cho người kiểm thử viên không theo ngành kỹ thuật để thích ứng và tạo ra các trường hợp thử nghiệm làm việc
     Sửa lỗi nhanh hơn bằng cách ghi lại và sao chép các lỗi cho nhà phát triển
     Thu gọn tài liệu thử nghiệm tại một trang web
     QTP hỗ trợ môi trường phát triển .NET
     Có cơ chế xác định đối tượng kiểm thử tốt

3. Rational Function Tester

  • Khái niệm:
    Là 1 công cụ kiểm tra tự động hướng đối tượng có khả năng tự động kiểm tra dữ liệu, kiểm tra giao diện, và kiểm thử hồi quy( Regression Testing)
  • Đặc điểm:
     Hỗ trợ một loạt các giao thức và ứng dụng như Java, HTML, NET, Windows, SAP, Visual Basic …
     Có thể ghi lại và phát lại các hành động theo yêu cầu
     Tích hợp tốt với các công cụ quản lý kiểm soát nguồn như Rational Clear Case và tích hợp Rational Team Concert
     Cho phép các nhà phát triển tạo ra các kịch bản liên quan đến từ khóa để có thể được tái sử dụng
     Bộ biên tập Công cụ Java Developer Toolkit của Eclipse tạo điều kiện cho nhóm tạo mã thử nghiệm các đoạn mã trong Java với Eclipse
     Hỗ trợ điều khiển tùy chỉnh thông qua proxy SDK (Java / .Net)
     Hỗ trợ kiểm soát phiên bản để cho phép phát triển song song các kịch bản thử nghiệm

4. WATIR

  • Khái niệm:
    Là một phần mềm kiểm tra mã nguồn mở để kiểm thử hồi quy( Regression Testing). Watir chỉ hỗ trợ khám phá Internet trên các cửa sổ trong khi Watir webdriver hỗ trợ Chrome, Firefox, IE, Opera,
  • Đặc điểm:
     Hỗ trợ nhiều trình duyệt trên các nền tảng khác nhau
     Sử dụng một ngôn ngữ kịch bản hiện đại có đầy đủ tính năng
     Hỗ trợ ứng dụng web được viết bởi bất kỳ ngôn ngữ nào
     Cho phép bạn viết các test case dễ đọc và bảo trì

5. SilkTest

  • Khái niệm:
    Silk Test được thiết kế để thực hiện kiểm tra chức năng( Functional Testing) và hồi quy( Regression Testing). Nó là một ngôn ngữ hướng đối tượng giống như C ++. Nó sử dụng các khái niệm về đối tượng, các class và sự kế thừa.
  • Đặc điểm:
     Nó bao gồm tất cả các tập tin mã nguồn
     Chuyển đổi các lệnh script thành các lệnh GUI. Trên cùng một máy, các lệnh có thể được chạy trên một máy từ xa hoặc máy chủ
     Để xác định chuyển động của con chuột cùng với các bấm phím, Silktest có thể được thực hiện. Nó có thể sử dụng cả phương pháp phát lại và ghi hoặc các phương pháp lập trình mô tả.
     Xác định tất cả các điều khiển và cửa sổ của ứng dụng được thử dưới dạng các đối tượng và xác định tất cả thuộc tính và thuộc tính của mỗi đối tượng
    Nguồn tài liệu tham khảo:
    http://www.guru99.com/automation-testing.html
    https://www.tutorialspoint.com/software_testing_dictionary/automated_software_testing.htm