paint-brush
Tận dụng ChatGPT để kiểm tra phần mềmtừ tác giả@ratikeshmisra
4,434 lượt đọc
4,434 lượt đọc

Tận dụng ChatGPT để kiểm tra phần mềm

từ tác giả Ratikesh4m2023/09/16
Read on Terminal Reader

dài quá đọc không nổi

Trong 2 năm qua, sự tiến bộ trong AI, đặc biệt là LLM (Mô hình ngôn ngữ lớn) đã giúp giải quyết các vấn đề truyền thống hiệu quả hơn. Một tác động như vậy mà LLM có thể tạo ra là thông qua hỗ trợ tự động hóa quá trình kiểm tra phần mềm của chúng tôi. Đối với nhiều nhóm phần mềm, tự động hóa chưa bao giờ là công dân hạng nhất của chu trình SDLC và các nhóm gặp khó khăn trong việc tự động hóa các trường hợp thử nghiệm.
featured image - Tận dụng ChatGPT để kiểm tra phần mềm
Ratikesh HackerNoon profile picture
0-item
1-item

Trong 2 năm qua, sự tiến bộ trong AI, đặc biệt là LLM (Mô hình ngôn ngữ lớn), hóa ra đã giải quyết các vấn đề truyền thống hiệu quả hơn và một trong những tác động mà LLM có thể tạo ra là thông qua hỗ trợ tự động hóa kiểm tra phần mềm của chúng tôi. Đối với nhiều nhóm phần mềm, tự động hóa chưa bao giờ là công dân hạng nhất của chu trình SDLC và các nhóm gặp khó khăn trong việc tự động hóa các trường hợp thử nghiệm tạo ra " Nợ tự động hóa thử nghiệm ". Do lỗ hổng trong tự động hóa thử nghiệm này, các nhóm chất lượng phải mất rất nhiều thời gian để xác minh và viết các trường hợp thử nghiệm này theo cách thủ công, điều này làm chậm tốc độ vận chuyển của nhóm kỹ thuật.


Sự thay đổi thời gian để kiểm tra thủ công với độ phức tạp của mã


Lối thoát duy nhất tồn tại để tránh tình trạng khó khăn như vậy là tự động hóa các trường hợp thử nghiệm với tốc độ vượt trội nhưng chúng tôi thường không thể làm như vậy vì:


  • Nhóm QA thủ công thiếu kinh nghiệm tự động hóa để viết mã có thể mở rộng.
  • Chi phí bắt đầu tự động hóa ( về băng thông cần thiết từ quản lý kỹ thuật và QA ) quá cao do tồn đọng rất lớn các trường hợp thử nghiệm cần được tự động hóa.
  • Chất lượng tài liệu kém cho các trường hợp thử nghiệm và không có sự bảo trì thích hợp cho bộ hồi quy và vệ sinh.
  • Do hầu hết các công ty sản phẩm đều tập trung vào phát triển tính năng nên tính ổn định và chất lượng được đặt lên hàng đầu.
  • Đánh giá của con người đối với các trường hợp thử nghiệm được ưu tiên hơn là đánh giá bằng máy.


Mặc dù tất cả các vấn đề được đề cập ở trên cần một bài viết riêng về cách các nhóm phần mềm nên giải quyết chúng, nhưng trong phần này, chúng tôi sẽ nói về cách các kỹ sư QA có thể tận dụng ChatGPT hoặc LLM làm thí điểm phụ của họ trong BDD (thử nghiệm dựa trên hành vi)

Sử dụng GPT3.5 cho BDD và quá trình tự động hóa của nó


BDD là gì?


Phát triển theo hướng hành vi (BDD) là một phương pháp phát triển phần mềm Agile trong đó một ứng dụng được ghi lại và thiết kế xoay quanh hành vi mà người dùng mong đợi trải nghiệm khi tương tác với nó. Trong bối cảnh của cuộc thảo luận này, hãy áp dụng thử nghiệm dựa trên BDD trên trang web YC và coi trang đăng nhập của tin tức hacker YC là điểm bắt đầu.


Trang đăng nhập tin tức của YC Hacker


Đối với trang được đề cập ở trên, hành vi mong đợi là

" Khi người dùng cố gắng đăng nhập và nhập thông tin xác thực hợp lệ trên https://news.ycombinator.com/login?goto=news và nhấn đăng nhập, nó sẽ chuyển hướng người dùng đến trang web tin tức của hacker ".


Theo hướng dẫn của BDD, hành vi trên có thể được viết dưới dạng cú pháp/các bước của Gherkin, đây có thể là một trường hợp thử nghiệm khả thi và việc sử dụng dưa chuột làm khung, Gherkin tương tự có thể được tự động hóa và hành vi này sẽ không cần sự can thiệp của con người nữa . Tuy nhiên, do vấn đề mà chúng ta đã thảo luận ở phần trên, nhóm QA thường gặp khó khăn trong việc tự động hóa tương tự, nhưng chúng tôi có thể tận dụng sức mạnh của LLM bằng cách viết một số lời nhắc và tạo quy trình làm việc cho nhóm QA của chúng tôi để thực hiện các bước Gherkin và tự động hóa nó với tốc độ nhanh hơn trên khung dưa chuột.



Quy trình tạo cú pháp Gherkin

Quy trình tạo cú pháp Gherkin


Ví dụ: trong hình ảnh bên dưới, tôi đã chỉ ra cách bạn có thể tinh chỉnh mô hình GPT bằng cách sử dụng lời nhắc để tạo cú pháp gherkin cho hành vi được trình bày bằng ngôn ngữ tự nhiên.


ChatGPT xuất ra Cú pháp Gherkin có liên quan cho hành vi được trình bày



Quy trình tạo mã tương thích với dưa chuột từ Cú pháp Gherkin

Tạo mã tương thích Cucumber với các bước Gherkin bằng GPT


Bước 1: Nhắc thiết kế


Dưới đây là lời nhắc mà bạn có thể viết trên bảng điều khiển ChatGPT để tinh chỉnh nó nhằm đưa ra quy trình tự động hóa phù hợp bằng cách sử dụng mã HTML và các bước Gherkin được cung cấp. Là đầu ra cuối cùng, chúng tôi đã yêu cầu tạo mã ở dạng định nghĩa bước mà dưa chuột cần, mã này có thể được sao chép và dán giống như QA.



Nhắc tinh chỉnh GPT để tạo tự động hóa dựa trên dưa chuột


Bước 2: Đưa HTML có liên quan cần được sử dụng làm cơ sở cho quá trình tự động hóa.

Như được mô tả bên dưới sau khi tinh chỉnh ChatGPT yêu cầu các bước HTML và Gherkin có liên quan mà nó có thể sử dụng để tạo định nghĩa các bước cho dưa chuột.


Nguồn cấp dữ liệu HTML cần được sử dụng để tự động hóa


Bước 3: Tạo định nghĩa bước


Do đó, GPT sẽ hiểu cấu trúc DOM từ HTML được cung cấp và hỏi bạn cú pháp Gherkin có liên quan. Đối với trường hợp trên, chúng tôi đã tạo Gherkin mà chúng tôi có thể chuyển như sau:


 Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website


Đầu ra cuối cùng


Cuối cùng, theo quy trình làm việc và lời nhắc được đề cập, nó tạo ra tệp định nghĩa bước cho các bước Gherkin ở trên và kịch bản được đề cập, tệp này có thể được QA sao chép trong khung dưa chuột của họ sau khi kiểm tra chất lượng nhỏ để tăng cường tự động hóa hành vi mà chúng được cho là để kiểm tra.


Định nghĩa bước dưa chuột được tạo

Thời đại phi công phụ

Với sự ra đời của AI và sự xuất hiện của phi công phụ, con người sẽ thấy năng suất của họ tăng lên. Họ sẽ có thể đẩy ranh giới đổi mới của mình đi xa hơn bằng cách chuyển giao các nhiệm vụ thô sơ và thường ngày cho AI. Tuy nhiên, tôi vẫn nghĩ chúng ta chỉ nên coi chúng như trợ lý cho bất kỳ công việc nào chúng ta làm và trí thông minh của việc sử dụng chúng sẽ tồn tại trong con người, vì các nhóm công nghệ, tiếp thị, bán hàng và thành công của khách hàng đang cố gắng tận dụng sức mạnh của LLM trong quy trình làm việc của họ điều tương tự cũng có thể được thực hiện bởi các kỹ sư QA để họ có thể nâng cao năng suất hơn nữa và làm cho công việc đảm bảo chất lượng và tính ổn định của phần mềm trở nên thú vị!