Cách AI thay đổi quy trình kiểm thử
Diễn đàn - Ngày đăng : 16:38, 20/03/2019
AI có thể được áp dụng trong quá trình kiểm thử tổng thể, nhưng chúng ta cần chia nhỏ các công việc của một người thử nghiệm. Giống như động cơ không phải là sự thay thế trực tiếp cho sức mạnh, chúng ta cần hiểu rõ động cơ cơ bản của từng nhiệm vụ để có thể hình dung quá trình cải thiện và thay đổi như thế nào trong khi các mục tiêu vẫn đang được thực hiện tốt. Vì vậy, sau đây, chúng ta sẽ bàn luận về các mục tiêu chứ không phải nhiệm vụ thực tế của người kiểm thử
Kiểm thử tính năng mới
Cần phải đảm bảo tính năng mới có ý nghĩa, tuân thủ các nguyên tắc thiết kế UX, an toàn và bảo mật, có hiệu suất và hoạt động như dự định. Rõ ràng hơn, chúng tôi phải tuân theo tiêu chuẩn ISO 25010 [1] bao gồm 7 đặc điểm chính dưới đây:
- Chức năng
Về cơ bản, khẳng định chức năng chính xác và đầy đủ là một vấn đề về lập trình AI, có thể hiểu là AI ít nhất cần phải thông minh như con người để giải quyết vấn đề này. Ví dụ: khi tìm kiếm họ tên trên trang Facebook, kết quả trả về là tất cả những người có tên được chỉ định. Khi làm tương tự như vậy trên một trang web nhạy cảm về quyền riêng tư như Ashley Madison thì sẽ trở thành một vấn đề nghiêm trọng, đó có thể là do hệ thống cơ sở dữ liệu Oracle bởi vì chúng ta cần phần mềm Delphian Oracle hỗ trợ để biết liệu chức năng được hiển thị có chính xác hay không. Như vậy là trong tương lai gần, chúng ta không thể sử dụng AI để kiểm tra tính chính xác của chức năng phần mềm
- Hiệu suất
Tuy nhiên, hiệu suất lại có thể được chỉ định theo cách đơn giản và rất chung chung như một trang web không nên tải lâu hơn 2 giây và sau khi nhấn nút, phản hồi không được muộn hơn 500 mili giây.
- Khả năng tương thích.
Khả năng tương thích có nhiều ý nghĩa khác nhau, ví dụ như kiểm thử tương thích rộng rãi trên nhiều trình duyệt, kiểm thử chéo hoặc kiểm thử thiết bị chéo, tập trung chủ yếu vào thiết kế và chức năng.
- Khả năng sử dụng
Tính khả dụng hiện tại rất khó để các hệ thống AI phân tích, mặc dù đây có thể là một hoạt động đầy hứa hẹn trong tương lai. Tuy nhiên, cải thiện khả năng sử dụng của một phần mềm cũng có thể cải thiện khả năng hiểu và kiểm tra phần mềm của hệ thống AI.
- Độ tin cậy
Hiện tại, đã có phần mềm phân tích một số khía cạnh về độ tin cậy của hệ thống phần mềm, chẳng hạn như khả năng chịu lỗi và khả năng phục hồi. AI sẽ chỉ cải thiện phân tích như vậy và mang lại kết quả tốt hơn. Các khía cạnh khác như sự trưởng thành và tính sẵn sàng có liên quan nhiều đến việc sử dụng và vận hành lâu dài của các hệ thống thì thường rất khó để kiểm tra - ngay cả đối với con người.
- Bảo mật
Bảo mật cũng đã tồn tại phần mềm kiểm tra một số khía cạnh như tấn công hiện có hoặc tấn công nổi tiếng. Ngoài các cuộc tấn công tiêu chuẩn như vậy, nói chung, rất khó để kiểm tra. Các nhà phân tích bảo mật thường là những chuyên gia được trả lương cao, rất thành thạo trong lĩnh vực và kết hợp khéo léo các khía cạnh cụ thể khác nhau của hệ thống để tìm ra điểm yếu và sơ hở mới.
- Khả năng bảo trì và tính linh động
Khả năng bảo trì và tính linh động thường là các khía cạnh nằm bên trong của hệ thống phần mềm, rất phù hợp với sự phát triển và vận hành của hệ thống, nhưng hầu như không được thử nghiệm.
Kiểm thử tính năng đã có
Phần mềm không giống với nhiều thứ chúng ta gặp phải trong thế giới phi kỹ thuật số. Ví dụ, nếu chúng ta sửa chữa đèn trước của ô tô, chúng ta không cần kiểm tra còi. Nhưng vì phần mềm có quá nhiều thứ liên kết và phụ thuộc vào nhau, nên việc thay đổi chỉ một phần của hệ thống cũng có thể sẽ ảnh hưởng đến cả hệ thống. Do đó, cần phải kiểm tra lại toàn bộ chức năng kể cả khi chức năng đó không được thay đổi, chỉ để đảm bảo nó thực sự không bị ảnh hưởng. Hình thức kiểm tra này là kiểm tra hồi quy và nó đóng góp một phần nỗ lực trong kiểm tra tổng thể.
Thay vì kiểm tra tính chính xác, kiểm thử hồi quy tập trung vào kiểm tra các thay đổi. Về cơ bản, kiểm thử hồi quy không phải là hoạt động kiểm tra lại toàn bộ chức năng mà chỉ là tập trung vào kiểm tra thay đổi cụ thể.
Bên cạnh kiểm thử hồi quy, còn có kiểm thử Golden Master, thử nghiệm đặc tính, kiểm thử chấp nhận và kiểm thử dựa trên Snapshot, và những cách này đang được ưa chuộng hiện nay. Những kiểu kiểm thử này không chỉ dễ dàng thực hiện mà còn dễ dàng bảo trì. Ngoài ra, các loại kiểm tra này còn khắc phục một số vấn đề tồn tại lâu dài khác của kiểm thử hồi quy.
AI có thể tạo ra các cách kiểm tra trên Golden Master cho phiên bản phần mềm hiện có. Sau khi thay đổi phần mềm, các thử nghiệm này sẽ thông báo những thay đổi về chức năng. Người kiểm thử sau đó chỉ cần xem lại chức năng mới hoặc các thay đổi đối với chức năng hiện có. Trong nhiều trường hợp, cách này tiết kiệm được rất nhiều thời gian và giảm thiểu rủi ro vì AI không cần phải quyết định xem một chức năng cụ thể có đưa kết quả đúng hay không - mà chỉ cần thực thi theo phần mềm và ghi lại cách hoạt động
Thách thức lớn nhất ngăn cản AI kiểm thử phần mềm đã giải quyết được, dưới đây là một số thách thức còn lại. AI cần phải hiểu cách thực thi và trạng thái hiện tại của phần mềm, hiểu đơn giản là AI cần quyết định hành động nào người dùng sẽ thực hiện tiếp theo, giống như trò chơi cờ vua nhưng cần phát triển nhiều chức năng nâng cao hơn. Để làm được như vậy, người viết phần mềm phải cung cấp bản ghi đầy đủ các trường hợp điển hình cho AI học hỏi và vượt qua các thách thức ban đầu như tìm các giá trị hợp lệ cho ngày và email.
Trong quá trình tạo các bản ghi như vậy, AI đã có thể kiểm tra năng suất và một số phần về độ tin cậy và bảo mật. Bất kỳ lỗi kỹ thuật nào AI gặp phải nó đều có thể báo cáo, dẫn đến kiểm thử khói sẽ không còn được sử dụng. Lưu ý rằng, như đã đề cập ở trên, những cải tiến về phần mềm có thể giúp tăng hiệu suất kiểm tra của AI. Hơn nữa, AI còn giúp tăng hiệu quả công việc và tìm được lỗi trong thời gian hợp lý.
Quy trình kiểm thử mới
Dựa vào phần phân tích bên trên, một quy trình kiểm thử mới có thể được hình dung như sau: Một phần mềm mới được tạo ra, người kiểm tra phải đảm bảo rằng phần mềm chính xác, đầy đủ, bảo mật và có thể sử dụng. Sau đó, AI đã được ghi lại các tình huống, sẽ thực hiện kiểm tra phần mềm và ghi lại đầy đủ các trường hợp khác nhau vì Golden Master cho phép thay đổi về chức năng trong phiên bản tiếp theo. Nhờ sử dụng AI, người kiểm thử cũng như nhà phát triển có thể cải thiện phần mềm ở giai đoạn tiếp theo. Mặt khác, AI tăng phạm vi kiểm tra và giảm đáng kể nguy cơ không phát hiện ra các thay đổi. Vì vậy, các nhà phát triển sẽ có nhiều thời gian hơn tập trung vào chức năng mới và thay đổi cách xử lý của phần mềm.
Những thay đổi trong quy trình kiểm thử có thể đạt được thông qua khả năng hiện tại của AI. Các nhà nghiên cứu hy vọng rằng những khả năng này sẽ chỉ cải thiện và mở rộng theo thời gian. Một khi AI đã đạt được khả năng của con người hoặc khả năng siêu phàm thì không có nhiệm vụ nào mà AI không thể thực hiện được, từ công việc của người thử đến nhà phát triển hoặc người quản lý. Tuy nhiên vẫn chưa rõ khi nào AI sẽ đạt được đến trình độ đó và trên con đường đạt được những khả năng này sẽ còn có nhiều cột mốc thú vị.