Sự phát triển của phần mềm liên tục thay đổi trong những năm gần đây và cả các công cụ và công nghệ hỗ trợ cũng thế. Những thay đổi như thế nhằm cải thiện hiệu suất, chất lượng, sự hài lòng của khách hàng, để giải quyết vấn đề thời gian chuyển giao (deliver) thấp nhất, và để deliver thành công sản phẩm và dịch vụ. Việc kiểm thử (testing) phần mềm hiển nhiên là đóng vai trò quan trọng trong việc đạt được những mục tiêu này.
Các số liệu từ World Quality Report 2017-2018 bởi Capgemini, Sogeti và Micro Focus chỉ ra một vài xu hướng thú vị trong chất lượng phần mềm và testing. Hai trong số ba xu hướng quan trọng chính là việc gia tăng kiểm thử tự động (automation test) và nhân rộng phương pháp Agile và DevOps. Bản báo cáo cho thấy, tất cả các tổ chức cần phải tự động hóa thông minh và phân tích thông minh để tăng tốc thực thi các quyết định nhằm giải quyết tốt hơn những thách thức của việc thử nghiệm các thiết bị, sản phẩm thông minh được tích hợp và thay đổi liên tục. Bản báo cáo cũng gợi ý những nhu cầu của các nền tảng kiểm thử (test frameworks)thông minh có khả năng tự nhận thức và thích ứng để hỗ trợ vòng đời ứng dụng hoàn chỉnh.
Trong lĩnh vực automation test, chắc chắn các công cụ tự động (tool automation) chiếm một vai trò rất quan trọng. Bài viết này sẽ tổng hợp các test automation tool và frameworks hàng đầu có tiềm năng giúp các công tu tự định bị họ tốt nhất để bắt kịp với các xu hướng testing. Danh sách này bao gồm cả các giải pháp automation test mã nguồn mở (open-source) và tính phí (Commercial).
Selenium có thể coi là một trong những open-source automation test framework phổ biến nhất cho các ứng dụng web. Có nguồn gốc từ những năm 2000, trải qua hơn 1 thập kỉ, Selenium đã trở thành sự lựa chọn automation framework dành cho tất cả các tester, đặc biệt là những người có kĩ năng lập trình và scripting cao. Selenium đã trở thành framework cốt lõi cho các công cụ test automation open-source khác như Katalon Studio, Watir, Protractor và Robot Framework.
Selenium hỗ trợ khá nhiều môi trường khác nhau như Window, Mac, Linux và trình duyệt như Chrome, Firefox, IE. Bản script của nó có thể được viết bởi nhiều ngôn ngữ lập trình như Java, Groovy, Python, C#, PHP, Ruby và Pearl
Trong khi các tester có thể linh hoạt với Selenium và họ có thể viết các đoạn test scrpit khó và nâng cao để đáp ứng tất cả các mức độ phức tạp, Selenium cũng yêu cầu phải có kĩ năng code tốt và nỗ lực để build các automation framework và thư viện dành cho các nhu cầu khác nhau.
Katalon Studio là một giải pháp automation test cho các ứng dụng web, mobile và web services. Được xây dựng dựa trên các framework Selenium và Appium, Katalon Studio có lợi thế của những giải pháp cho việc integrated automation test (kiểm thử tự động tích hợp).
Công cụ này hỗ trợ nhiều mức độ testing khác nhau. Những người không phải lập trình viên sẽ cảm thấy dễ dàng để bắt đầu 1 project automation test (như sử dụng Object Spy để record test script) trong khi các lập trình viên và automation tester có thể tiết kiệm thời gian khỏi việc xây dựng các thư viện mới và bảo trì script của họ.
Katalon Studio có thể tích hợp vào quá trình CD/CI và hoạt động tốt với các ông cụ nổi tiếng trong quy trình QA bao gồm qTest, JIRA, Jenkins và Git. Một tính năng rất hay của Katalon chính là Katalon Analytics cung cấp cho user một góc nhìn tổng quan về các report thực thi test thông qua dashboard bao gồm dữ liệu, bảng biểu và sơ đồ.
Unified Functional Testing (UFT) là một công cụ testing có tính phí nổi tiếng để functional testing (kiểm thử các chức năng). Nó cung cấp một tính năng toàn diện cho API, web service và GUI testing của desktop, web và các ứng dụng mobile thông qua nhiều platform. Công cụ có tính năng nhận diện object dựa trên hình ảnh, tái sử dụng các test component và automated documentaion cao cấp.
UFT sử dụng Visual Basic Scripting Edition để đăng kí quy trình test và quản lí object. UFT được tích hợp với Mercury Business Processes Teesting và Mercury Quality Center. Công cụ hỗ trợ CI thông qua tích hợp vs CI tools như Jenkins.
Watir là một công cụ testing open-source cho web automation testing dựa trên thư viện Ruby. Watir hỗ trợ các trình duyệt bao gồm Firefox, opera, headless Broswer, và IE. Nó cũng hỗ trợ testing theo hướng dữ liệu (data-driven) và tích hợp với các công cụ BBD như Rspec, Cucumber, Test/Unit
IBM RFT là một data-driven platform testing cho các functional và regression(hồi quy) testing. Nó hỗ trợ nhiều ứng dụng như .NET, Java. SAP, Flex, và Ajax. RFT sử dụng Visual Basic .Net và Java là ngôn ngữ scripting. RFT có một tính năng độc đáo đó là Storyboard testing, trong đó, các hành vi của user trên AUT đều được ghi lại và hiển thị trên một storyboard thông qua application screenshot.
Một tính năng thú vị khác của RFT là nó tích hợp với IBM Jazz application lifecycle management system như IBM Rational Team Concert và Rational Quality Manager.
TestComplete bởi SmartBear là một công cụ testing thương mại quyền năng cho web, mobile và destop. TestComplete hỗ trpowj nhiều ngôn ngữ scripting như Javascript, VBScript, Python và C++. Giống với Katalon Studio, tester hoafnt oàn có thể thực hiện theo hướng key word hoặc dât với TestComplete. Công cụ cũng hôc trợ các tính năng ghi lại dễ sử dụng và playback
Giống như UTF, khả năng nhận diện object GUI của TestComplete có thể tự động detect và update các UI Objects giúp giảm nổ lực duy trì test script khi AUT thay dổi. Nó cũng tích hợp vs Jenkins trong quy trình CI.
Một công cụ test tự động dựa trên hình ảnh cho phép tester tương tác với AUT giống cách người dùng cuối (end user) làm. Testplant eggPlant hoàn toàn khác so với các công cụ test truyền thống khác trong cách tiếp cận của nó: mô hình hóa quan điểm của người dùng thay vì chế độ xem tập lệnh thử nghiệm thường được tester nhìn thấy. Điều này cho phép tester có ít kĩ năng lập trình hơn có thể học và ứng dụng test automation một cách trực quan. Công cụ hỗ trợ nhiều plastform như web, mobile, và POS System. Nó cũng hỗ trợ lab management và tích hợp CI.
Tricentis Tosca là một công cụ automation test dựa trên model (model-based) cung cấp khá nhiều tính năng để liên tục testing như dashboard, analytics, cả tích hợp để hỗ trợ phương pháp Agile và DevOps.
Tricentis Tosca giúp user tối ưu hóa khả năng tái sử dụng của test asests. Giống như nhiều công cụ auomation test khác, nó hỗ trợ nhiều công nghệ và ứng dụng như web, mobile, và API. Tricentis Tosca cũng có tính năng để quản lí tích hợp, phân tích rủi ro và thực thi phân phối.
Ranorex là một trong những công cụ automation test khá toàn diện cho web, mobile và desktop. Công cụ này có các tính năng nâng cao để nhận dạng GUI, các tập lệnh thử nghiệm tái sử dụng và ghi / phát lại. Tạo ra các dòng test không code cũng là một tính năng rất hữu dụng cho phép các automation tester mới có thể học và áp dụng automation test vào dự án của họ.
Công cụ này cho phép tích hợp Selenium dể test web, Tester có thể phân phối các lệnh thực thi test của họ thông qua nhiều platform và trình duyệt khác nhau sư dụng selenium grid. Ranorex cho phép một model giá rẻ cho doanh nghiệp.
Robot Framework là một framework tự động open source thực thi các phương pháp theo hướng keyword để phát triển thử nghiệm và chấp nhận thử nghiệm chấp nhận (ATDD). Robot Framework cung cấp các khuôn khổ cho các nhu cầu tự động hóa thử nghiệm khác nhau. Nhưng khả năng thử nghiệm của nó có thể được mở rộng hơn nữa bằng cách triển khai các thư viện thử nghiệm bổ sung bằng cách sử dụng Python và Java. Selenium WebDriver là một thư viện bên ngoài phổ biến được sử dụng trong Robot Framework.
Các test engineer có thể sử dụng Robot Framework như một khung công tác tự động hóa cho việc kiểm tra web không chỉ mà còn cho tự động kiểm tra Android và iOS. Robot Framework có thể dễ dàng tìm hiểu cho những người thử nghiệm đã quen thuộc với thử nghiệm theo từ khóa.
----------------------
Như chúng ta có thể thấy, mỗi automation tool này có các tính năng độc đáo để cung cấp trong việc giải quyết những thách thức ngày càng tăng về tự động hóa phần mềm trong những năm tới. Hầu hết cung cấp khả năng để kiểm tra và tích hợp liên tục, quản lý kiểm tra và báo cáo. Tất cả đều hỗ trợ nhu cầu tự động hóa ngày càng tăng cho thử nghiệm Web và Di động. Tuy nhiên, việc kiểm tra thông minh và phân tích thông minh cho các môi trường thích ứng và không đồng nhất vẫn là thứ cần thiết cho các automation tool
Bạn có thể tham khảo về cách chọn automation testing tool thích hợp, vui lòng xem thêm tại bài viết: So sánh các công cụ testing trên Dzone
References:
Via Medium