- Kiểm thử đơn vị có các nội dung:
+ Kiểm thử giao diện
+ Khám nghiệm cấu trúc dữ liệu cục bộ + Kiểm thử với các điều kiện biên + Các đường độc lập
+ Các đường xử lý sai
- Câu hỏi kiểm thử cho các nhân tố:
+ Tham số:
• Số lượng các tham số có bằng đối số hay không?
• Các tính chất của tham số và của đối số có đồng nhất không?
• Các đơn vị của tham số và của đối số có đồng nhất không?
• Số các đối số được truyền để gọi modul có bằng số các tham số hay không?
• Các thuộc tính của các đối được truyền để gọi modul có trùng với các thuộc
tính của các tham số hay không?
• Hệ thống đơn vị của các đối được truyền để gọi modul có trùng với hệ thống
đơn vị của các tham số hay không?
• Số thuộc tính và các cái khác của các đối của các hàm được định sẵn có đúng
đắn hay không?
• Mọi tham khảo liên quan tới các tham số hiện không kết hợp với đầu vào
• Các đối chỉ đọc đã được đổi chưa?
• Các định nghĩa biến toàn cục có như một trong suốt modul không?
• Các ràng buộc đã chuyển qua như là tham số chưa?
+ Vào ra: Khi một modul có thực hiện I/O ngoại lai thì phải tiến hành thêm:
• Tính chất của các file có đúng đắn hay không?
• Các câu lệnh OPEN/CLOSE có đúng đắn không?
• Đặc tả hình thức có đúng với các câu lệnh I/O?
• Cỡ của buffer có đúng với cỡ của bản ghi không?
• Các file có mở trước khi sử dụng không?
• Các điều kiện end-of-file có được xử lý?
• Các sai lầm I/O có được xử lý?
• Có sai văn bản nào trong thông tin ra?
+ Dữ liệu cục bộ: Cấu trúc dữ liệu cục bộ cho modul còn là nguồn gây lỗi chung. Vì thế nên thiết kế các kiểm thử để bóc trần các lỗi loại sau:
• Đánh máy không đúng hoặc không nhất quán.
• Giá trị ngầm định hoặc giá trị khởi thuỷ sai.
• Tên các biến không đúng (sai chữ hoặc mất chữ)
• Kiểu dữ liệu không nhất quán.
• Ngoại biệt về địa chỉ, underflow, overflow.
- Thủ tục tính toán: Các sai thường thấy về tính toán là:
• Hiểu lầm hoặc ưu tiên các phép tính số học không đúng.
• Các phép toán trộn mode.
• Khởi sự không đúng đắn.
• Sự không chính xác
- Dòng điều khiển: Sau việc so sánh thì các dòng điều khiển bị thay. Các ca kiểm thử cần bộc lộ các sai như:
• So sánh các kiểu dữ liệu khác nhau.
• Ưu tiên hoặc toán tử logic không đúng đắn.
• Dự đoán một đẳng thức, trong khi sai số làm cho đẳng thức không chắc có
thực.
• Các giá trị hoặc so sánh không đúng đắn.
• Không kết thúc vòng lặp hoặc kết thúc không chính xác.
• Khó thoát được khi tình cờ gặp sự lặp phân kỳ
• Các biến lặp bị cải biên không chính xác.
- Sai tiềm ẩn:
• Mô tả sai là khó hiểu
• Sai được ghi là không tương ứng với sai đã gặp
• Điều kiện sai gây ra bị hệ thống can thiệp trước khi xử lý sai
• Xử lý điều kiện ngoại lệ là không đúng đắn
• Mô tả sai là không cung cấp đủ thông tin để trợ giúp định vị nguyên nhân của
sai
Câu 66. Kỹ thuật kiểm thử đơn vị sử dụng là gì? vì sao phải sử dụng kỹ thuật đó? Có những khó khăn thuận lợi gì?
Kiểm thử đơn vị sử dụng các kỹ thuật:
- Kiểm thử đường cơ sở, kiểm thử vòng lặp: Vì các trường hợp kiểm thử nên được thiết kế để phát hiện ra lỗi do tính toán sai, so sánh sai hay luồn điều khiển không đúng. Đây là kỹ thuật hiệu quả để phát hiện một phạm vi rộng các lỗi
- Kiểm thử biên (nhiệm vụ cuối cùng, có lẽ là quan trọng nhất): Vì phần mềm thường thất bại tại các biên của chúng. Tức là lỗi thường xuất hiện khi phần tử thứ n của mảng n chiều được xử lý; khi lần lặp thứ i của chu trình với i bước được gọi, khi các giá trị tối thiểu hay tối đa cho pháp được gặp phải. Khó khăn: Các trường hợp kiểm thử chạy qua cấu trúc dữ liệu, luồng điều khiển và giá trị dữ liệu ngay dưới, ở tại và ngay trên cực đại và cực tiểu rất thường phát hiện ra lỗi.
d. Kiểm thử tích hợp
Câu 67. Kiểm thử tích hợp thực hiện khi nào? Tại sao phải kiểm thử tích hợp?
- Kiểm thử tích hợp là một kỹ thuật có tính hệ thống để xây dựng cấu trúc chương trình ngay khi đang tiến hành kiểm thử để phát hiện sai liên kết với giao diện. Kiểm thử tích hợp nhằm nhận được một phần hay toàn bộ hệ thống như mong đợi.
- Mục đích: tậndungj các modul đã kiểm thử đơn vị và xây dựng chương trình sao cho nó đảm bảo tuân theo thiết kế.
Phải kiểm thử tích hợp vì:
+ Dữ liệu có thể bị mất khi đi qua một giao diện
+ Một mođun có thể có một hiệu ứng bất lợi vô tình lên các modul khác
+ Các chức năng phụ khi kết hợp lại có thể không sinh ra chức năng chính mong muốn
+ Các điều không chính xác riêng rẽ có thể bị phóng đại đến mức không chấp nhận được.
+ Các cấu trúc dữ liệu toàn cục có thể để lộ ra các vấn đề…..
Câu 68. Có những phương pháp gì được áp dụng cho kiểm thử tích hợp? Mô tả tóm tắt nội dung mỗi phương pháp?
Các phương pháp áp dụng cho kiểm thử tích hợp: