Agile Testing là gì?

Agile Testing là một quy trình kiểm thử phần mềm tuân theo các nguyên tắc phát triển phần mềm Agile. Agile testing phù hợp với phương pháp phát triển lặp đi lặp lại, các yêu cầu của khách hàng được phát triển dần dần. Sự phát triển phù hợp với yêu cầu của khách hàng.

Agile Testing là một quá trình liên tục chứ không phải là tuần tự. Việc thử nghiệm bắt đầu khi bắt đầu dự án và có sự tích hợp liên tục giữa thử nghiệm và phát triển. Mục tiêu chung của phát triển và thử nghiệm nhanh là đạt được chất lượng sản phẩm cao.

Agile Testing và WaterFall Testing

Agile Testing được áp dụng trong khi làm việc với Agile trong khi Waterfall Testing được sử dụng trong mô hình Waterfall.

Dưới đây là một số khác biệt chính giữa Agile testing và Waterfall testing.

Agile TestingWaterfall Testing
Agile testing không có cấu trúc so với cách tiếp cận Waterfall và có kế hoạch tối thiểu.Trong mô hình Waterfall, quy trình thử nghiệm có cấu trúc chặt chẽ hơn và có mô tả chi tiết về giai đoạn thử nghiệm.
Agile testing rất phù hợp cho các dự án nhỏ.Waterfall testing có thể được thông qua cho tất cả các loại dự án.
Kiểm thử bắt đầu khi bắt đầu dự án, lỗi có thể được sửa ở giữa dự án.Trong Waterfall testing, sản phẩm được thử nghiệm vào cuối quá trình phát triển. Đối với bất kỳ thay đổi, dự án phải bắt đầu lại từ đầu.
Tài liệu đơn giản.Các Waterfall testing trong cách tiếp cận Waterfall đòi hỏi tài liệu phức tạp.
Trong phương pháp này, mỗi lần lặp lại có giai đoạn thử nghiệm riêng. Các bài kiểm tra hồi quy có thể được chạy mỗi khi các chức năng hoặc logic mới được phát hành.Việc thử nghiệm chỉ bắt đầu sau khi hoàn thành giai đoạn phát triển.
Trong Agile testing, các tính năng có thể chuyển thành sản phẩm được gửi đến khách hàng khi kết thúc một lần lặp.Theo cách tiếp cận truyền thống này, tất cả các tính năng được phát triển sẽ được phân phối hoàn toàn sau giai đoạn thực hiện.
Người kiểm thử và nhà phát triển làm việc chặt chẽ trong Agile testing.Người kiểm thử và nhà phát triển làm việc riêng.
Sự chấp nhận của người dùng được thực hiện vào cuối của mỗi SprintSự chấp nhận của người dùng chỉ có thể được thực hiện khi kết thúc dự án.
Tester cần làm việc với các nhà phát triển để phân tích các yêu cầu và lập kế hoạch.Các nhà phát triển không tham gia vào việc phân tích các yêu cầu và quy trình lập kế hoạch.

Nguyên tắc Agile Testing

Kiểm thử là liên tục: Nhóm Agile kiểm tra liên tục vì đó là cách duy nhất để đảm bảo tiến độ liên tục của sản phẩm.

Phản hồi liên tục – Agile Testing cung cấp phản hồi trên cơ sở liên tục và đây là cách sản phẩm của bạn đáp ứng nhu cầu kinh doanh.

Các thử nghiệm được thực hiện bởi cả nhóm: Trong vòng đời phát triển phần mềm truyền thống, chỉ có nhóm thử nghiệm chịu trách nhiệm thử nghiệm nhưng trong Agile testing, các nhà phát triển và nhà phân tích kinh doanh cũng thử nghiệm ứng dụng.

Giảm thời gian phản hồi: Nhóm kinh doanh tham gia vào mỗi lần lặp trong Agile testing và phản hồi liên tục rút ngắn thời gian phản hồi.

Mã đơn giản và sạch sẽ: Tất cả các lỗi được đưa ra bởi nhóm Agile được sửa trong cùng một lần lặp và nó giúp giữ cho mã sạch và đơn giản hóa.

Tài liệu ít hơn: Các nhóm Agile sử dụng danh sách kiểm tra có thể sử dụng lại, nhóm tập trung vào kiểm tra thay vì các chi tiết ngẫu nhiên.

Thử nghiệm hướng dẫn: Trong các phương pháp Agile, thử nghiệm được thực hiện tại thời điểm thực hiện trong khi đó, ở quy trình truyền thống, thử nghiệm được thực hiện sau khi triển khai.

Phương pháp Agile Testing

Có nhiều phương pháp Agile testing như sau:

  • Phát triển hướng hành vi
  • Phát triển hướng kiểm thử tiếp nhận
  • Thử nghiệm thăm dò

Phát triển hướng hành vi (BDD)

Phát triển hướng hành vi (BDD) cải thiện giao tiếp giữa các bên liên quan của dự án để tất cả các thành viên hiểu chính xác từng tính năng trước khi quá trình phát triển bắt đầu. Có sự liên lạc dựa trên ví dụ liên tục giữa các nhà phát triển, người thử nghiệm và nhà phân tích kinh doanh.

Các ví dụ được gọi là kịch bản được viết theo định dạng đặc biệt gọi là cú pháp Gherkin Given/When/Then. Các kịch bản chứa thông tin về cách một tính năng nhất định sẽ hoạt động trong các tình huống khác nhau với các tham số đầu vào khác nhau. Chúng được gọi là các thông số kỹ thuật có thể thực hiện được bởi vì nó bao gồm cả thông số kỹ thuật và đầu vào cho các thử nghiệm tự động.

Phát triển hướng kiểm thử tiếp nhận (ATDD)

ATDD tập trung vào việc liên quan đến các thành viên trong nhóm với các quan điểm khác nhau như khách hàng, nhà phát triển và người thử nghiệm. Ba cuộc họp của Amigos được tổ chức để hình thành các thử nghiệm chấp nhận kết hợp các quan điểm của khách hàng, phát triển và thử nghiệm. Khách hàng tập trung vào vấn đề cần giải quyết, sự phát triển tập trung vào cách giải quyết vấn đề trong khi thử nghiệm tập trung vào những gì có thể sai. Các thử nghiệm chấp nhận là một đại diện cho quan điểm của người dùng và nó mô tả cách hệ thống sẽ hoạt động. Nó cũng giúp xác minh rằng các chức năng hệ thống như nó được yêu cầu. Trong một số trường hợp kiểm tra chấp nhận được tự động.

Thử nghiệm thăm dò

Trong loại thử nghiệm này, giai đoạn thiết kế thử nghiệm và thực hiện thử nghiệm đi đôi với nhau. Kiểm tra thăm dò nhấn mạnh phần mềm làm việc trên tài liệu toàn diện. Các cá nhân và tương tác quan trọng hơn quá trình và công cụ. Hợp tác khách hàng giữ giá trị lớn hơn so với đàm phán hợp đồng. Thử nghiệm thăm dò là thích ứng hơn với những thay đổi. Trong thử nghiệm này xác định chức năng của một ứng dụng bằng cách khám phá ứng dụng. Những người thử nghiệm cố gắng tìm hiểu ứng dụng, và thiết kế và thực hiện các kế hoạch kiểm tra theo kết quả của họ.

Ưu điểm của Agile Testing

Những lợi ích của phương pháp Agile testing như sau:

  • Tiết kiệm thời gian và tiền bạc
  • Làm giảm tài liệu
  • Linh hoạt và có khả năng thích ứng cao với những thay đổi
  • Cung cấp một cách để nhận phản hồi thường xuyên từ người dùng cuối

Kế hoạch Agile testing

Trong Agile testing, kế hoạch kiểm tra được viết cũng như cập nhật cho mỗi bản phát hành. Một kế hoạch Agile testing bao gồm:

  • Kế hoạch Agile testing
  • Phạm vi thử nghiệm
  • Hợp nhất các chức năng mới sẽ được thử nghiệm
  • Các loại thử nghiệm / Cấp độ thử nghiệm
  • Kiểm tra hiệu suất
  • Cân nhắc về kiến trúc
  • Kế hoạch cho rủi ro
  • Quy hoạch tài nguyên
  • Bàn giao sản phẩm và mốc

Agile Testing là gì?

Vòng đời kiểm tra Agile

Vòng đời thử nghiệm nhanh bao gồm 5 giai đoạn sau:

  • Đánh giá tác động
  • Lập kế hoạch Agile testing
  • Sẵn sàng phát hành
  • Scrum hàng ngày
  • Kiểm thử linh hoạt

Agile Testing là gì?

Kết luận

Agile testing không chỉ tạo điều kiện phát hiện sớm các lỗi mà còn giảm chi phí lỗi bằng cách sửa chúng sớm. Cách tiếp cận này cũng mang lại một cách tiếp cận lấy khách hàng làm trung tâm bằng cách cung cấp một sản phẩm chất lượng cao càng sớm càng tốt.

Author: Mai Công Sơn

Đăng ký nhận bộ tài liệu học Java trên 2 trang giấy tại đây

Xem thêm: Java Coding Bootcamp là gì? Tổng quan về Java Coding Bootcamp


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.