2.1.1 Software Development and Software Testing

Trong bất kỳ mô hình vòng đời phát triển phần mềm nào, có một số đặc điểm của kiểm thử tốt:
• Đối với mỗi hoạt động phát triển, đều có một hoạt động kiểm thử tương ứng
• Mỗi cấp độ kiểm thử đều có mục tiêu kiểm thử cụ thể cho cấp độ đó
• Phân tích và thiết kế kiểm thử cho một cấp độ kiểm thử bắt đầu trong hoạt động phát triển tương ứng
• Người kiểm thử tham gia thảo luận để định nghĩa và làm rõ yêu cầu và thiết kế và được tham gia đánh giá các sản phẩm làm việc (ví dụ: yêu cầu, thiết kế, câu chuyện người dùng, v.v.) ngay khi các bản nháp có sẵn.
Bất kể mô hình vòng đời phát triển phần mềm nào được lựa chọn, các hoạt động kiểm thử nên bắt đầu ở các giai đoạn đầu của vòng đời, tuân thủ nguyên tắc kiểm thử sớm. Chương trình giảng dạy này phân loại các mô hình vòng đời phát triển phần mềm thông thường như sau: • Các mô hình phát triển tuần tự • Các mô hình phát triển lặp lại và tăng dần Một mô hình phát triển tuần tự mô tả quy trình phát triển phần mềm như một chuỗi hoạt động tuần tự. Điều này có nghĩa là bất kỳ giai đoạn nào trong quá trình phát triển đều nên bắt đầu khi giai đoạn trước đó hoàn thành. Lý thuyết, không có sự chồng chéo giữa các giai đoạn, nhưng trong thực tế, có lợi khi có phản hồi sớm từ giai đoạn tiếp theo. Trong mô hình Waterfall, các hoạt động phát triển (ví dụ: phân tích yêu cầu, thiết kế, mã hóa, kiểm thử) được hoàn thành theo thứ tự từng bước. Trong mô hình này, các hoạt động kiểm thử chỉ xảy ra sau khi tất cả các hoạt động phát triển khác đã hoàn thành. Khác với mô hình Waterfall, mô hình V tích hợp quy trình kiểm thử trong suốt quá trình phát triển, thực hiện nguyên tắc kiểm thử sớm. Hơn nữa, mô hình V bao gồm các cấp độ kiểm thử liên quan đến mỗi giai đoạn phát triển tương ứng, hỗ trợ thêm cho kiểm thử sớm hơn nữa (xem phần 2.2 để thảo luận về các cấp độ kiểm thử). Trong mô hình này, thực hiện các kiểm thử liên quan đến mỗi cấp độ kiểm thử theo thứ tự tuần tự, nhưng trong một số trường hợp, sự chồng chéo xảy ra. Các mô hình phát triển tuần tự cung cấp phần mềm chứa đầy đủ các tính năng, nhưng thường yêu cầu thời gian trong vài tháng hoặc năm để giao cho các bên liên quan và người sử dụng.
Mô hình phát triển có tính lặp lại và tăng dần mô tả quá trình phát triển phần mềm dưới dạng các chu kỳ phát triển nhỏ liên tiếp. Mỗi chu kỳ phát triển bao gồm các hoạt động giống như một mô hình phát triển tuần tự, nhưng được thực hiện một cách lặp lại và tăng dần cho đến khi sản phẩm hoàn thiện. Một ví dụ của mô hình này là mô hình Scrum, một mô hình phát triển phần mềm Agile phổ biến. Trong mô hình này, các yêu cầu được phân chia thành các sản phẩm giới hạn thời gian được gọi là Sprint, và mỗi Sprint bao gồm các hoạt động như lập kế hoạch, thiết kế, phát triển, kiểm thử và xem xét kết quả. Mỗi Sprint thường kéo dài từ 1 đến 4 tuần và kết thúc bằng việc giới thiệu các tính năng mới hoặc cải tiến cho sản phẩm. Các mô hình phát triển có tính lặp lại và tăng dần thường đem lại kết quả nhanh chóng hơn và cho phép phản hồi sớm từ người dùng và khách hàng. Tuy nhiên, chúng có thể gặp phải những thách thức khác nhau trong việc quản lý phát triển và kiểm thử sản phẩm.
