b) Lập trình đơi
5.4 Quá trình thử nghiệm
Q trình thử nghiệm có thể chia làm các giai đoạn như sau:
• Thử nghiệm đơn vị: là bước thử nghiệm đối với từng chức năng (hàm) nhằm mục đích chính là phát hiện lỗi lập trình, thường sử dụng nhiều thử nghiệm cấu trúc.
• Thử nghiệm mơ đun: thử nghiệm mô đun (liên kết một số hàm)
• Thử nghiệm hệ con: nếu hệ thống bao gồm một số hệ con độc lập thì đây là bước tiến hành thử nghiệm với từng hệ con riêng biệt
• Thử nghiệm hệ thống (tích hợp): thử nghiệm sự hoạt động tổng thể hệ thống, kiểm tra tính đúng đắn của giao diện, tính đúng đắn với đặc tả, và tính dùng được. Chủ yếu sử dụng thử nghiệm chức năng.
• Thử nghiệm nghiệm thu (alpha): thử nghiệm được tiến hành bởi một nhóm nhỏ người sử dụng dưới sự hướng dẫn của người phát triển, sử dụng các dữ liệu thực, thẩm định tính dùng được của hệ thống.
• Thử nghiệm beta: là mở rộng của thử nghiệm alpha, được tiến hành với một số lớn người sử dụng khơng có sự hướng dẫn của người phát triển, kiểm tra tính ổn định, điểm tốt và không tốt của hệ thống.
Các bước thử nghiệm ban đầu nặng về kiểm tra lỗi lập trình (xác minh), các bước thử nghiệm cuối thiên về kiểm tra tính dùng được của hệ thống (thẩm định). Ngồi ra cịn một bước hay một khái niệm thử nghiệm khác được gọi là thử nghiệm quay lui. Thử nghiệm quay lui được tiến hành mỗi khi chúng ta sửa mã chương trình:
- Khi sửa lỗi
- Khi nâng cấp chương trình
5.4.1 Thử nghiệm gây áp lực
Đối với một số hệ thống quan trọng, người ta còn tiến hành thử nghiệm gây áp lực (stress testing). Đây là loại (bước) thử nghiệm được tiến hành khi đã có phiên bản làm việc, nhằm tìm hiểu hoạt động của hệ thống trong các trường hợp tải trọng lớn (dữ liệu lớn, số người sử dụng lớn, tài nguyên hạn chế...). Mục đích của thử nghiệm áp lực là
- Tìm hiểu giới hạn chịu tải của hệ thống
- Tìm hiểu về đặc trưng của hệ thống khi đạt và vượt giới hạn chịu tải (khi bị sụp đổ)
Ngồi ra thử nghiệm áp lực cịn nhằm xác định các trạng thái đặc biệt như tổ hợp một số điều kiện dẫn đến sự sụp đổ của hệ thống; tính an tồn của dữ liệu, của dịch vụ khi hệ thống sụp đổ.