Chương 1: Trình bày tổng quan về kiểm thử phần mềm - Chương 2: Nghiên cứu các kỹ thuật kiểm thử phần mềm nhúng - Chương 3: Tiến hành thực nghiệm kiểm thử phần mềm điều khiển chuẩn cho mô-đun flash của mạch MKL46Z256. z 8 CHƢƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM Chương này tôi tập trung tìm hiểu tổng quan về kiểm thử phần mềm, khái niệm, mục đích của kiểm thử phần mềm, quy trình kiểm thử phần mềm cơ bản, các mức kiểm thử phần mềm và một số chiến lược kiểm thử.1 Khái niệm kiểm thử phần mềm (Software Testing) Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm lỗi. [4] Kiểm thử phần mềm là một phần quan trọng tạo nên thành công của các dự án phần mềm, là khâu mấu chốt để đảm bảo chất lượng phần mềm, là đánh giá cuối cùng về các đặc tả, thiết kế và mã hóa. Có thể định nghĩa một cách dễ hiểu như sau: Kiểm thử phần mềm là quá trình chạy thử phần mềm hay một chức năng của phần mềm xem nó chạy đúng như mong muốn hay không.Việc kiểm tra này có thể thực hiện từng chặng, sau mỗi chức năng hoặc mô-đun được phát triển, hoặc thực hiện sau cùng, khi phần mềm đã được phát triển hoàn tất.
Trong quá trình phát triển phần mềm, những người phát triển phần mềm và các kỹ sư kiểm thử cùng làm việc để phát hiện lỗi và đảm bảo chất lượng sản phẩm. Một sản phẩm phần mềm được phân phối phải có đầy đủ các chức năng yêu cầu và tương thích với phần cứng của khách hàng.2 Mục đích của kiểm thử phần mềm Kiểm thử phần mềm nhằm vào hai mục đích chính là: Đưa ra những chứng nhận về chất lượng và phát hiện sửa lỗi phần mềm.Thiết kế kiểm thử là một trong những công cụ ngăn chặn lỗi tốt nhất được biết đến. Nó có thể phát hiện và loại bỏ lỗi tại mọi giai đoạn của quá trình thiết kế phần mềm, từ ý tưởng đến đặc tả, thiết kế, viết mã và phần còn lại.3 Quy trình kiểm thử phần mềm cơ bản Trước khi tìm hiểu một quy trình kiểm tra phần mềm cơ bản cần hiểu hai khái niệm sau: tình huống kiểm thử (Test Case) và kịch bản kiểm thử (Test Script).1 Tình huống kiểm thử (Test Case) Khi lập trình một phần mềm hay bất kỳ một cái gì thì việc dự đoán trước các tình huống xảy ra cho chương trình đó là rất quan trọng. Vì thế khi viết chương trình người kiểm thửviên thường viết trước các tình huống kiểm thử để dự đoán các trường hợp.
Một tình huống kiểm thử có thể coi nôm na là một tình huống kiểm tra, được thiết kế để kiểm thử một đối tượng có thỏa mãn yêu cầu đặt ra hay không. Một tình huống kiểm thử thường bao gồm ba phần cơ bản: Mô tả: Đặc tả các điều kiện cần có để tiến hành kiểm thử. Nhập: Đặc tả đối tượng hay dữ liệu cần thiết được sử dụng làm đầu vào để thực hiện việc kiểm thử. z 9 Kết quả mong chờ: Kết quả trả về từ đối tượng kiểm thử chứng tỏ đối tượng đạt yêu cầu.
Tình huống kiểm thử càng nhiều độ tin tưởng càng cao chất lượng công việc càng tốt.2 Kịch bản kiểm thử (Test Script) Một kịch bản kiểm thử là một nhóm mã lệnh dạng đặc tả kịch bản dùng để tự động hóa một trình tự kiểm thử, giúp cho việc kiểm thử nhanh hơn hoặc cho những trường hợp mà kiểm thử bằng tay sẽ rất khó khăn hoặc không khả thi. Các kịch bản kiểm thử có thể tạo thủ công hoặc tạo tự động dùng công cụ kiểm thử tự động.3 Quy trình kiểm thử phần mềm Những hành động chính trong quy trình kiểm thử phần mềm gồm: Thực hiện kiểm thử Lập kế Thiết kế Phát triển hoạch kiểm thử kịch bản kiểm thử Đánh giá Hình 1. 1: Một quy trình kiểm thử phần mềm cơ bản 1.1 Lập kế hoạch kiểm thử Lập kế hoạch kiểm thử là để chỉ ra các loại kiểm thử, chiến lược kiểm thử thậm chí là cả thời gian và xác định lực lượng kiểm thử viên cho dự án cần kiểm thử. Kết quả của bước lập kế hoạch kiểm thử là bản tài liệu về kế hoạch kiểm thử phần mềm Bản kế hoạch này có thể coi là bản kếhoạch chính trong đó có tất cả các kế hoạch chi tiết cho các mức kiểm thửnhư kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận … và các chiến lượng kiểm thửnhư kiểm thử hộp đen, kiểm thử hộp trắng, kiểm thử hộp xám đều được đề cập.
Dự án Chuyển giao cho bắt đầu Các thời điểm lập kế hoạch kiểm thử khách hàng Yêu cầu Thiết kế Viết Code Kiểm tra Bổ sung Kế hoạch kiểm thử chính (Master test plan) Kế hoạch kiểm thử chấp nhận (Acceptance test plan) Kế hoạch kiểm thử hệ thống (System test plan) Kế hoạch kiểm thử tích hợp (Integration test plan) Kế hoạch kiểm thử đơn vị (Unit test plan) Hình 1. 2: Thời điểm phù hợp để thiết lập các kế hoạch kiểm thử z 10 Các bước trong việclập kế hoạch kiểm thử gồm: Xác định yêu cầu kiểm thử: xác định rõ các mô-đun, thành phần của phần mềm cần được kiểm thử, chỉ rõ phạm vi hoặc giới hạn của việc kiểm thử.Các yêu cầu chức năng, phi chức năng của phần mềm cần kiểm thử. Khảo sát rủi ro: Xác định và đánh giá ảnh hưởng của các rủi ro có khả năng xảy ra lên dự án như ảnh hưởng đến thời gian, chất lượng, chi phí kiểm thử phần mềm. Xác định chiến lược kiểm thử: Chỉ rõ chiến lược sử dụng để thực hiện kiểm thử phần mềm, các kỹ thuật thiết kế tình huống kiểm thử, các công cụ hỗ trợ kiểm thử nếu có.
Các phương pháp đánh giá chất lượng kiểm thử cũng như điều kiện để xác định thời gian kiểm thử. Xác định nhân lực, vật lực: Xác định số lượng kiểm thử viên cần thiết dựa vào kỹ năng, kinh nghiệm của kiểm thử viên. Chỉ rõ các yêu cầu về phần cứng, phần mềm, công cụ … cần thiết cho việc kiểm thử. Lập kế hoạch chi tiết: Tính toán ước lượng thời gian thực hiện và hoàn thành kiểm thử.
Xác định khối lượng công việc, chi tiết các phần công việc, thời gian cho từng kiểm thử viên Tổng hợp và tạo các bản kế hoạch kiểm thử: Bản kế hoạch chung của dự án và bản kế hoạch chi tiết thực hiện kiểm thử. Xem xét các kế hoạch kiểm thử: Sau khi có được bản kế hoạch kiểm thử phải có sự tham gia của tất cả những người liên quan để xem xét, đánh giá nhằm bảo đảm các kế hoạch là khả thi, cũng như để phát hiện và sửa chữa các sai sót trong bản kế hoạch.2 Thiết kế kiểm thử Việc thiết kế kiểm thử là để xây dựng các tình huống kiểm thử (Test Case), mô tả chi tiết từng tình huống, xác định các yêu cầu đầu vào và đầu ra mong đợi của từng tình huống kiểm thử. Sau khi có được kế hoạch kiểm thử thì việc thiết kế kiểm thử là việc rất quan trọng vì việc xây dựng các tình huống kiểm thử cần đảm bảo “quét” hết tất cả các yêu cầu cần kiểm thử. Vì vậy vệc thiết kế kiểm thử không chỉ làm một lần,nó sẽ được sửa chữa, cập nhật, thêm hoặc bớt xuyên suốt chu kỳ phần mềm, vào bất cứ lúc nào có sự thay đổi yêu cầu hoặc sau khi phân tích thấy cần được sửa chữa hoặc bổ sung.
Các bước thiết kế kiểm thử bao gồm: Xác định và mô tả tình huống kiểm thử: Xác định, mô tả các điều kiện cần thiết lập trước và trong lúc kiểm thử. Mô tả đối tượng hoặc dữ liệu đầu vào, mô tả các kết quả đầu ra mong đợi sau khi kiểm thử. Mô tả các bước chi tiết để kiểm thử: Mô tả chi tiết các bước của một tình huống kiểm thử để dễ dàng cho việc viết mã nguồn kiểm thử và thực hiện kiểm thử. Thao tác này cũng chỉ định các loại dữ liệu nào cần có để thực z 11 thi các tình huống kiểm thử chúng bao gồm các loại dữ liệu trực tiếp, gián tiếp, trung gian, hệ thống… Xem xét và khảo sát độ bao phủ của việc kiểm thử: mô tả các chỉ số và cách thức xác định việc kiểm thử đã hoàn thành hay chưa, bao nhiêu phần trăm phần mềm đã được kiểm thử.
Để xác định được điều này có hai phương pháp: căn cứ trên yêu cầu của phần mềm hoặc căn cứ trên số lượng tình huống kiểm thử và mã nguồn đã viết. Xem xét tình huống kiểm thử và các bước kiểm thử: Nhằm đảm bảo các tình huống kiểm thử và dữ liệu yêu cầu là đủ, phản ánh đúng các yêu cầu cần kiểm thử, độ bao phủ đạt yêu cầu cũng như để phát hiện và sửa chữa các sai sót.3 Phát triển kịch bản kiểm thử Việc phát triển các kịch bản kiểm thử giúp tự động hóa việc thực thi các bước kiểm thử đã định nghĩa ở bước thiết kế kiểm thử. Bước này thường không bắt buộc trong các loại và các mức kiểm thử. Các bước phát triển kịch bản kiểm thử: Tạo kịch bản kiểm thử: Làm thủ công hoặc dùng công cụ hỗ trợ để phát sinh các kịch bản một cách tự động.
Các kịch bản kiểm thử có khả năng tái sử dụng càng nhiều càng tốt để tối ưu hóa công việc. Kiểm thử các kịch bản: Xem có “chạy” tốt không nhằm đảm bảo các kịch bản kiểm thử hoạt động đúng yêu cầu, thể hiện đúng ý đồ của các bước kiểm thử. Thành lập các bộ dữ liệu ngoài dành cho các kịch bản kiểm thử: Bộ dữ liệu này sẽ được các kịch bản kiểm thử sử dụng khi thực hiện kiểm thử tự động. Xem xét và khảo sát độ bao phủ của việc kiểm thử: Bảo đảm các kịch bản kiểm thử được tạo ra bao phủ toàn bộ các bước kiểm thử theo yêu cầu.4 Thực hiện kiểm thử Thực hiện các bước kiểm thử đã thiết kế (hoặc thi hành các kịch bản kiểm thử nếu tiến hành tự động) và ghi nhận kết quả.
Các bước thực hiện kiểm thử: Thực hiện các bước kiểm thử: Thao tácđầu tiên cần làm là xác lập, khởi động môi trường và điều kiện kiểm thử. Việc này nhằm bảo đảm tất cả các bộ phận liên quan đã được cài đặt sẵn sàng trước khi bắt đầu kiểm thử. Đánh giá quá trình kiểm thử: Giám sát quá trình kiểm thử đến khi hoàn thành hay bị treo và dừng giữa chừng, có cần bổ sung hay sửa chữa gì không để quá trình kiểm thử được tốt hơn.