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ì?
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 Agile | Mô hình thác nước |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
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
- 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
- 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 đó
- Nhóm cập nhật và tinh chỉnh kế hoạch phát hành
- 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
- Sản phẩm tích hợp được chuyển đến tay người dùng thực
- 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 đượ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à
- Time Boxing
- MoSCoW Rules
- Prototyping
Dự án DSDM bao gồm 7 giai đoạn
- Pre-project
- Feasibility Study
- Business Study
- Functional Model Iteration
- Design and build Iteration
- Implementation
- 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
- Domain object Modeling
- Development by feature
- Component/ Class Ownership
- Feature Teams
- Inspections
- Configuration Management
- Regular Builds
- 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.
- Eliminating Waste
- Amplifying learning
- Defer commitment (deciding as late as possible)
- Early delivery
- Empowering the team
- Building Integrity
- 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
Scrum | Kanban |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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