TESTING FUNDAMENTALS
TYPES OF TESTING
TESTCASE DEVELOPMENT
TESTING TECHNIQUES
TEST MANAGEMENT & CONTROL
DEFECTS
AGILE
TESTING DIFFERENT DOMAINS
WHITEBOX TESTING
PERFORMANCE TESTING
ADVANCE TESTING TOPICS
FAQ
TESTING TYPES - MEGA LIST
TOOLS
CHECK!
CERTIFICATION
LIVE TESTING PROJECT
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Kiểm thử tự động

Kiểm thử tự động (Automation testing) là gì? Nên được áp dụng khi nào? Lựa chọn công cụ kiểm thử tự động như thể nào để đạt được kết quả tốt nhất? Bài viết này sẽ giải đáp những câu hỏi đó.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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

Kiểm thử tự động (Automation testing) là khi tester viết kịch bản và sử dụng những công cụ hỗ trợ để kiểm thử phần mềm. Quá trình này là chuỗi tự động hóa quá trình kiểm thử thủ công. Kiểm thử tự động được sử dụng để chạy lại các kịch bản kiểm thử đã được kiểm thử thủ công, nhanh chóng, lặp lại nhiều lần.

Ngoài kiểm thử hồi quy, kiểm thử tự động cũng được sử dụng để kiểm tra ứng dụng từ load, performance, và stress. Nó tăng thêm độ bao phủ, cải thiện độ chính xác ,tiết kiệm thời gian và tiền bạc so với kiểm thử thủ công

2. Tại sao cần kiểm thử tự động?

Kiểm thử tự động rất quan trọng vì những lý do sau:

Bài viết này được đăng tại [free tuts .net]

  • Kiểm thử thủ công tất cả các kịch bản nhiều lần sẽ gây tốn thời gian và tiền bạc
  • Rất khó để kiểm thử thủ công các trang web hay phần mềm đa ngôn ngữ
  • Kiểm thử tự động hóa không cần sự can thiệp của con người. Có thể chạy kiểm thử tự động qua đêm mà không cần giám sát.
  • Kiểm thử tự động hóa làm tăng tốc độ thực hiện kiểm thử
  • Kiểm thử tự động hóa giúp tăng phạm vi kiểm thử
  • Kiểm thử thủ công có thể trở nên nhàm chán, do đó dễ bỏ sót lỗi.

3. Tự động hóa cái gì?

Không phải tự động hóa lúc nào cũng khả thi với mọi phần mềm. Các lĩnh vực như người dùng có thể thực hiện giao dịch cũng như form đăng nhập hoặc form đăng ký, bất kỳ lĩnh vưc nào có số lượng người dùng lớn có thể truy cập đồng thời vào phần mềm thì nên được tự động hóa.

Hơn nữa, tất cả các mục GUI (Giao diện người dùng), kết nối với CSDL, xác thực các trường,... có thể được kiểm thử hiệu quả bằng cách tự động hóa quá trình kiểm thử thủ công.

4. Tự động hóa khi nào?

Kiểm thử tự động nên được sử dụng theo những phương diện sau:

  • Các dự án lớn và trọng điểm.
  • Những dự án yêu cầu kiểm thử thường xuyên trong cùng một lĩnh vực.
  • Những yêu cầu không thường xuyên thay đổi.
  • Truy cập ứng dụng để kiểm tra tải và hiệu suất với nhiều người dùng ảo.
  • Kiểm tra tính ổn định của phần mềm trên quan điểm của kiểm thử thủ công.
  • Tính khả dụng của thời gian

Những test cases sau đây có thể kiểm thử để tự động hóa:

  • Có thể áp dụng kiểm thử tự động hóa nếu tăng ROI (Return of Investment - tỷ lệ lợi nhuận thu được so với chi phí đầu tư)
  • Rủi ro cao - Các test cases quan trọng
  • Các test cases được thực hiện nhiều lần
  • Các test cases khó thực hiện thủ công
  • Các test cases tốn thời gian

Những test cases sau đây không phù hợp với tự động hóa:

  • Các test cases được thiết kế mới và chưa được thực hiện thủ công ít nhất một lần
  • Các test cases có các yêu cầu thường xuyên thay đổi
  • Các test cases được thực hiện trên cơ sở ad-hoc.

5. Tự động hóa như thế nào?

Tự động hóa được thực hiện bằng cách sử dụng một ngôn ngữ máy tính được hỗ trợ như VB và ứng dụng phần mềm tự động. Có rất nhiều công cụ có sẵn có thể được sử dụng để viết những đoạn kịch bản tự động. Trước khi nhắc đến các công cụ đó, hãy xác định kế hoạch để tự động hóa quá trình kiểm thử:

  • Xác định các lĩnh vực trong phần mềm để tự động hoá.
  • Lựa chọn những công cụ thích hợp cho kiểm thử tự động hóa.
  • Viết mã tự động hóa (test scripts).
  • Phát triển các bộ kiểm tra (test suits).
  • Thực thi các đoạn mã.
  • Tạo các báo cáo kết quả kiểm thu.
  • Phát hiện các lỗi tiềm ẩn hoặc vấn đề hiệu suất.

6. Quy trình kiểm thử tự động

Các bước sau được thực hiện trong Quy trình kiểm thử tự động hóa:

automation testing 1 png

Lựa chọn công cụ kiểm thử

Lựa chọn Công cụ kiểm thử phần lớn phụ thuộc vào công nghệ mà Ứng dụng Kiểm thử được xây dựng. Chẳng hạn, QTP không hỗ trợ Informatica. Vì vậy, QTP không thể được sử dụng để kiểm thử các ứng dụng của Informatica.

Xác định phạm vi tự động

Phạm vi tự động là phạm vi Ứng dụng được Kiểm thử tự động hóa. Các điểm sau giúp xác định phạm vi tự động:

  • Các tính năng quan trọng
  • Kịch bản có lượng dữ liệu lớn
  • Các chức năng chung trên ứng dụng
  • Tính khả thi về mặt kỹ thuật
  • Mức độ các thành phần được sử dụng lại
  • Độ phức tạp của test cases
  • Khả năng sử dụng các test cases tương tự để kiểm thử trên nhiều trình duyệt

Lập kế hoạch, thiết kế và phát triển

Tester tạo một chiến lược & kế hoạch kiểm thử tự động, chi tiết như sau:

  • Công cụ kiểm thử tự động được chọn
  • Thiết kế Framework và các tính năng của Framework
  • Các mục trong phạm vi và ngoài phạm vi tự động hóa
  • Chuẩn bị kiểm thử tự động hóa
  • Lịch trình và mốc thời gian thực thi kịch bản kiểm thử
  • Bàn giao sản phẩm được kiểm thử tự động

Thực thi kiểm thử

Kịch bản kiểm thử tự động hóa được thực thi trong giai đoạn này. Các Scripts cần dữ liệu kiểm thử đầu vào trước khi được thiết lập để chạy. Sau khi thực hiện sẽ trả về các báo cáo kiểm thử chi tiết.

Việc thực thi có thể được thực hiện bằng cách sử dụng công cụ tự động trực tiếp hoặc thông qua công cụ Quản lý kiểm thử sẽ gọi công cụ tự động hóa.

Bảo trì

Khi các chức năng mới được thêm vào Hệ thống được kiểm thử với các chu kỳ liên tiếp, Scripts tự động hóa cũng cần được thêm, xem xét và bảo trì cho mỗi chu kỳ phát hành. Bảo trì trở nên cần thiết để cải thiện hiệu quả của Scripts trong kiểm thử tự động hóa.

7. Framework tự động hóa

Một Framework tự động sẽ giúp:

  • Duy trì tính nhất quán của kiểm thử
  • Cải thiện cấu trúc kiểm thử
  • Sử dụng code tối thiểu
  • Ít bảo trì code
  • Cải thiện khả năng sử dụng lại
  • Tester không có kỹ thuật có thể tham gia
  • Thời gian training sử dụng công cụ có thể được giảm

Có bốn loại frameworks được sử dụng trong kiểm thử tự động hóa:

  1. Data Driven Automation Framework
  2. Keyword Driven Automation Framework
  3. Modular Automation Framework
  4. Hybrid Automation Framework

8. Sử dụng công cụ tự động hóa để đạt hiệu quả tốt nhất

Để có được ROI (tỷ lệ lợi nhuận thu được so với chi phí đầu tư) tối đa, hãy tuân thủ các điều sau:

  • Phạm vi của kiểm thử tự động hóa cần được xác định chi tiết trước khi bắt đầu dự án.
  • Chọn công cụ kiểm thử tự động hóa phù hợp: Không nên chọn công cụ dựa trên mức độ phổ biến của công cụ đó, mà phải phù hợp với yêu cầu tự động hóa.
  • Chọn một framework thích hợp
  • Các tiêu chuẩn về kịch bản phải được tuân theo trong khi viết các kịch bản cho kiểm thử tự động hóa. Một số trong số đó là:
  1. Tạo scripts thống nhất, nhận xét và thụt đầu dòng đoạn code
  2. Xử lý đầy đủ những trường hợp ngoại lệ - Cách xử lý lỗi đối với lỗi hệ thống hoặc hành vi không mong muốn trong ứng dụng.
  3. Thông báo do người dùng xác định phải được mã hóa hoặc tiêu chuẩn hóa để ghi nhật ký lỗi để tester hiểu.
  • Đo lường số liệu - Thành công của kiểm thử tự động hóa không thể được xác định bằng cách so sánh effort của kiểm thử thủ công với effort của kiểm thử tự động, mà có thể nắm bắt dựa vào các số liệu sau.
  1. Phần trăm lỗi được tìm thấy
  2. Thời gian cần thiết để kiểm thử tự động hóa cho mỗi chu kỳ phát hành
  3. Thời gian tối thiểu được thực hiện để phát hành
  4. Sự hài lòng của khách hàng
  5. Nâng cao năng suất

9. Lợi ích của kiểm thử tự động

Sau đây là những lợi ích của kiểm thử tự động:

  • Nhanh hơn 70% so với kiểm thử thủ công
  • Phạm vi kiểm thử rộng hơn
  • Kết quả đáng tin cậy
  • Đảm bảo tính nhất quán
  • Tiết kiệm thời gian và chi phí
  • Cải thiện độ chính xác
  • Không cần sự can thiệp của con người trong khi thực hiện
  • Tăng hiệu quả
  • Tốc độ tốt hơn trong việc thực hiện kiểm thử thủ công
  • Kịch bản kiểm thử có thể sử dụng lại
  • Có thể Kiểm thử thường xuyên và kỹ lưỡng
  • Nhiều chu kỳ thực hiện có thể đạt được thông qua tự động hóa
  • Sớm được bàn giao sản phẩm

10. Các loại kiểm thử phần mềm có thể được sử dụng trong kiểm thử tự động hóa

  • Smoke Testing
  • Unit Testing
  • Integration Testing
  • Functional Testing
  • Keyword Testing
  • Regression Testing
  • Data Driven Testing
  • Black Box Testing

11. Làm thế nào để lựa chọn một công cụ kiểm thử tự động hóa?

Chọn đúng công cụ là một nhiệm vụ khó khăn. Tiêu chí sau đây sẽ giúp bạn chọn công cụ tốt nhất đáp ứng được yêu cầu:

  • Môi trường có thể hỗ trợ
  • Dễ sử dụng
  • Kiểm thử cơ sở dữ liệu
  • Kiểm thử hình ảnh
  • Kiểm thử phục hồi lỗi
  • Ngôn ngữ kịch bản được sử dụng
  • Hỗ trợ các loại kiểm thử khác nhau - bao gồm functional, test management, mobile, v.v ...
  • Hỗ trợ nhiều Frameworks
  • Dễ dàng gỡ lỗi trong các kịch bản
  • Khả năng xác định đối tượng trong mọi môi trường
  • Báo cáo kiểm thử và kết quả
  • Giảm thiểu chi phí training các công cụ được chọn

Lựa chọn công cụ là một trong những thách thức lớn nhất cần được giải quyết trước khi kiểm thử tự động. Đầu tiên, Xác định các yêu cầu, khám phá các công cụ khác nhau và khả năng của từng công cụ, đặt mong đợi từ mỗi công cụ và tìm kiếm những vấn đề liên quan đến công cụ đó (Proof Of Concept).

12. Công cụ kiểm thử tự động hóa

Có rất nhiều Công cụ Kiểm thử Chức năng (Functional testing) và Hồi quy (Regression Testing) có sẵn trên thị trường. Dưới đây là 7 công cụ tốt nhất được chứng nhận bởi các chuyên gia:

1. Tricentis

Tricentis là nền tảng Kiểm thử tự động số 1 của ngành công nghiệp phần mềm. Tricentis là nhà cung cấp duy nhất đạt được thành tựu với trạng thái là “leader” trong ba báo cáo phân tích hàng đầu.

  • Kiểm thử dựa trên rủi ro
  • Tự động kiểm thử end-to-end không cần kịch bản
  • Hỗ trợ API, BI, Mobile, Cross Browser, RPA và các loại kiểm thử tự động khác
  • Được hỗ trợ kỹ thuật rộng rãi nhất trong ngành công nghiệp phần mềm

Download Tricentis

2. mabl

mabl tự động kiểm thử từ đầu đến cuối mà không cần kịch bản.

  • Easy test automation: Tự động kiểm thử chức năng cho ứng dụng web mà không cần kịch bản
  • Auto-healing tests: Tự động cập nhật kiểm tra khi UI của bạn thay đổi
  • Regression testing: Nhanh chóng xác định các vấn đề về độ trễ, lỗi javascript, khác biệt trực quan, liên kết bị hỏng…

Tìm hiểu thêm về mabl

3. Selenium

Selenium là một công cụ kiểm thử phần mềm được sử dụng để kiểm thử hồi quy. Đây là một công cụ kiểm thử mã nguồn mở cung cấp cơ sở để chạy và ghi lại các kịch bản. Selenium IDE chỉ hỗ trợ trình duyệt web Mozilla Firefox.

  • Cung cấp điều kiện để xuất scripts được ghi bằng các ngôn ngữ khác như Java, Ruby, RSpec, Python, C #, v.v.
  • Có thể được sử dụng với các frameworks như JUnit và TestNG
  • Có thể thực hiện nhiều test scripts cùng một lúc
  • Tự động hoàn tất cho các lệnh Selenium chung
  • Xác định thành phần bằng Id, Name, X-path, v.v.
  • Lưu trữ các test script dưới dạng Ruby Script, HTML và bất kỳ định dạng nào khác
  • Hỗ trợ tập tin selenium user-extend.js
  • Cho phép chèn comments vào giữa script để hiểu rõ hơn và gỡ lỗi nếu có

Download Selenium

4. QTP (MicroF Focus UFT)

QTP được sử dụng rộng rãi để kiểm thử chức năng và hồi quy. Để đơn giản hóa việc kiểm thử từ khi phát triển ứng dụng đến bảo trì, QTP cho phép tester xây dựng các test cases trực tiếp từ ứng dụng.

  • Người dùng không biết kỹ thuật cũng có thể dễ dàng thích nghi và tạo được các test case
  • QTP sửa lỗi nhanh hơn bằng cách ghi các lỗi và mô phỏng cho developer
  • Tham số hóa dễ dàng hơn WinRunner
  • QTP hỗ trợ môi trường phát triển .NET
  • Có thể cải thiện các QTP script hiện có mà không cần có phần mềm

Download QTP

5. Rational Functional Tester

Rational Functional Tester là một công cụ kiểm thử chức năng tự động, hướng đối tượng, có khả năng thực hiện chức năng tự động, hồi quy, kiểm thử data-driven và kiểm thử GUI. Các tính năng chính của công cụ này là

  • Hỗ trợ một loạt các giao thức và ứng dụng như Java, HTML, NET, Windows, SAP, Visual Basic, v.v.
  • Có thể ghi lại và chạy lại các action theo yêu cầu
  • Tích hợp với các công cụ quản lý kiểm soát source như Rational Clear Case và Rational Team Concert
  • Cho phép các developer tạo từ khóa liên quan đến scripts để có thể được sử dụng lại
  • Trình soạn thảo Eclipse Java Developer Toolkit thuận tiện cho nhóm viết kịch bản kiểm thử trong Java với Eclipse.
  • Hỗ trợ kiểm soát những tùy chỉnh thông qua proxy SDK (Java / .Net)

Download Rational Functional Tester

6. Witir

WATIR là một tool kiểm thử mã nguồn mở dùng để kiểm thử hồi quy. Watir chỉ hỗ trợ trình duyệt internet explorer trên windows trong khi Watir webdriver hỗ trợ Chrome, Firefox, IE, Opera, v.v.

  • Hỗ trợ nhiều trình duyệt trên các nền tảng khác nhau
  • Sử dụng đầy đủ tính năng mới của ngôn ngữ kịch bản Ruby
  • Hỗ trợ các ứng dụng web

Download Watir

7. SilkTest

Silk Test được thiết kế để thực hiện kiểm thử chức năng và hồi quy. Đối với ứng dụng về kinh doanh điện tử (e-business), Silk Test là tool kiểm thử chức năng được ưu tiên lựa chọn. Silk Test là sản phẩm của Segue Software, tiếp quản bởi Borland vào năm 2006. Đây là một ngôn ngữ hướng đối tượng giống như C ++, sử dụng khái niệm đối tượng, các lớp và sự kế thừa. Tính năng chính của nó bao gồm:

  • Gồm tất cả các tập tin 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áy chủ hoặc trên máy chủ từ xa (remote).
  • Có thể sử dụng cả phương thức playback và record

Download SilkTest

13. Kết luận

Lựa chọn đúng công cụ kiểm thử tự động, quy trình kiểm thử, nhóm kiểm thử là những công việc quan trọng để kiểm thử tự động thành công. Phương pháp kiểm thử thủ công và kiểm thử tự động luôn không thể tách rời để kiểm thử đạt được kết quả cao nhất.

Cùng chuyên mục:

Giám sát và kiểm soát kiểm thử

Giám sát và kiểm soát kiểm thử

Trong khi nhóm thực hiện các nhiệm vụ được giao, Test Manager cần giám sát…

Tài liệu kiểm thử

Tài liệu kiểm thử

Tài liệu kiểm thử giúp nhóm kiểm thử ước tính effort kiểm thử cần thiết,…

Cách tạo Test Plan

Cách tạo Test Plan

Test Plan là một tài liệu chi tiết mô tả chiến lược kiểm thử, Mục…

Tổ chức nhóm kiểm thử

Tổ chức nhóm kiểm thử

Tổ chức nhóm kiểm thử là một trong những nhiệm vụ phức tạp nhất trong…

Phân tích rủi ro dự án và giải pháp trong quản lý kiểm thử

Phân tích rủi ro dự án và giải pháp trong quản lý kiểm thử

Khi thực hiện dự án, luôn có những rủi ro tiềm ẩn. Để giảm thiểu…

Quy trình quản lý kiểm thử

Quy trình quản lý kiểm thử

Quản lý kiểm thử (Test Management) bao gồm chuỗi nhiều hoạt động. Có hai phần…

Vai trò và Trách nhiệm của Test Manager

Vai trò và Trách nhiệm của Test Manager

Trước khi bắt đầu kiểm thử một dự án, bạn nên biết vai trò của…

Kiểm thử Use Case

Kiểm thử Use Case

Là một tester, bạn đã hiểu rõ về Use Case hay Kiểm thử Use Case…

Kỹ thuật kiểm thử chuyển đổi trạng thái

Kỹ thuật kiểm thử chuyển đổi trạng thái

Chuyển đổi trạng thái (State Transition) trong kiểm thử là gì? Khi nào sử dụng…

Kỹ thuật kiểm thử bảng quyết định

Kỹ thuật kiểm thử bảng quyết định

Bảng quyết định là một trong những kỹ thuật kiểm thử phầm mềm. Vậy Kiểm…

Kỹ thuật Phân tích giá trị biên và phân vùng tương đương

Kỹ thuật Phân tích giá trị biên và phân vùng tương đương

Chúng ta cần sử dụng các kỹ thuật đặc biệt để lựa chọn test cases…

Kỹ thuật kiểm thử phần mềm

Kỹ thuật kiểm thử phần mềm

Kỹ thuật kiểm thử giúp giảm số lượng các test cases được thực hiện trong…

Test Case Template

Test Case Template

Test cases là đơn vị nhỏ nhất trong kế hoạch kểm thử, mô tả các…

Thủ thuật để tạo dữ liệu kiểm thử

Thủ thuật để tạo dữ liệu kiểm thử

Data được sử dụng trong kiểm thử mô tả các điều kiện tiền đề của…

Cách tạo Requirements Traceability Matrix - RTM

Cách tạo Requirements Traceability Matrix - RTM

Requirements Traceability Matrix - RTM là gì? Traceability Test Matrix bao gồm những loại nào?…

Cơ sở kiểm thử - Test basis

Cơ sở kiểm thử - Test basis

Cơ sở kiểm thử - Test Basis là nguồn để tạo ra các test cases.…

Cách viết Test Cases

Cách viết Test Cases

Test Case là tập hợp các hành động được thực thi để xác minh một…

Kịch bản kiểm thử - Test Scenario

Kịch bản kiểm thử - Test Scenario

Test Scenario tuy không còn mới mẻ nhưng không ít người còn mơ hồ về…

Kiểm thử phi chức năng

Kiểm thử phi chức năng

Kiểm thử phi chức năng liên quan đến việc kiểm thử phần mềm từ những…

Kiểm thử hồi quy

Kiểm thử hồi quy

Kiểm thử hồi quy - Regression Testing rất quan trọng, đặc biệt là trong những…

Top