4.1 Danh sách kiểm thử theo chức năng từng hàm
- DegreesToRadians: hàm chuyển đổi hệ số góc sang hệ số radians - AngleDist: hàm trả về hệ số góc đầu tiên khi bắt đầu chạm vẽ
4.2 Danh sách kiểm thử theo chức năng hệ thống
Các mã chức năng đã được đặt ở phần tài liệu đặc tả:
- F01: vẽ hình
- F04: di chuyển đối tượng
- F05: xóa đối tượng
- F06: tô màu viền
- F07: tô màu nền - F08: nhóm đối tượng - F09: rã nhóm đối tượng - F10: lưu tập tin - F11: đọc tập tin - F12: xuất tập tin ảnh - F13.1: undo - F13.2: redo
4.3 Chi tiết kiểm thử theo chức năng hệ thống
Kiểm thử theo từng đối tượng còn gọi là kiểm thử theo trường hợp sử dụng được kiểm thử theo use case. Mỗi trường hợp sử dụng của từng đối tượng sẽ có những ngũ cảnh giống nhau hoặc khác nhau, cần phải xét hết tất cả các trường hợp sử dụng để tiến hành kiểm thử, nhằm đảo bảo khả năng xảy ra lỗi là thấp nhất.
4.3.1 Kiểm thử Use case F01 – Vẽ hình
Mục tiêu: xác định tính đúng đắn của chức năng vẽ hình, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: người dùng khởi động ứng dụng -> chọn các nút vẽ để thực hiện chức năng vẽ hình.
Quan hệ phụ thuộc với các trường hợp (test case) khác: không có. Các yêu cầu đặc biệt: không có.
Test
case Kết nhập Kết xuất Kết quả
1 Chọn nút vẽ -> chạm lên vùng vẽ -> kéo thả hình -> bỏ chạm Hình vẽ được vẽ từ vị trí đầu đến vị trí bỏ chạm Thành công 2 Chọn nút vẽ -> chạm lên vùng vẽ -> kéo thả ra ngoài vùng vẽ - > bỏ chạm Hình vẽ được vẽ trong vùng vẽ đến biên của ngoài vùng bỏ chạm
Thành công
3
Chọn nút vẽ -> chạm lên vùng vẽ -> kéo thả ra ngoài vùng vẽ - > kéo thả trở lại trong vùng vẽ - > bỏ chạm
Hình vẽ vẫn được kéo thả thay đổi kích thước cho
dến khi bỏ chạm Thành công 4 Chọn nút vẽ -> chạm lên ngoài vùng vẽ -> kéo thả ngoài vùng vẽ -> bỏ chạm Hình vẽ không được vẽ, và đôi tượng không được khởi tạo
Thành công
5
Chọn nút vẽ -> chạm ngoài vùng vẽ -> kéo thả vào trong vùng vẽ -> bỏ chạm
Hình vẽ được vẽ từ biên ngoài vùng vẽ đến vị trí bỏ chạm trong vùng vẽ
Thành công
4.3.2 Kiểm thử Use case F02 – Nhập công thức
Mục tiêu: xác định tính đúng đắn của chức năng nhập công thức, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: người dùng khởi động ứng dụng -> chọn nút nhập công thức để thực hiện chức năng.
Quan hệ phụ thuộc với các trường hợp (test case) khác: không có. Các yêu cầu đặc biệt: không có.
Kết nhập/kết xuất:
Test
1 Chạm lên vùng vẽ Hiển thị trường văn bản và
con nháy để nhập Thành công
2 Chạm ngoài vùng vẽ Không hiển thị gì, đối
tượng không được khởi tạo Thành công 3 Chạm lên vùng vẽ -> kéo thả
trong vùng vẽ -> bỏ chạm
Hiển thị trường văn bản và
con nháy tại vị trí chạm Thành công 4 Chạm ngoài vùng vẽ -> kéo thả
vào trong vùng vẽ
Không hiển thị gì, đối
tượng không được khởi tạo Thành công 5 Chạm lên vùng vẽ -> kéo thả ra
ngoài vùng vẽ -> bỏ chạm
Hiển thị trường văn bản và
con nháy tại vị trí chạm Thành công
6
Chạm lên vùng vẽ -> kéo thả ra ngoài vùng vẽ -> kéo thả vào trong vùng vẽ -> bỏ chạm
Hiển thị trường văn bản và
con nháy tại vị trí chạm Thành công
4.3.3 Kiểm thử Use case F04 – di chuyển đối tượng
Mục tiêu: xác định tính đúng đắn của chức năng di chuyển đối tượng, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút di chuyển để thực hiện chức năng.
Quan hệ phụ thuộc với các trường hợp (test case) khác: Thực hiện Test case F01/F02 thành công.
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1
Chạm lên đối tượng đã được vẽ -> kéo thả đối tượng trong vùng vẽ -> bỏ chạm
Vị trí đối tượng thay đổi liên tục từ khi kéo thả và bỏ chạm
2
Chạm lên đối tượng đã được vẽ -> kéo thả đối tượng ra ngoài vùng vẽ -> bỏ chạm
Đối tượng chỉ di chuyển được đến vùng biên cũng của vùng vẽ
Thành công
3
Chạm lên đối tượng đã được vẽ -> kéo thả đối tượng ra ngoài vùng vẽ -> kéo thả vào bên trong vùng vẽ -> bỏ chạm
Vị trí đối tượng thay đổi liên tục từ khi kéo thả và
bỏ chạm Thành công
4.3.4 Kiểm thử Use case F05 – xóa đối tượng
Mục tiêu: xác định tính đúng đắn của chức năng xóa đối tượng, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút xóa để thực hiện chức năng.
Quan hệ phụ thuộc với các trường hợp (test case) khác: Thực hiện Test case F01/F02 thành công.
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 Chạm lên đối tượng đã được vẽ -> bỏ chạm
Đối tượng biến mất trong
vùng vẽ Thành công
2
Chạm lên vùng vẽ không có đối tượng nào -> bỏ chạm
Những đối tượng xung quanh không bị xóa, ứng dụng vẫn thực hiện chức năng khác
Thành công
3 Chạm ngoài vùng vẽ -> bỏ chạm
Các đối tượngt rong vùng
vẽ không bị xóa Thành công
Mục tiêu: xác định tính đúng đắn của chức năng tô màu viền, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút Border Color -> chọn màu để thực hiện chức năng.
Quan hệ phụ thuộc với các trường hợp (test case) khác: Thực hiện Test case F01/F02 thành công, có thể thực hiện cùng lúc với Test case F07
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 Chạm lên đối tượng đã được vẽ -> bỏ chạm
Màu viền của đối tượng
thay đổi Thành công
2
Chạm lên vùng vẽ không có đối tượng nào -> bỏ chạm
Những đối tượng xung quanh không bị thay đổi màu viền, ứng dụng vẫn thực hiện chức năng khác
Thành công
3 Chạm ngoài vùng vẽ -> bỏ chạm
Các đối tượng trong vùng
vẽ không bị thay đổi màu Thành công
4
Chạm lên vùng vẽ trong khi không có đối tượng nào -> bỏ chạm
Không phát sinh lỗi, ứng dụng vẫn tiếp tục thực hiện chức năng khác
Thành công
4.3.6 Kiểm thử Use case F07 – tô màu nền
Mục tiêu: xác định tính đúng đắn của chức năng tô màu nền, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút Fill Color -> màu trong bảng màu để thực hiện chức năng.
Quan hệ phụ thuộc với các trường hợp (test case) khác: Thực hiện Test case F01/F02 thành công, có thể thực hiện cùng lúc với Test case F06
Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 Chạm lên đối tượng đã được vẽ -> bỏ chạm
Màu nền của đối tượng
thay đổi Thành công
2
Chạm lên vùng vẽ không có đối tượng nào -> bỏ chạm
Những đối tượng xung quanh không bị thay đổi màu nền, ứng dụng vẫn thực hiện chức năng khác
Thành công
3 Chạm ngoài vùng vẽ -> bỏ chạm
Các đối tượng trong vùng
vẽ không bị thay đổi màu Thành công
4
Chạm lên vùng vẽ trong khi không có đối tượng nào -> bỏ chạm
Không phát sinh lỗi, ứng dụng vẫn tiếp tục thực hiện chức năng khác
Thành công
4.3.7 Kiểm thử Use case F08 – nhóm đối tượng
Mục tiêu: xác định tính đúng đắn của chức năng nhóm đối tượng, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút Group Object -> chọn đối tượng -> di chuyển đối tượng đến gần đối tượng khác -> hiện tracker của đối tượng đang di chuyển và các đối tượng gần kề -> cho các tracker chạm lên nhau.
Quan hệ phụ thuộc với các trường hợp (test case) khác: Thực hiện Test case F04 thành công.
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 2 tracker của 2 đối tượng trùng 2 cạnh liền kề của 2 đối
2 2 tracker của 2 đối tượng chưa trùng nhau -> bỏ chạm
2 đối tượng không bị nhóm
lại với nhau Thành công
3
Tracker của đối tượng trùng với tracker của 1 nhóm đối tượng - > bỏ chạm
Đối tượng được gọp và nhóm đối tượng từ tracker đó
Thành công
4.3.8 Kiểm thử Use case F09 – rã nhóm đối tượng
Mục tiêu: xác định tính đúng đắn của chức năng rã nhóm đối tượng, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút Ungroup Object -> chạm vào nhóm đối tượng.
Quan hệ phụ thuộc với các trường hợp (test case) khác: Thực hiện Test case F08 thành công.
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1
Bỏ chạm -> chạm bất cứ đối tượng trong nhóm được rã -> di chuyển
Các đối tượng bị thay đổi
vị trí Thành công
2 Chạm ngoài nhóm đối tượng -> bỏ chạm
Nhóm không bị rã
Thành công
4.3.9 Kiểm thử Use case F10 – lưu tập tin
Mục tiêu: xác định tính đúng đắn của chức năng lưu tập tin, phát hiện lỗi trong các trường hợp kiểm thử.
Quan hệ phụ thuộc với các trường hợp (test case) khác: không. Các yêu cầu đặc biệt: không có.
Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1
Thông tin những đối tượng đã được vẽ
Tập tin chứa thông tin logic của các đối tượng được vẽ Thành công 2 Chọn dường dẫn bị chặn quyền truy cập Báo lỗi Thành công
4.3.10Kiểm thử Use case F11 – đọc tập tin
Mục tiêu: xác định tính đúng đắn của chức năng đọc tập tin, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút Load File -> chọn vị trí đường dẫn -> chọn tập tin.
Quan hệ phụ thuộc với các trường hợp (test case) khác: F10 thực hiện thành công. Các yêu cầu đặc biệt: không có.
Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 Tập tin chứa thông tin những đối tượng đã được vẽ
Vẽ lại nội dung đã lưu
trước đó trong tập tin Thành công
2 Chọn tập tin không phù hợp Báo lỗi Thành công
Mục tiêu: xác định tính đúng đắn của chức năng xuất tập tin ảnh, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút Export -> chọn vị trí đường dẫn -> đặt tên tập tin. Quan hệ phụ thuộc với các trường hợp (test case) khác: không.
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 Những đối tượng trên vùng vẽ Hình ảnh của những đối
tượng như được vẽ Thành công 2 Chọn đường dẫn bị chặn quyền
truy cập
Báo lỗi
Thành công
4.3.12Kiểm thử Use case F13.1 – Undo
Mục tiêu: xác định tính đúng đắn của chức năng Undo, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút Undo.
Quan hệ phụ thuộc với các trường hợp (test case) khác: một trong các Use case F01/F02/F03/F04/F04/F06/F07/F08/F09/F14 thực hiện thành công.
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 Chọn với số lần nhỏ hơn sô lần thao tác từ lúc khởi động ứng
Trở về thao tác thay đổi
dụng 2 Chọn với số lần lớn hơn số lần thao tác từ lúc khởi động ứng dụng Trở về trạng thái khởi động ứng dụng Thành công
4.3.13Kiểm thử Use case F13.2 – Redo
Mục tiêu: xác định tính đúng đắn của chức năng Redo, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút Redo.
Quan hệ phụ thuộc với các trường hợp (test case) khác: Use case F13.1 thực hiện thành công.
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 Chọn với số lần nhỏ hơn số lần chọn nút Undo
Trở về thao tác thay đổi
liền sau Thành công
2 Chọn với số lần lớn hơn số lần chọn nút Undo
Trở về trạng thái khởi thao
tác cuối cùng Thành công
4.3.14Kiểm thử Use case F14 – Xoay hình
Mục tiêu: xác định tính đúng đắn của chức năng xoay hình, phát hiện lỗi trong các trường hợp kiểm thử.
Kịch bản: chọn nút xoay hình -> chạm vào hình vẽ -> kéo thả theo vòng tròn -> bỏ chạm.
Các yêu cầu đặc biệt: không có. Kết nhập/kết xuất:
Test
case Kết nhập Kết xuất Kết quả
1 Đối tượng được chọn Hình xoay theo chiều kéo
thả Thành công
2 Không có đối tượng được chọn Use case không hoạt động Thành công
4.4 Kết quả kiểm thử chức năng hệ thống:
Bảng 3-4-1: Kết quả kiểm thử chức năng hệ thống
STT Chức năng Số test
case Pass Fail
Thời gian
kiểm thử Kết luận
1 Vẽ hình 5 3 2 26/06/2015 Fail test case
thứ 2 và 3
2 Nhập công thức 6 6 0 26/06/2015 Pass
3 Di chuyển đối tượng 3 3 0 26/06/2015 Pass
4 Xóa đối tượng 3 3 0 26/06/2015 Pass
5 Tô màu viền 4 4 0 28/06/2015 Pass
6 Tô màu nền 4 4 0 28/06/2015 Pass
7 Nhóm đối tượng 3 3 0 28/06/2015 Pass
8 Rã nhóm đối tượng 2 2 0 28/06/2015 Pass
9 Lưu tập tin 2 2 0 29/06/2015 Pass
10 Đọc tập tin 2 2 0 29/06/2015 Pass
12 Undo 2 2 0 30/06/2015 Pass
13 Redo 2 2 0 30/06/2015 Pass
14 Xoay hình 2 2 0 30/06/2015 Pass
4.5 Chi tiết kiểm thử theo chức năng hàm
Kiểm thử các chức năng hàm của hàm đảm bảo dữ liệu không bị sai sót và xảy ra bất cứ lỗi nào, vì các hình vẽ phụ thuộc trực tiếp vào các hàm này. Để đảm bảo các hàm thực thi đúng đắn phải tiến hành kiểm thử bằng cách cho từng giá trị tham số đầu vào cho hàm, truyền giá trị trong phạm vi kiểu dữ liệu, vượt qua phạm vi, giới hạn trên và giới hạn dưới kiểu dữ liệu (biên trên/biên dưới dữ liệu).
Sử dụng công cụ kiểm thử Nunit để kiểm thử mã nguồn cho ngôn ngữ C# .NET. Khi kết quả kiểm thử là Failed đây được coi là một lỗi, vì thế nhà phát triển phải tiến hành sửa lỗi cho đến khi khắc phục được lỗi đó.
Chú giải kiểm thử:
- UTCIDxx: trường hợp kiểm thử thứ xx (với xx là số thứ tự tự nhiên)
- Error: lỗi phát sinh
- Type: kiểu tham số đầu vào (N : Normal – hợp lệ, A : Abnormal - không hợp lệ, B : Boundary – biên trên/dưới)
- Passed/Failed: chấp nhận/không chấp nhận
4.5.1 Kiểm thử hàm: DegreesToRadians
Giá trị đầu vào của hàm là kiểu số thực có miền giá trị cực lớn, cần phải kiểm tra nhiều miền giá trị khác nhau để phát hiên lỗi.
Bảng 3-4-2: Bảng kiểm thử chức năng hàm DegreesToRadians
UTCID01 UTCID02 UTCID03 UTCID04 UTCID05 UTCID06 UTCID07 UTCID08 đi ề u ki ệ n tiền điều kiện
tham số vào 1 degrees
25 O 0 O 1366 O 1.7 × 10308 O -1 O 1.7 × 10-308 - 1 O 1.7 × 10-308 O 1.7 × 10308 + 1 O kế t qu ả mong đ ợ i Trị trả về 0,436332313 O