12/08/2018, 17:51

Agile Là Gì và Các Phương Pháp Kiểm Thử Agile

1. Phương Pháp Agile Là gì? Phương pháp Agile là một cách chú trọng vào việc lặp lại liên tục sự phát triển và kiểm thử xuyên suốt vòng đời phát triển phần mềm của dự án. Cả 2 hoạt động phát triển phần mềm và kiểm thử của mô hình Agile đều hoàn toàn khác biệt với mô hình Waterfall. Sự phát ...

1. Phương Pháp Agile Là gì?

Phương pháp Agile là một cách chú trọng vào việc lặp lại liên tục sự phát triển và kiểm thử xuyên suốt vòng đời phát triển phần mềm của dự án. Cả 2 hoạt động phát triển phần mềm và kiểm thử của mô hình Agile đều hoàn toàn khác biệt với mô hình Waterfall.

Sự phát triển phần mềm Agile nhấn mạnh vào 4 giá trị cốt lõi sau:

  1. Sự tương tác của cá nhân và nhóm thông qua các quy trình và công cụ.
  2. Phần mềm làm việc thông qua các tài liệu đầy đủ
  3. Sự hợp tác của khách hàng thông qua việc thương thuyết hợp đồng
  4. Đáp ứng để thay đổi nhằm theo sát các kế hoạch

2. Phương Thức Agile Vs Waterfall

Mô hình Agile and Waterfall là hai phương thức hoàn toàn khác biệt trong quy trình phát triển phần mềm. Tuy chúng khác biệt trong cách tiếp cận, nhưng cả 2 phương thức đều hữu dụng ở một thời điểm nào đó, phụ thuộc vào yêu cầu và đặc điểm của dự án.

3. Phương Pháp Kiểm Thử Agile

Trong Agile có những phương thức kiểm thử khác nhau như sau:

3.1. Scrum

Scrum là một quy trình quản lý và phát triển theo phương pháp phát triển linh hoạt (Agile) tập trung đặc biệt vào việc quản lý các công việc trong một môi trường phát triển theo nhóm. Về cơ bản Scrum được bắt nguồn từ các hoạt động xảy ra trong 1 vòng tuần hoàn. Scrum tin tưởng vào việc trao quyền cho nhóm phát triển và làm việc theo nhóm nhỏ (từ 7-9 người). Nó bao gồm ba vai trò với những trách nhiệm được giải thích như hình sau:

  • Scrum Master
    Master là người chịu trách nhiệm thiết lập nhóm, thiết lập cuộc họp trong các giai đoạn phát triển và loại bỏ các vật cản ảnh hưởng đến sự phát triển

  • Product owner
    Product owner tạo ra backlog sản phẩm, đưa ra thứ tự ưu tiên cho backlog và chịu trách nhiệm cho việc phát hành các tính năng ở mỗi giai đoạn

  • Scrum Team
    Team quản lý công việc của họ và tổ chức công việc nhằm hoàn thành các giai đoạn hoặc chu kỳ phát triển

Product Backlog
Đây là một kho lưu trữ các yêu cầu được theo dõi với chi tiết về yêu cầu không được hoàn thành trong mỗi lần phát hành. Nó phải được duy trì và được ưu tiên bởi Product owner, và nó sẽ được phân phối cho nhóm scrum. Nhóm cũng có thể bổ sung hoặc sửa đổi hoặc xóa yêu cầu mới.

Scrum Practices
Được mô tả chi tiết như hình dưới đây:

Process flow of Scrum Methodologies (Luồng xử lý của phương thức Scrum)
Luồng xử lý của phương thức kiểm thử Scrum như sau:

  • Mỗi một giai đoạn lặp lại của một scrum được biết đến như là Sprint
  • Product backlog là một danh sách bao gồm các mô tả chi tiết để hoàn thành sản phẩm cuối cùng
  • Trong mỗi Sprint, các mục hàng đầu của Product backlog được chọn và chuyển thành Sprint backlog
  • Nhóm làm việc trên sprint backlog đã được mô tả
  • Nhóm kiểm tra cho công việc hàng ngày
  • Vào cuối các sprint, nhóm sẽ phát hành các tính năng của sản phẩm

3.2. eXtreme Programming (XP)


Kỹ thuật lập trình eXtreme Programming (XP) cực kỳ hữu ích khi có yêu cầu thay đổi liên tục từ khách hàng hoặc khi họ không chắc về chức năng của hệ thống. Với chủ trương "phát hành" sản phẩm thường xuyên trong các chu kỳ phát triển ngắn, sẽ cải thiện chức năng của hệ thống cũng như đưa ra các điểm quan trọng nơi mà bất kỳ yêu cầu nào từ khách hành đều có thể dễ dàng thực thi.

Các yêu cầu kinh doanh được thu thập theo các story (câu chuyện). Ở phương pháp này, các bản phát hành sẽ dựa trên các vòng đời ngắn hơn được gọi là Iteration (sự lặp lại) với mỗi 14 ngày. Mỗi lần lặp lại bao gồm các giai đoạn như lập trình, kiểm thử đơn vị và kiểm thử hệ thống, nơi mà các chức năng nhỏ sẽ được xây dựng trong ứng dụng.

Các giai đoạn lập trình eXtreme:
Có 6 giai đoạn trong phương pháp Agile XP, và những giai đoạn được giải thích như sau:

1. Lập kế hoạch
Xác định các bên liên quan và nhà tài trợ
Yêu cầu về cơ sở hạ tầng
Các thông tin và thu thập liên quan đến bảo mật
Thỏa thuận về điều kiện và sự đồng thuận về mức độ dịch vụ

2. Phân tích
Mường tượng những câu chuyện người dùng (story) sẽ xảy ra
Đưa ra mức độ ưu tiên cho các câu chuyện người dùng (story)
Ước tính nỗ lực cho các câu chuyện người dùng (story)
Xác định khoảng lặp (Thời gian)
Kế hoạch nhân sự cho cả nhóm phát triển và QA

3. Thiết kế
Chia nhỏ công việc
Chuẩn bị kịch bản kiểm thử cho mỗi công việc
Framework tự động hóa hồi quy

4. Thực thi
Lập trình
Kiểm thử đơn vị
Thực thi các kịch bản kiểm thử thủ công
Tạo báo cáo lỗi
Chuyển đổi các trường hợp kiểm thử thủ công sang tự động
Đánh giá giữa các vòng lặp
Kết thúc

5. Đóng gói
Phát hành sản phẩm quy mô nhỏ
Kiểm thử hồi quy
Chạy thử và đánh giá
Phát triển các câu chuyện mới dựa trên yêu cầu
Cải tiến quy trình dựa vào các nhận xét đánh giá của việc kết thúc vòng tuần hoàn

6. Kết thúc
Ra mắt chương trình thử nghiệm
Đào tạo
Ra mắt sản phẩm
Đảm bảo về SLA
Xem xét chiến lược SOA
Hỗ trợ sản phẩm


3.3. Crystal Methodologies


Phương pháp Crystal dựa vào 3 khái niệm sau:

Chartering:
Các hoạt động khác nhau liên quan đến giai đoạn này tạo ra một nhóm phát triển, thực hiện phân tích tính khả thi, xây dựng khởi tạo kế hoạch và tinh chỉnh phương pháp phát triển

Cyclic delivery (Phát hành theo chu kỳ):
Giai đoạn phát triển chính bao gồm hai hoặc nhiều chu kỳ phát hành, trong đó sẽ bao gồm:

  • Nhóm sẽ cập nhật và chỉnh sửa kế hoạch phát hành
  • Triển khai một tập hợp các yêu cầu thông qua một hoặc nhiều lần kiểm thử tích hợp
  • Sản phẩm tích hợp được phân phối tới người dùng thực tế
  • Rà soát kế hoạch dự án và phương pháp phát triển đã được thông qua

Wrap Up:

Các hoạt động thực hiện trong giai đoạn này sẽ được triển khai vào môi trường người dùng, các đánh giá sau khi triển khai được thực hiện.

3.4. Dynamic Software Development Method (DSDM)


DSDM là phương pháp phát triển ứng dụng nhanh (RAD) tiếp cận việc phát triển phần mềm và cung cấp nền tảng phát hành dự án nhanh gọn. Khía cạnh quan trọng của DSDM là người dùng được yêu cầu tích cực tham gia, và nhóm phát triển được trao quyền đưa ra các quyết định trong dự án. Thường xuyên phát hành sản phẩm trở thành trọng tâm hoạt động của DSDM. Các kỹ thuật được sử dụng trong DSDM gồm:

  • Thời gian Boxing
  • Quy tắc MoSCoW
  • Tạo bản mẫu

Dự án DSDM bao gồm 7 giai đoạn:


1. Trước khi bắt đầu dự án
2. Nghiên cứu tính khả thi
3. Nghiên cứu khả năng kinh doanh
4. Lặp lại mô hình chức năng
5. Thiết kế và xây dựng
6. Thực hiện
7. Dự án hoàn tất

3.5. Feature Driven Development (FDD)

Phương pháp này tập trung vào các tính năng "thiết kế và xây dựng". Không giống như các phương thức Agile khác, FDD mô tả các giai đoạn công việc rất ngắn và cụ thể cần phải thực hiện cho từng tính năng. FDD phát triển sản phẩm bằng việc theo sát những mục tiêu sau

  1. Mô hình đối tượng tên miền
  2. Phát triển theo tính năng
  3. Sở hữu thành phần/lớp
  4. Nhóm tính năng
  5. Kiểm tra
  6. Quản lý cấu hình
  7. Xây dựng chung
  8. Hiển thị tiến độ và kết quả

3.6. Lean Software Development

Phương pháp phát triển phần mềm tinh gọn dựa trên nguyên tắc "Sản xuất tinh gọn" (đúng thời gian, đúng sản phẩm). Phương pháp này hướng tới mục tiêu tăng tốc độ phát triển phần mềm và giảm chi phí. Phát triển tinh gọn có thể được tóm tắt trong bảy bước sau:

  1. Loại bỏ dư thừa
  2. Khuếch trương việc học
  3. Trì hoãn cam kết (quyết định càng muộn càng tốt)
  4. Phát hành sớm
  5. Trao quyền cho nhóm
  6. Xây dựng tính toàn vẹn
  7. Tối ưu hóa toàn bộ

Nguồn tham khảo: https://www.guru99.com/agile-scrum-extreme-testing.html

0