Kiểm thử tự động ứng dụng trí tuệ nhân tạo AI (AI Test Automation)

1. Giới thiệu sơ lược về trí tuệ nhân tạo AI

Bất kỳ ai trong chúng ta đều biết rằng cuộc cách mạng công nghệ 4.0 đang đến với 3 nền tảng kỹ thuật chính là trí tuệ nhân tạo (Artificial Intelligence - AI), thế giới kết nối vạn vật (Internet of Things - IoT) và dữ liệu lớn (BIG DATA).

Trong những năm gần đây, trí tuệ nhân tạo AI mới được nhắc đến nhiều và được ứng dụng vào thực tế như các robot hỗ trợ con người trong nhiều công việc, kể cả những công việc nguy hiểm mà con người không thực hiện được, hay mọi người có thể được nghe nói nhiều đến khái niệm AI Camera trên các thiết bị di động. Tuy nhiên, thuật ngữ này đã xuất hiện từ những năm 1950 bởi Allen Newell, Herbert A. Simon, và Cliff Shaw. Họ là những người đã viết chương trình đầu tiên sử dụng trí tuệ nhân tạo được gọi là Logic Theorist.

Khái niệm trí tuệ nhân tạo thực chất là một khái niệm lớn, mà chúng ta có thể chia ra rõ hơn vào các vấn đề cụ thể như các khái niệm về hệ thống chuyên gia (expert systems), mạng nơ ron (neural networks), máy học (machine learning), nhận dạng ký tự dựa trên quang học (optical character recognition), xử lý ngôn ngữ tự nhiên (natural language processing). Hiện nay, nhiều kỹ thuật được liệt kê ở trên đã được phát triển thành các thư viện mã nguồn mở có tính ứng dụng rất cao và với sự liên kết chặt chẽ với công nghệ điện toán đám mây (cloud computing) làm tăng tính ứng dụng của chúng.

Nếu nói về lịch sử trước đây, nó là ổn khi nói bạn không biết gì về trí tuệ nhân tạo cũng như việc ứng dụng nó vào kiểm thử tự động. Tuy nhiên, với việc phát triển vượt bậc của trí truệ nhân tạo những năm gần đây, nghề kiểm thử cũng như các công việc khác sẽ có những bước tiến vượt bậc trong tương lai gần, trong đó việc kiểm thử tự động với ứng dụng AI sẽ dần sẽ trở thành xu thế để thay thế các quá trình kiểm thử bằng tay tốn kém và mất nhiều thời gian, đồng thời đáp ứng được yêu cầu về mức độ phức tạp ngày càng tăng lên của các hệ thống tạo ra thách thức đối với công việc kiểm thử.

Khái niệm kiểm thử tự động sử dụng AI vẫn là một khái niệm mới. Bài viết sẽ cố gắng chỉ ra tại sao việc ứng dụng AI trong quá trình test lại quan trọng như vậy và giải thích cách mà những robot mạng (hay còn gọi là AI bots) được sử dụng và mang trí tuệ nhân tạo AI vào trong quá trình kiểm thử tự động. Đồng thời, bài viết sẽ nêu ra một vài thách thức chúng ta vẫn cần giải quyết để làm cho việc ứng dụng AI trong kiểm thử được phổ biến.

2. Quy luật của AI Testing

Hiện nay, các diễn đàn và cộng đồng kiểm thử đều tập trung nhấn mạnh tầm quan trọng của ứng dụng AI vào quá trình QA và kiểm thử, tuy nhiên đâu thực sự là quy luật của AI Testing, nghĩa là khi nào chúng ta nên áp dụng nó và nó sẽ giúp đỡ được chúng ta trong những công việc cụ thể nào. Theo lý thuyết, có 2 nguyên nhân chính để chúng ta cân nhắc có ứng dụng AI vào trong hệ thống kiểm thử hay không:

  • Nguyên nhân đầu tiên là việc sử dụng AI tập trung vào việc quản lý quá trình test và sự sáng tạo các testcase tự động. Nó làm giảm mức độ của nỗ lực - level of effort (LOE) dựa trên những tiêu chuẩn đã được xây dựng sẵn bên trong nó và sẽ giúp giữ tất cả mọi thứ luôn nhất quán.

  • Nguyên nhân thứ hai là việc sử dụng AI tập trung vào việc sinh ra các test code tự động dựa trên việc đọc kịch bản người dùng và phân loại các yếu tố quan trọng và các chỉ tiêu được coi là chấp nhận được của hệ thống. Do đó, với quá trình này, quá trình test sẽ được sáng tạo và chạy tự động trên nền web hoặc trên thiết bị di động mà không cần viết thêm bất kỳ một dòng code nào.

Những ngày này, chúng ta có thể thấy AI ở khắp mọi nơi, từ Siri, Alexa và Google Search đến Google Assistant, Slackbot. Mỗi ứng dụng AI này đều có quy luật và mục đích riêng. Để những AI bots làm việc, bạn cần định nghĩa những mục đích xác định cho các AI của bạn, chẳng hạn nó sẽ sáng tạo các testcase tự động, sinh ra test code, thực hiện các bài test không cần code, hoặc một số chức năng khác.

3. Đào tạo những AI Bots

Khái niệm cơ bản về AI theo cách hiểu thông thường là khả năng học hỏi, trong đó máy móc sẽ có khả năng hiểu môi trường và xử lý các dữ liệu đầu vào để thực thi các hoạt động thông minh và sau cùng là học cách để nâng cấp chính nó một cách tự động.

Một ứng dụng của AI là trong nhận dạng giọng nói. Ứng dụng này đã được đưa vào sử dụng thực tế nhiều năm nay bởi Android Auto. Bằng cách ấn một nút trên tay lái ô tô, Google Assistant sẽ được kích hoạt và bạn chỉ cần nói muốn chơi bài hát nào đó, ví dụ như “Play Chris Stapleton”, Google Assistant sẽ sử dụng AI để xử lý đầu vào và thực thi một hoạt động thông minh, trong một vài giây, bài hát sẽ được phát. Điều này rõ ràng làm tăng thêm sự an toàn và thoải mái đối với tất cả mọi người, và cho phép các thao tác diễn ra nhanh hơn rất nhiều.

Có một bài học có thể rút ra ở đây: Những thành viên thuộc nhóm phát triển (developer) dù thông minh nhất thường ít quan tâm đến những bug và hầu hết thời gian đội phát triển đều phản ứng với những bug thay vì ngăn chặn chúng. Nếu bạn là một tester hoặc làm việc với một tester, bạn sẽ biết rằng các tester sẽ thích hỏi rất nhiều câu hỏi khác nhau, đặc biệt là với các developer. Những AI bots cũng tương tự như vậy, chúng ta cần đào tạo chúng cách xử lý các dữ liệu đầu vào bằng cách hỏi chúng những câu hỏi để sau đó chúng có thể thực hiện những hoạt động thông minh, chỉ đơn giản như Android Auto Google Assistant. Những AI bots sẽ chỉ trở lên mạnh mẽ khi chúng ta liên tục tăng cường những thuật toán để nhận dạng những thành phần đầu vào và những cư xử.

4. Những thách thức với các ứng dụng được cung cấp sức mạnh từ AI

Quá trình test tự động dựa trên AI vẫn còn những nút thắt cần được gỡ bỏ. Những thử thách và những vấn đề có thể bạn sẽ phải đối diện khi ứng dụng AI cho quá trình kiểm thử bao gồm:

  • Xác định và hoàn thiện tất cả các thuật toán được yêu cầu.
  • Tập hợp nhiều dữ liệu đầu vào để đào tạo những bots.
  • Chỉ ra những bots sẽ hoạt động thế nào từ dữ liệu đầu vào.
  • Những bots có thể lặp lại những task thậm chí khi những dữ liệu đầu vào là mới.
  • Quá trình đào tạo những bots sẽ không bao giờ kết thúc, bởi chúng ta sẽ liên tục nâng cấp thuật toán.

Theo nhiều phương diện, AI Testing như đang dậy một đứa trẻ, do đó đây là một quá trình gian khổ, nhưng đáng giá khi nó được thực hiện đúng.

5. Kết luận

AI hiện nay đã không còn là thuật ngữ mà đã là hiện thực. Nếu các bạn bỏ chút thời gian để nghĩ về tất các những kỹ thuật chúng ta đang sử dụng hàng ngày, AI đã bắt đầu tích hợp vào cuộc sống của chúng ta một cách lặng lẽ. Bởi vậy, chúng ta cần trở nên sẵn sàng bởi tương lai của kiểm thử sẽ là dựa trên AI. Chúng có thể vẫn chưa ở đây nhưng những AI Testing bots đang đến rất gần.

6. Phụ lục

Bài viết trích lược và tham khảo bài viết từ tác giả Greg Sypolt. “Greg is a Fixate IO Contributor and a Senior Engineer at Gannett | USA Today, responsible for test automation solutions, test coverage (from unit to end-to-end), and continuous integration across all Gannett | USA Today Network products. In the last two years, he has helped change the testing approach from manual to automated testing across several products at Gannett | USA Today Network. To determine improvements and testing gaps, he conducted a face-to-face interview survey process to understand all the product development and deployment processes, testing strategies, and tooling. He provides a formal training program for teams still performing manual testing that allows them to transition to automated testing.”

Liên kết tham khảo: https://saucelabs.com/blog/ai-test-automation-the-ai-test-bots-are-coming https://techbeacon.com/5-ways-ai-will-change-software-testing https://www.quora.com/How-do-I-implement-AI-in-test-automation