5. Xếp hạng ưu tiên các yêu cầu
2.2.5. Kiểm tra và đảm bảo chất lợng phần mềm
Kiểm tra và đảm bảo chất lợng phần mềm là quá trình đánh giá xem chơng trình có phù hợp với những đặc tả yêu cầu và đáp ứng mong đợi của khách hàng không. Công việc này đợc tiến hành ở mọi công đoạn phát triển phần mềm : giai đoạn phân tích - xét duyệt đặc tả yêu cầu, giai đoạn thiết kế - xét duyệt đặc tả thiết kế, giai đoạn mã hoá - kiểm thử chơng trình. Qúa trình này phải đợc tiến hành thờng xuyên sau mỗi giai đoạn sản xuất phần mềm. Kiểm tra và đảm bảo chất lợng phần mềm bắt đầu từ khi đánh giá khảo sát yêu cầu ngời dùng đến khi thiết kế và lập trình và kết thúc khi kiểm thử phần mềm. Quá trình này liên quan đến hai mục đích khác nhau, đó là phần mềm đáp ứng nhu cầu khách hàng và quá trình sản xuất không có sai sót. Theo đó, giai đoạn này cũng đợc chia thành hai hoạt động riêng lẻ là kiểm thử phần mềm (software testing) nhằm tìm các sai sót trong khi vận hành chơng trình. Trong một số tài liệu khác, quá trình này đợc chia thành hai công việc là xác định (verification) đảm bảo phần mềm theo đúng đặc tả, thiết kế và tìm các lỗi lập trình và thẩm định (validation) để đảm bảo phần mềm đáp ứng nhu cầu ngời dùng, hoạt động hiệu quả và phát hiện các lỗi phân tích, lỗi thiết kế (lỗi mức cao) [18].
Kiểm tra phần mềm (software inspections)
Đặc tả
yêu cầu Thiết kế mức cao chi tiếtĐặc tả Thiết kế chi tiết Lập trình
Làm bản
mẫu Kiểm thử phần mềm (software testing)
2.2.5.1 Quá trình kiểm tra[26]
Quá trình kiểm tra đợc tiến hành ở mọi công đoạn phát triển của phần mềm và không thực hiện trên chơng trình.
Quá trình này đợc thực hiện theo các mức khác nhau bao gồm:
• Kiểm tra đơn vị (Unit test): đợc tiến hành cho mỗi đơn vị mã nhỏ nhất
đảm bảo chúng hoạt động tốt.
• Kiểm tra tích hợp (Subsystem integration test): kiểm tra mặt logic và
xử lý phù hợp của các khối, kiểm tra việc truyền tin giữa chúng.
• Kiểm tra hệ thống (System test): đánh giá xem các đặc tả chức năng có
đợc đáp ứng không, các thao tác giao diện có giống thiết kế không…
• Kiểm tra chấp thuận (Acceptance testing): đây là bớc kiểm tra cuối
cùng trớc khi phần mềm đợc đa vào sử dụng và thờng đợc tiến hành trên dữ liệu thực của khách hàng. Kiểm tra chấp thuận có thể phát hiện ra các lỗi bị bỏ qua trong các giai đoạn trớc do sự khác nhau giữa dữ liệu thực và dữ liệu kiểm tra.
Có hai kiểu chiến lợc kiểm tra đợc áp dụng bao gồm:
Kiểu thứ nhất: liên quan đến logic đợc kiểm tra nh thế nào trong ứng
dụng. Chiến lợc kiểm tra logic có thể là black - box hoặc white - box. Chiến lợc kiểm tra black - box cho rằng module liên quan đến đầu vào và đầu ra các chi tiết logic chi tiết đợc che dấu và không cần phân tích. Chiến lợc black - box có tính hớng dữ liệu. White - box hớng tới việc cho rằng logic đặc trng là quan trọng và cần phải kiểm tra. White - box đánh giá một vài hoặc tất cả mặt logic để kiểm tra đợc tính đúng đắn của chức năng. White - box hớng về logic (giải thuật).
quan tâm chiến lợc kiểm tra logic. Nó là top - down hoặc bottom - up. Top - down coi chơng trình chính là quan trọng nhất nên cần phải phát triển và kiểm tra trớc và tiếp tục trong quá trình phát triển. Bottom - up cho rằng các module và chơng trình riêng rẽ cần đợc kiểm tra trớc và sau đó đợc kết hợp lại để kiểm tra tổ hợp.
Các chiến lợc kiểm tra kể trên không loại trừ lẫn nhau, chúng có thể đợc sử dụng độc lập đồng thời nhằm phát hiện hết các lỗi tiềm ẩn.
2.2.5.2. Quá trình kiểm thử [18]
Quá trình kiểm thử này đợc thực hiện ngay trên chơng trình, cần có mã nguồn từ đó sẽ xác định đợc các lỗi lập trình, đánh giá đợc tính hiệu quả của phần mềm và đây cũng là cách duy nhất để kiểm tra các yêu cầu phi chức năng. Công việc này thờng do bộ phận kiểm thử (test) thực hiện bao gồm các công việc sau :
Tham gia phân tích yêu cầu của khách hàng Lập kế hoạch test
Xây dựng tiêu chuẩn nghiệm thu
Xây dựng hớng dẫn test (bản thiết kế test, kịch bản test) Thực hiện test
Hỗ trợ các vấn đề liên quan đến test Báo cáo và tổng hợp kết quả test Lập và lu các hồ sơ liên quan đến test
Thu thập, kiểm soát các dữ liệu liên quan đến các hoạt động test Tính toán, phân tích các chi tiêu liên quan đến các hoạt động test
Các bớc công việc của bộ phận Test đợc thực hiện song song với các bớc trong quá trình phát triển phần mềm (hình 2.10).