Mô hình Agile trong kiểm thử phần mềm

A.Phương pháp Agile: Mô hình Agile trong kiểm thử phần mềm là gì?

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

Phương pháp Agile có nghĩa là một phương pháp thực hành nhằm thúc đẩy sự lặp lại liên tục của quá trình phát triển và thử nghiệm trong suốt vòng đời phát triển phần mềm của dự án. Mô hình Agile trong kiểm thử phần mềm, cả hoạt động phát triển và kiểm thử đều diễn ra đồng thời, không giống như mô hình Waterfall.

2.Phát triển phần mềm Agile là gì?

Phương pháp luận phát triển phần mềm Agile là một trong những quy trình đơn giản và hiệu quả để biến tầm nhìn về nhu cầu kinh doanh thành các giải pháp phần mềm. Agile là một thuật ngữ được sử dụng để mô tả các phương pháp tiếp cận phát triển phần mềm sử dụng kế hoạch liên tục, học hỏi, cải tiến, hợp tác nhóm, phát triển tiến hóa và phân phối sớm. Nó khuyến khích các phản ứng linh hoạt để thay đổi.

3.Sự phát triển phần mềm nhanh nhẹn nhấn mạnh vào bốn giá trị cốt lõi.

  • Tương tác giữa cá nhân và nhóm thông qua các quy trình và công cụ
  • Phần mềm làm việc dựa trên tài liệu toàn diện
  • Sự hợp tác của khách hàng trong quá trình đàm phán hợp đồng
  • Đáp ứng sự thay đổi so với việc tuân theo kế hoạch

4.Mô hình Agile và  Mô hình thác nước (Waterfall)

Mô hình Agile và Waterfall là hai phương pháp khác nhau cho quá trình phát triển phần mềm. Mặc dù chúng khác nhau trong cách tiếp cận, nhưng cả hai phương pháp đều hữu ích , tùy thuộc vào yêu cầu và loại dự án chọn mô hình phù hợp.

 

Mô hình AgileMô hình thác nước
  • Định nghĩa phương pháp Agile: Các phương pháp Agile đề xuất cách tiếp cận tăng dần và lặp đi lặp lại đối với thiết kế phần mềm
  • Mô hình thác nước: Việc phát triển phần mềm tuần tự từ điểm bắt đầu đến điểm kết thúc.
  • Quy trình Agile trong kỹ thuật phần mềm được chia thành các mô hình riêng lẻ 
  • Quá trình thiết kế không được chia thành một mô hình riêng lẻ
  • Khách hàng có cơ hội sớm và thường xuyên xem sản phẩm và đưa ra quyết định cũng như thay đổi đối với dự án
  • Khách hàng chỉ có thể xem sản phẩm khi kết thúc dự án
  • Mô hình Agile được coi là không có cấu trúc so với mô hình thác nước
  • Mô hình thác nước an toàn hơn vì chúng được định hướng theo kế hoạch
  • Các dự án nhỏ có thể được thực hiện rất nhanh chóng. Đối với các dự án lớn, rất khó để ước tính thời gian phát triển.
  • Tất cả các loại dự án có thể được ước tính và hoàn thành.
  • Lỗi có thể được sửa ở giữa dự án.
  • Chỉ khi kết thúc, toàn bộ sản phẩm được kiểm tra. Nếu lỗi được tìm thấy hoặc bất kỳ thay đổi nào phải được thực hiện, dự án phải bắt đầu lại từ đầu
  • Quá trình phát triển là lặp đi lặp lại và dự án được thực hiện trong khoảng thời gian lặp lại ngắn (2-4) tuần. Lập kế hoạch ít.
  • Quá trình phát triển được diễn ra theo từng giai đoạn, và giai đoạn này lớn hơn nhiều so với quá trình lặp lại. Mỗi giai đoạn kết thúc với mô tả chi tiết của giai đoạn tiếp theo.
  • Tài liệu ít được ưu tiên hơn so với phát triển phần mềm
  • Tài liệu là ưu tiên hàng đầu và thậm chí có thể sử dụng để đào tạo nhân viên và nâng cấp phần mềm với nhóm khác
  • Mỗi lần lặp đều có giai đoạn thử nghiệm riêng. Nó cho phép thực hiện kiểm thử hồi quy mỗi khi các chức năng hoặc logic mới được phát hành.
  • Chỉ sau giai đoạn phát triển, giai đoạn thử nghiệm mới được thực hiện vì các bộ phận riêng biệt không hoạt động đầy đủ.
  • Trong thử nghiệm nhanh khi kết thúc lặp lại, các tính năng có thể thay đổi của sản phẩm sẽ được chuyển đến khách hàng. Các tính năng mới có thể sử dụng được ngay sau khi release. Nó rất hữu ích khi tiếp xúc với khách hàng.
  • Tất cả các tính năng được phát triển sẽ được phân phối cùng một lúc sau giai đoạn triển khai dài.
  • Người kiểm tra và nhà phát triển làm việc cùng nhau
  • Người kiểm tra làm việc riêng biệt với nhà phát triển
  • Vào cuối mỗi sprint, sự chấp nhận của người dùng được thực hiện
  • Sự chấp nhận của người dùng được thực hiện khi kết thúc dự án.
  • Nó yêu cầu giao tiếp chặt chẽ với các nhà phát triển và cùng nhau phân tích các yêu cầu và lập kế hoạch
  • Nhà phát triển không tham gia vào quá trình lập kế hoạch và yêu cầu. Thông thường, độ trễ thời gian giữa các lần kiểm tra và mã hóa

 

B.Agile Process

Kiểm tra quy trình phương pháp Agile dưới đây để cung cấp các hệ thống thành công một cách nhanh chóng.

Có nhiều phương pháp Agile khác nhau trong kiểm thử nhanh và những phương pháp đó được liệt kê bên dưới:

  1. Scrum

SCRUM là một phương pháp phát triển nhanh tập trung đặc biệt vào cách quản lý các nhiệm vụ trong môi trường phát triển dựa trên nhóm. Về cơ bản, Scrum có nguồn gốc từ hoạt động xảy ra trong một trận đấu bóng bầu dục. Scrum tin tưởng vào việc trao quyền cho nhóm phát triển và ủng hộ việc làm việc trong các nhóm nhỏ (ví dụ – 7 đến 9 thành viên). Agile và Scrum bao gồm ba vai trò và trách nhiệm của chúng được giải thích như sau:

 Scrum Master

  •  Scrum Master chịu trách nhiệm thiết lập nhóm, cuộc họp chạy nước rút và loại bỏ các trở ngại đối với tiến độ

Product owner

  • The Product Owner tạo product backlog, đánh giá độ ưu tiên của backlog và chịu trách nhiệm cung cấp chức năng ở mỗi lần lặp lại.

Scrum Team

  • Nhóm tự quản lý công việc của mình và tổ chức công việc để hoàn thành sprint hoặc cycle

Product Backlog

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

Scrum Practices

Các thực hành được mô tả chi tiết:

 

Quy trình kiểm tra scrum như sau:

  • Mỗi lần lặp lại của một scrum được gọi là Sprint
  • Product backlog là một danh sách nơi tất cả các chi tiết được nhập để có được sản phẩm cuối cùng
  • Trong mỗi Sprint, các câu chuyện người dùng hàng đầu về Product backlog được chọn và chuyển thành Sprint backlog
  • Nhóm làm việc trên sprint backlog đã xác định
  • Nhóm kiểm tra công việc hàng ngày
  • Vào cuối sprint, nhóm cung cấp chức năng sản phẩm

2. Extreme Programming (XP)

Kỹ thuật Extreme Programming rất hữu ích khi có nhu cầu hoặc yêu cầu thay đổi liên tục từ khách hàng hoặc khi họ không chắc chắn về chức năng của hệ thống. Nó ủng hộ việc “phát hành” sản phẩm thường xuyên trong các chu kỳ phát triển ngắn, điều này vốn giúp cải thiện năng suất của hệ thống và cũng giới thiệu một điểm kiểm tra nơi có thể dễ dàng thực hiện bất kỳ yêu cầu nào của khách hàng. XP phát triển phần mềm giữ khách hàng trong tầm ngắm.

Các yêu cầu nghiệp vụ được tập hợp dưới dạng các câu chuyện. Tất cả những câu chuyện đó được lưu trữ ở một nơi gọi là parking lot.

Trong loại phương pháp luận này, các bản phát hành dựa trên các chu kỳ ngắn hơn được gọi là Lặp lại với khoảng thời gian 14 ngày. Mỗi lần lặp lại bao gồm các giai đoạn như mã hóa, thử nghiệm đơn vị và thử nghiệm hệ thống, trong đó ở mỗi giai đoạn, một số chức năng nhỏ hoặc chính sẽ được xây dựng trong ứng dụng.

Các giai đoạn của lập trình eXtreme:

Có 6 giai đoạn có sẵn trong phương pháp Agile XP và chúng được giải thích như sau:

Planning
  • Identification of stakeholders and sponsors
  • Infrastructure Requirements
  • Security related information and gathering
  • Service Level Agreements and its conditions
Analysis
  • Capturing of Stories in Parking lot
  • Prioritize stories in Parking lot
  • Scrubbing of stories for estimation
  • Define Iteration SPAN(Time)
  • Resource planning for both Development and QA teams
Design
  • Break down of tasks
  • Test Scenario preparation for each task
  • Regression Automation Framework
Execution
  • Coding
  • Unit Testing
  • Execution of Manual test scenarios
  • Defect Report generation
  • Conversion of Manual to Automation regression test cases
  • Mid Iteration review
  • End of Iteration review
Wrapping
  • Small Releases
  • Regression Testing
  • Demos and reviews
  • Develop new stories based on the need
  • Process Improvements based on end of iteration review comments
Closure
  • Pilot Launch
  • Training
  • Production Launch
  • SLA Guarantee assurance
  • Review SOA strategy
  • Production Support

Có hai phân cảnh có sẵn để theo dõi công việc hàng ngày và chúng được liệt kê bên dưới để tham khảo.

  • Story Cardboard
    • Đây là một cách truyền thống để thu thập tất cả các câu chuyện trong một bảng dưới dạng ghi chú que để theo dõi các hoạt động XP hàng ngày. Vì hoạt động thủ công này đòi hỏi nhiều nỗ lực và thời gian hơn, nên tốt hơn là chuyển sang hình thức trực tuyến.
  • Online Storyboard
    • Online tool Storyboard có thể được sử dụng để lưu trữ stories. Several teams có thể sử dụng nó cho các mục đích khác nhau.

3. Crystal Methodologies

Phương pháp luận tinh thể dựa trên ba khái niệm

  1. Chartering: Các hoạt động khác nhau liên quan đến giai đoạn này là tạo nhóm phát triển, thực hiện phân tích tính khả thi sơ bộ, phát triển kế hoạch ban đầu và tinh chỉnh phương pháp phát triển
  2. Cyclic delivery: Giai đoạn phát triển chính bao gồm hai hoặc nhiều chu kỳ phân phối, trong đó
    1. Nhóm cập nhật và tinh chỉnh kế hoạch phát hành
    2. Triển khai một tập hợp con các yêu cầu thông qua một hoặc nhiều lần lặp lại tích hợp kiểm tra chương trình
    3. Sản phẩm tích hợp được chuyển đến tay người dùng thực
    4. Rà soát kế hoạch dự án và phương pháp phát triển được thông qua
  3. Wrap Up: Các hoạt động được thực hiện trong giai đoạn này là triển khai vào môi trường người dùng, đánh giá sau triển khai và phản ánh được thực hiện.

4. Dynamic Software Development Method (DSDM)

DSDM là cách tiếp cận  Rapid Application Development (RAD) để phát triển phần mềm và cung cấp một khung phân phối dự án nhanh. Khía cạnh quan trọng của DSDM là người dùng bắt buộc phải tham gia tích cực và các nhóm được trao quyền đưa ra quyết định. Việc phân phối sản phẩm thường xuyên trở thành tâm điểm tích cực với DSDM. Các kỹ thuật được sử dụng trong DSDM là

  1. Time Boxing
  2. MoSCoW Rules
  3. Prototyping

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

  1. Pre-project
  2. Feasibility Study
  3. Business Study
  4. Functional Model Iteration
  5. Design and build Iteration
  6. Implementation
  7. Post-project

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 pháp Agile khác trong kỹ thuật phần mềm, FDD mô tả các giai đoạn rất cụ thể và ngắn của công việc phải được thực hiện riêng biệt cho từng tính năng. Nó bao gồm domain walkthrough,design inspection, promote to build, code inspection và design. FDD phát triển sản phẩm tuân theo những điều trong mục tiêu

  1. Domain object Modeling
  2. Development by feature
  3. Component/ Class Ownership
  4. Feature Teams
  5. Inspections
  6. Configuration Management
  7. Regular Builds
  8. Visibility of progress and results

6. Lean Software Development

Lean software development method dựa trên nguyên tắc “Sản xuất đúng lúc”. Nó nhằm mục đích tăng tốc độ phát triển phần mềm và giảm chi phí. Lean development có thể được tóm tắt trong bảy bước.

  1. Eliminating Waste
  2. Amplifying learning
  3. Defer commitment (deciding as late as possible)
  4. Early delivery
  5. Empowering the team
  6. Building Integrity
  7. Optimize the whole

7. Kanban

Kanban ban đầu xuất phát từ từ tiếng Nhật có nghĩa là, một thẻ chứa tất cả thông tin cần thiết để thực hiện trên sản phẩm ở mỗi giai đoạn dọc theo con đường hoàn thành của nó. Khung hoặc phương pháp này được áp dụng khá phổ biến trong phương pháp kiểm thử phần mềm, đặc biệt là trong các khái niệm Agile.

C. So sánh Scrum và Kanban

ScrumKanban
  • Trong kỹ thuật scrum, test phải được chia nhỏ để chúng có thể được hoàn thành trong một sprint
  • Không có size cụ thể 
  • Quy định độ ưu tiên của backlog
  • Độ ưu tiên là tùy chọn
  • Scrum team cam kết thực hiện một lượng công việc cụ thể cho lần lặp lại
  • Cam kết là tùy chọn
  • Biểu đồ Burndown được quy định
  • Không có item size cụ thể nào được quy định
  • Giữa các sprint, scrum board được reset
  • Một bảng Kanban bền bỉ. Nó giới hạn số lượng mục trong trạng thái quy trình làm việc
  • Nó không thể thêm các mục vào khi iteration đang diễn ra
  • Nó có thể thêm item bất cứ khi nào có thể
  • WIP giới hạn gián tiếp
  • WIP giới hạn trực tiếp
  • Timebox được lặp lai theo thời gian quy đình
  • Timebox là tùy chọn

 

Agile metrics:

Các chỉ số có thể được thu thập để sử dụng Agile hiệu quả là:

  • Drag Factor
    • Nỗ lực trong nhiều giờ không đóng góp vào mục tiêu chạy nước rút
    • Drag factor có thể được cải thiện bằng cách giảm số lượng tài nguyên được chia sẻ, giảm số lượng công việc không hiệu quả
    • New estimates có thể được tăng theo tỷ lệ phần trăm của drag factor -New estimate= (Old estimate+drag factor)
  • Velocity
    • Số lượng backlog (user stories) được chuyển đổi thành chức năng có thể chuyển đổi của sprint
  • Không có Unit Tests nào được thêm vào
  • Khoảng thời gian cần thiết để hoàn thành bản build hàng ngày
  • Lỗi được phát hiện trong một lần lặp lại hoặc trong các lần lặp lại trước đó
  • Production defect leakage

 

Refer : https://www.guru99.com/agile-scrum-extreme-testing.html

 

 

 

Add a Comment

Scroll Up