Test automation framework là một bộ quy tắc và công cụ quan trọng được sử dụng để xây dựng các test case. Các bộ khung này được thiết kế nhằm giúp các chức năng kỹ thuật hoạt động hiệu quả hơn. Hãy cùng điểm danh các loại test automation framework hoạt động hiệu quả và được nhiều người sử dụng nhất hiện nay qua bài viết sau của ITviec.

Đọc bài viết này để tìm hiểu ngay:

  • Test automation framework là gì
  • Phân loại các test automation framework: Đặc điểm, Cách áp dụng của từng loại

Test automation framework là gì?

Test automation framework (Khung tự động hóa kiểm thử) là một bộ quy tắc và các công cụ tương ứng được sử dụng để xây dựng các trường hợp kiểm thử (test case). Các khung tự động hóa kiểm thử cung cấp kiến trúc riêng cho từng dự án, khắc phục được khuyết điểm thường gặp trên hầu hết các nền tảng của công cụ kiểm thử.

Một test automation framework bao gồm các tiêu chuẩn viết code, giúp giảm thiểu việc viết code thủ công. Chúng cũng bao gồm các kỹ thuật và lợi thế để xử lý dữ liệu kiểm thử, bộ lưu trữ có thể truy cập được chứa kết quả dữ liệu kiểm thử thu được, kho lưu trữ đối tượng (object repository) và thông tin bổ sung có thể được sử dụng để thực thi test một cách thích hợp và hiệu quả.

Xem thêm: Automation Test là gì? Khi nào nên sử dụng Automation Test?

Phân loại test automation framework phổ biến

Có 6 loại test automation framework phổ biến, mỗi loại có kiến ​​trúc riêng và những lợi ích cũng như bất lợi khác nhau. Khi xây dựng kế hoạch kiểm thử, điều quan trọng là chọn framework phù hợp với bạn:

  1. Linear Automation Framework
  2. Modular Based Testing Framework
  3. Library Architecture Testing Framework
  4. Data-Driven Framework
  5. Keyword-Driven Framework
  6. Hybrid Testing Framework

Linear Automation Framework

test automation framework - Linear Automation Framework - itviec blog

Với Linear Automation Framework, còn được gọi là framework “Ghi và Phát lại”, Tester không cần viết code để tạo chức năng và tất cả các bước được viết theo thứ tự tuần tự. Trong quá trình này, Tester ghi lại từng bước như điều hướng, thông tin đầu vào của người dùng hoặc checkpoint, sau đó tự động phát lại kịch bản để tiến hành kiểm thử.

Ưu điểm của Linear Automation Framework:

  • Không cần phải viết code tùy chỉnh nên không cần phải có chuyên môn về tự động hóa kiểm thử.
  • Đây là một trong những cách nhanh nhất để tạo kịch bản kiểm thử vì chúng có thể được ghi lại dễ dàng trong khoảng thời gian tối thiểu.
  • Quy trình kiểm thử dễ hiểu hơn đối với bất kỳ bên nào tham gia kiểm thử vì các kịch bản được trình bày theo cách tuần tự.
  • Đây cũng là cách dễ nhất để bắt đầu kiểm thử tự động, đặc biệt là với một công cụ mới. Hầu hết các công cụ kiểm thử tự động ngày nay sẽ cung cấp tính năng ghi và phát lại, vì vậy bạn cũng không cần phải quá lúng túng khi sử dụng framework này.

Nhược điểm:

  • Các kịch bản được phát triển bằng framework này không thể sử dụng lại được. Dữ liệu được hard code (cố định) vào kịch bản kiểm thử, nghĩa là các trường hợp kiểm thử không thể chạy lại với nhiều bộ dữ liệu và thiếu khả năng tái sử dụng do các tập lệnh được tạo tự động nên sẽ cần phải sửa đổi nếu dữ liệu bị thay đổi.
  • Mã hóa khó dữ liệu không cho phép người dùng chạy với nhiều tập dữ liệu.
  • Việc bảo trì khá rắc rối vì mọi thay đổi đối với ứng dụng sẽ yêu cầu phải làm lại rất nhiều. Framework này không có khả năng mở rộng khi phạm vi kiểm thử mở rộng.

Modular Based Testing Framework

Việc triển khai framework này sẽ yêu cầu Tester chia ứng dụng đang được kiểm thử thành các đơn vị, chức năng hoặc phần riêng biệt, mỗi phần sẽ được kiểm thử riêng biệt. Sau khi chia ứng dụng thành các mô-đun riêng lẻ, kịch bản kiểm thử sẽ được tạo cho từng phần và sau đó được kết hợp để xây dựng các bài kiểm thử lớn hơn theo kiểu phân cấp. Việc tránh sử dụng các script phụ thuộc nhau là một yếu tố quan trọng đối với sự ổn định và khả năng bảo trì của framework này. Những bộ kiểm thử nghiệm lớn hơn sẽ đại diện cho nhiều trường hợp kiểm thử khác nhau.

Chiến lược quan trọng trong việc sử dụng Modular Based Testing Framework là xây dựng một layer trừu tượng để mọi thay đổi được thực hiện trong các phần riêng lẻ sẽ không ảnh hưởng đến mô-đun tổng thể.

test automation framework - Modular Based Testing Framework - itviec blog

Ưu điểm của Modular Based Testing Framework:

  • Nếu có bất kỳ thay đổi nào được thực hiện đối với ứng dụng, thì chỉ cần sửa mô-đun và kịch bản kiểm thử riêng lẻ được liên kết với nó, nghĩa là bạn sẽ không phải sửa đổi phần còn lại của ứng dụng và có thể giữ nguyên nó. Vì vậy, có khả năng mở rộng tốt hơn và dễ bảo trì hơn,
  • Có thể viết kịch bản kiểm thử một cách độc lập.
  • Những thay đổi trong một mô-đun không có hoặc ít tác động đến các mô-đun khác.
  • Việc tạo các trường hợp kiểm thử tốn ít công sức hơn vì các kịch bản kiểm thử cho các mô-đun khác nhau có thể được sử dụng lại.

Nhược điểm:

  • Dữ liệu vẫn được hard code vào kịch bản kiểm thử vì các kiểm thử được thực hiện riêng biệt, do đó bạn không thể sử dụng nhiều bộ dữ liệu.
  • Mất nhiều thời gian hơn để phân tích các trường hợp thử nghiệm và xác định các luồng có thể tái sử dụng.
  • Khi có sự thay đổi về test data thì các script cũng phải thay đổi tương ứng, hoặc là bạn phải tạo mới một test script riêng biệt khác để đáp ứng sự thay đổi đó.
  • Kiến thức lập trình là cần thiết để thiết lập framework.

Library Architecture Testing Framework

test automation framework - Library Architecture Testing Framework - itviec blog

Library Architecture Testing Framework là framework dựa trên framework mô-đun nhưng có một số lợi ích bổ sung. Thay vì chia ứng dụng thành các kịch bản khác nhau cần chạy, các tác vụ tương tự trong kịch bản sẽ được xác định và sau đó được nhóm theo chức năng, do đó ứng dụng cuối cùng được chia nhỏ theo các mục tiêu chung.

Các chức năng này được lưu giữ trong thư viện, các kịch bản kiểm thử sử dụng lại các thư viện này để tạo các trường hợp kiểm thử mới.

Ưu điểm của Library Architecture Testing Framework:

  • Tương tự như framework mô-đun, việc sử dụng kiến ​​trúc này sẽ dẫn đến mức độ mô-đun hóa cao, giúp việc bảo trì các bài kiểm thử và khả năng mở rộng dễ dàng hơn và tiết kiệm chi phí hơn.
  • Framework này có mức độ tái sử dụng cao hơn vì có một thư viện với các hàm phổ biến có thể được sử dụng bởi nhiều kịch bản kiểm thử. Thay vì chia ứng dụng với các module và các test script tương ứng, thì ở đây ta sẽ thực hiện tách các test script của các chức năng dùng chung vào trong một thư viện chung, và có thể gọi đến bất cứ khi nào cần dùng, mà không phải làm đi làm lại cùng một script giống hệt nhau. Việc này giúp cho code không bị dài và dư thừa, và giảm nỗ lực thực hiện xây dựng script.

Nhược điểm:

  • Dữ liệu kiểm thử vẫn được hard code vào kịch bản. Do đó, bất kỳ thay đổi nào đối với dữ liệu sẽ yêu cầu thay đổi các kịch bản. Cụ thể khi có sự thay đổi về test data thì các script cũng phải thay đổi tương ứng, hoặc là bạn phải tạo mới một test script riêng biệt khác để đáp ứng sự thay đổi đó.
  • Cần có chuyên môn kỹ thuật để viết và phân tích các chức năng chung trong kịch bản kiểm thử.
  • Tốn nhiều thời gian hơn để phát triển kịch bản kiểm thử.

Data-Driven Framework

test automation framework - Data-Driven Framework - itviec blog

Việc sử dụng Data-Driven Framework sẽ tách dữ liệu kiểm thử khỏi kịch bản logic, nghĩa là Tester có thể lưu trữ dữ liệu bên ngoài. Nếu Tester cần kiểm thử cùng một tính năng hoặc chức năng của một ứng dụng nhiều lần với các bộ dữ liệu khác nhau, điều quan trọng là dữ liệu kiểm thử không được hard code trong chính kịch bản, điều này xảy ra với khung thử nghiệm dựa trên Linear hoặc Module.

Việc thiết lập Data-Driven Framework sẽ cho phép Tester lưu trữ và chuyển các tham số đầu vào/đầu ra đến kịch bản kiểm thử từ nguồn dữ liệu bên ngoài, chẳng hạn như Bảng tính Excel, Tệp văn bản, tệp CSV, Bảng SQL hoặc kho lưu trữ ODBC.

Các kịch bản kiểm thử được kết nối với nguồn dữ liệu bên ngoài và được yêu cầu đọc và điền dữ liệu khi cần.

Ưu điểm của Data-Driven Framework:

  • Các thử nghiệm có thể được thực hiện với nhiều bộ dữ liệu.
  • Nhiều kịch bản có thể được kiểm tra nhanh chóng bằng cách thay đổi dữ liệu, từ đó giảm số lượng kịch bản cần thiết.
  • Có thể tránh được dữ liệu mã hóa cứng nên mọi thay đổi đối với kịch bản kiểm thử đều không ảnh hưởng đến dữ liệu đang được sử dụng và ngược lại.
  • Bạn sẽ tiết kiệm thời gian bằng cách thực hiện nhiều bài kiểm tra nhanh hơn.

Nhược điểm:

  • Yêu cầu Tester có kinh nghiệm cao, thành thạo nhiều ngôn ngữ lập trình khác nhau để sử dụng đúng thiết kế framework này. Họ sẽ cần xác định và định dạng các nguồn dữ liệu bên ngoài cũng như viết code (tạo hàm) để kết nối các test với các nguồn dữ liệu bên ngoài một cách liền mạch.
  • Mất nhiều thời gian để thiết lập Data-Driven Framework.

Keyword-Driven Framework

test automation framework - Keyword-Driven Framework - itviec blog

Trong Keyword-Driven Framework, mỗi chức năng của ứng dụng kiểm thử được trình bày trong một bảng với một loạt hướng dẫn theo thứ tự liên tiếp cho mỗi test cần chạy. Hoạt động tương tự như Data-Driven Framework, dữ liệu kiểm thử và logic tập lệnh được tách riêng trong Keyword-Driven Framework, nhưng cách tiếp cận này tiến thêm một bước.

Với phương pháp này, từ khóa cũng được lưu trữ trong bảng dữ liệu bên ngoài, khiến chúng độc lập với công cụ kiểm thử tự động đang được sử dụng để thực hiện kiểm thử. Từ khóa là một phần của kịch bản thể hiện các hành động khác nhau đang được thực hiện để kiểm thử GUI của ứng dụng. Chúng có thể được gắn nhãn đơn giản là ‘click’ hoặc ‘login’ hoặc với các nhãn phức tạp như ‘clicklink’ hoặc ‘verifylink’.

Trong bảng, các từ khóa được lưu trữ theo kiểu từng bước với một đối tượng được liên kết hoặc một phần của giao diện người dùng mà hành động đang được thực hiện trên đó. Quan trọng là cần có một kho lưu trữ đối tượng dùng chung để ánh xạ các đối tượng tới các hành động liên quan của chúng.

Ví dụ một bảng Từ khóa:

Số thứ tự bước Mô tả Từ khóa Đối tượng Hành động
Bước 1 Nhấp chuột vào đường dẫn người dùng ở trang chủ clicklink Nút Đăng nhập
Bước 2 Nhập tên người dùng inputdata Tên Đăng nhập
Bước 3 Nhập mật khẩu inputdata Mật khẩu Đăng nhập
Bước 4 Xác minh thông tin đăng nhập của người dùng verifylogin
Bước 5 Đăng nhập vào ứng dụng login Nút Nhập

Khi bảng đã được thiết lập, tất cả những gì Tester phải làm là viết code để “kích thích” hành động cần thiết dựa trên các từ khóa. Khi chạy kiểm thử, dữ liệu kiểm thử sẽ được đọc và trỏ tới từ khóa tương ứng, sau đó thực thi kịch bản liên quan.

Ưu điểm của Keyword-Driven Framework:

  • Chỉ cần kiến thức scripting cơ bản.
  • Một từ khóa có thể được sử dụng trên nhiều kịch bản kiểm thử, do đó code có thể được sử dụng lại.
  • Mặc dù ứng dụng thay đổi, các tập lệnh kiểm tra không thay đổi.
  • Tập lệnh thử nghiệm hoạt động độc lập với ứng dụng đang thử nghiệm với các sửa đổi cơ bản.
  • Không phụ thuộc vào các công cụ kiểm tra.
  • Các kịch bản kiểm thử có thể được xây dựng độc lập với ứng dụng đang được kiểm thử.

Nhược điểm:

  • Chi phí ban đầu để thiết lập framework này cao do nó tốn thời gian và phức tạp. Các từ khóa cần được xác định và các kho/thư viện đối tượng cần được thiết lập.
  • Tester cần có kỹ năng kiểm thử tự động hóa tốt.
  • Từ khóa có thể khó duy trì khi mở rộng quy mô hoạt động kiểm thử. Bạn sẽ cần tiếp tục xây dựng các kho lưu trữ và bảng từ khóa.

Hybrid Testing Framework

test automation framework - Hybrid Testing Framework - itviec blog

Giống như hầu hết các quy trình kiểm thử hiện nay, các framework kiểm thử tự động đã bắt đầu được tích hợp và chồng chéo với nhau. Đúng như tên gọi, Hybrid Testing Framework là sự kết hợp với nhau từ bất kỳ framework nào được đề cập trước đó được thiết lập để tận dụng ưu điểm và giảm nhược điểm lẫn nhau và phát huy các ưu điểm của các framework mà nó kết hợp sử dụng.

Ưu điểm của Hybrid Testing Framework:

  • Nếu như sự cân bằng giữa các framework được kết hợp được đánh giá và thực thi cẩn thận thì nó lại có một sự linh hoạt rất cao đối với việc nâng cấp và bảo trì project.

Nhược điểm Hybrid Testing Framework:

  • Đối với Hybrid thì các công việc ban đầu có thể phức tạp hơn đối với các hướng tiếp cận là các framework phía trên.

Các câu hỏi về test automation framework thường gặp

Vì sao test automation framework quan trọng?

Test automation framework mang đến nhiều tiện ích nổi bật, giúp tối ưu hoá quá trình kiểm thử như:

  • Tính tổ chức: Lưu trữ các kịch bản test trong một vị trí duy nhất.
  • Tính bảo trì: Các framework tự động hỗ trợ việc bảo trì kiểm thử một cách mượt mà. Việc cập nhật test khi có những thay đổi code diễn ra dễ dàng và nhanh chóng, với cấu trúc sẵn có.
  • Khả năng tái sử dụng: Một framework tự động tăng cường đáng kể khả năng tái sử dụng bằng cách tạo ra các test script có thể sử dụng trong nhiều chức năng phần mềm khác nhau.
  • Khả năng mở rộng: Các tình huống và yêu cầu thay đổi liên tục đòi hỏi một số test phải được mở rộng và giảm xuống. Một framework kiểm thử tự động giảm thiểu công việc để mở rộng khả năng kiểm thử cho nhiều loại test, bao gồm cả kiểm thử tải (load testing), kiểm thử chức năng (functional testing) và kiểm thử đơn vị (unit testing).
  • Bên cạnh đó, nó còn cho phép thực hiện các quy trình kiểm thử phức tạp, loại bỏ các lỗi kiểm thử thủ công có thể xảy ra và tạo ra các kết quả nhất quán, đáng tin cậy.

Làm thế nào để chọn test automation framework hiệu quả?

Để chọn framework tự động hóa kiểm thử phù hợp, bạn cần xem xét các yêu cầu của dự án, nhân sự, tùy chọn ngôn ngữ lập trình và sự hỗ trợ cho các công cụ và công nghệ kiểm thử mà bạn dự định sử dụng.

Ví dụ: Nếu Tester đã là một Developer kinh nghiệm thì việc sử dụng Selenium hoặc Appium là lựa chọn tốt vì chúng cho phép bạn xây dựng và mở rộng quy mô ngay từ đầu.

Tuy nhiên, nếu Tester chủ yếu là manual tester và bạn cần tìm một giải pháp low-code (không cần code quá nhiều) nhưng cũng có thể phát triển và mở rộng quy mô, thì các framework có sẵn như Katalon Platform có thể là một giải pháp phù hợp.

Các yếu tố tạo nên một khung tự động hóa kiểm thử tốt là gì?

Một test automation framework tốt có thể được đánh giá qua các yếu tố như tính di động, khả năng mở rộng, khả năng sử dụng, khả năng tương thích với nhiều nền tảng/thiết bị/hệ điều hành khác nhau,…

Tổng kết test automation framework

Test automation framework là một trong những thành phần quan trọng không thể thiếu góp phần làm nên thành công của các dự án kiểm thử. Việc nắm bắt và lựa chọn các framework phù hợp sẽ là chìa khóa giúp tối ưu hiệu quả của kiểm thử. Hãy cân nhắc những đặc điểm, yêu cầu của từng dự án cụ thể để chọn ra test automation framework thích hợp.