Kĩ thuật estimate trong kiểm thử phầm mềm
Estimate là một hoạt động trong việc quản lý dự án nhằm ước lượng bao lâu thì công việc có thể thoàn thành. Estimate effort là một trong những nhiệm vụ quan trọng nhất trong công tác quản lý dự án kiểm thử. Dưới đây là hai câu hỏi mà bạn có thể nhận được từ khách hàng khi thảo luận về kế hoạch ...
Estimate là một hoạt động trong việc quản lý dự án nhằm ước lượng bao lâu thì công việc có thể thoàn thành. Estimate effort là một trong những nhiệm vụ quan trọng nhất trong công tác quản lý dự án kiểm thử.
Dưới đây là hai câu hỏi mà bạn có thể nhận được từ khách hàng khi thảo luận về kế hoạch kiểm thử:
Đối với các dự án nhỏ, những câu hỏi này là tương đối dễ trả lời. Nhưng đối với các dự án lớn như ví dụ như kiểm thử website Guru99, phần mềm cho Ngân hàng thì không hề dễ dàng để trả lời những câu hỏi trên.
- Resource: Khái niệm resource bao gồm con người, thiết bị, cơ sở vật chất, kinh phí hoặc bất cứ điều gì khác cần thiết để hoàn thành một dự án
- Time: Thời gian là nguồn tài nguyên có giá trị nhất trong một dự án. Mỗi dự án đều có deadline delivery.
- Human Skill: các kỹ năng con người có nghĩa là kiến thức và kinh nghiệm của các thành viên trong nhóm. Một nhóm mà các thành viên có kỹ năng kiểm thử thấp sẽ mất nhiều thời gian để hoàn thành hơn so với một nhóm có kỹ năng kiểm thử cao.
- Cost: Chi phí là ngân sách dự án. Có nghĩa là cần bao nhiêu tiền để hoàn thành dự án.
Dưới đây là danh sách các kĩ thuật Estimate trong kiểm thử phần mềm:
- Work Breakdown Structure
- 3-Point Software Testing Estimation Technique
- Wideband Delphi technique
- Function Point/Testing Point Analysis
- Use – Case Point Method
- Percentage distribution
- Ad-hoc method
Chúng ta sẽ tìm hiểu các bước để estimate thông qua case study là phần mềm Guru99 Bank. Sau đây là 4 bước để estimate:
4.1. Bước 1: Chia các task chính thành các task nhỏ hơn
Kĩ thuật sử dụng: Work Breakdown Structure Chia các task chính thành các task nhỏ mà sau này các task đó sẽ được assign cho từng người cụ thể. Trong kỹ thuật này, một dự án phức tạp được chia thành các module. Các module được chia thành các sub-module. Mỗi sub-module được chia tiếp thành các function. Hiểu một cách đơn giản là phân chia toàn bộ dự án thành các task nhỏ nhất.
Sử dụng Work Breakdown Structure để chia task trong case study Guru99 Bank thành 5 task nhỏ hơn:
Sau đó chia nhỏ từng task thành các subtask. Mục đích của hoạt động này là tạo ra các task càng chi tiết càng tốt.
4.2 Bước 2: Phân bổ công việc cho các thành viên
4.3 Bước 3: Estimate effort cho từng task
Kĩ thuật sử dụng: Functional Point Method, Three Point Estimation
4.3.1 Sử dụng Functional Point Method
Thực hiện estimate size (kích cỡ) , duration (thời gian) , cost(chi phí) cho từng task:
Estimate size Ở Bước 1, bạn đã chia toàn bộ dự án thành các task nhỏ bằng cách sử dụng phương pháp WBS. Bây giờ bạn estimate size của các task. Size của task phụ thuộc vào size của function. Size của function phản ánh qua số lượng các công việc fucntion đó thực hiện được . Fucntion nào thực hiện càng nhiều công việc, function đó càng phức tạp. Trước khi bắt đầu estimate effort cho task, thì function được đánh giá vào 3 nhóm sau:
Dựa trên những phức tạp của các chức năng phần mềm, Test manager có thể tự định nghĩa weightage cho mỗi nhóm. Ví dụ:
Quay quay trở lại với case study Guru99 Bank. Website này được chia thành 12 function cùng với độ phức tạp như sau:
Estimate duration cho task
Sau khi xác định độ phức tạp của từng task, bạn sẽ estimate duration (thời gian) để thực hiện chúng.
- Total Effort: Tổng effort để kiểm tra hoàn toàn tất cả các chức năng của trang web
- Total Function Points: Tổng số module của trang web
- Estimate defined per Function Points: Effort trung bình để hoàn thành một function point. Giá trị này phụ thuộc vào năng suất của các thành viên.
Giả sử nhóm dự án của bạn đã estimate thời gian thực hiện 1 function point là 5 giờ / điểm. Bạn có thể estimate effort để kiểm thử tất cả các tính năng của trang web Guru99 Bank như sau:
Như vậy tổng effort cho case study Guru99 Bank là 170 man-hours, bạn có thể assign resource để xác định duration và cost Ví dụ ở trên cũng cho thấy tầm quan trọng của các member trong team của bạn. Nếu bạn có các member tài năng và giàu kinh nghiệm, bạn có thể hoàn thành nhiệm vụ được giao trong thời gian ngắn và dự án của bạn sẽ kết thúc đúng thời hạn hoặc sớm hơn.
Estimate cost cho tasks
Bước này sẽ giúp bạn trả lời các câu hỏi cuối cùng của khách hàng “How much does it cost?” Giả sử, bình quân lương nhóm của bạn là 5 mỗi giờ. Thời gian cần thiết kiểm thử toàn dự án là 170 giờ. Theo đó, chi phí cho các nhiệm vụ là 5 * 170 = 850
4.3.2 Three Point Estimation
Three Point Estimation là một trong những kỹ thuật được sử dụng để ước tính một task. Sự đơn giản của Three Point Estimation khiến nó trở thành một kĩ thuật hữu ích nhất trong estimate dự án. 3 value trong Three Point Estimation bao gồm:
Với case study Guru99 Bank ta sẽ thực hiện như sau:
- The best case : 120 man-hours (trong 15 ngày). Trong trường hợp này bạn cần một đội ngũ các member giỏi để thực hiện các task trong thời gian ngắn nhất
- The most likely case : 170 man-hours (trong 21 ngày). Đây là trường hợp bình thường, bạn có đủ nguồn lực để thực hiện
- The worst case : 200 man-hours (trong vòng 25 ngày). Bạn cần phải thực hiện nhiều công việc hơn vì thành viên trong nhóm của bạn không có kinh nghiệm.
Bây giờ, gán giá trị cho mỗi thông số như sau: a= 120 m= 170 b= 200
Effort tính bằng công thức double-triangular như sau: E= (a + 4m + b)/6 E= (120 + 4*170 + 200)/6 E= 166.6 man/hour trong đó E là Weighted Average, chính là estimation cho task của bạn.
Độ sai lệch: SD= (b-a)/6 SD= (200-120)/6 SD= 13.33 man/hours
4.4 Bước 4: Validate estimation
Khi bạn đã estimate bạn cần chuyển tiếp nó cho Ban quản lý, những người sẽ review và approve.
Các thành viên của Ban quản lý có thể bao gồm các giám đốc điều hành, quản lý dự án và các bên liên quan khác.Ban quản lý sẽ xem xét và thảo luận kế hoạch của bạn. Bạn có thể giải thích cho họ estimation của bạn một cách logic và hợp lý để họ có thể chấp thuận kế hoạch dự toán của bạn.
Một số tip để estimate hiệu quả:
- Thêm một khoảng thời gian dự phòng và nguồn lực dự phòng: Nhiều thứ không thể đoán trước có thể xảy ra với dự án của bạn, chẳng hạn như một thành viên chủ chốt trong team đột nhiên nghỉ việc hoặc nghỉ phép dài ngày, các task phải mất nhiều thời gian hơn so với ước tính để hoàn thành ... vv. Đó lý do tại sao bạn cần một khoảng thời gian dự phòng trong estimate của bạn để đối phó với bất kỳ sự chậm trễ có thể xảy ra.
- Sử dụng các kinh nghiệm quá khứ để tham khảo: Kinh nghiệm từ các dự án trước đây đóng một vai trò quan trọng trong khi chuẩn bị estimate. Bởi vì một số dự án có thể có một số điểm giống nhau, bạn có thể tái sử dụng các estimate trước đây. Ví dụ, nếu bạn sử dụng để làm một dự án như kiểm thử một trang web, bạn có thể học hỏi từ kinh nghiệm đó, hãy cố gắng tránh tất cả những khó khăn hay vấn đề mà đã phải đối mặt trong các dự án trong quá khứ.
- Bám sát vào estimate của bạn: Estimate có thể sai. Trong giai đoạn đầu của dự án, bạn nên thường xuyên kiểm tra lại estimate và thực hiện sửa đổi nếu cần thiết. Chúng ta không nên mở rộng estimate, trừ khi có những thay đổi lớn trong yêu cầu, hoặc bạn phải thương lượng với khách hàng về việc tái lập kế hoạch dự án
Bài viết được dịch từ nguồn: http://www.guru99.com/an-expert-view-on-test-estimation.html