Bài giảng Công cụ kiểm thử phần mềm - Bài 7: Kiểm thử đơn vị
Áp dụng các kỹ thuật => các test case
Thực thi các test case
Viết code ???
Lớp Điểm, hàm tính khoảng cách
Hàm thực thi test case 1:
Khởi tạo điểm 1 => (0, 0)
Khởi tạo điểm 2 => (0, 2)
Gọi hàm tính khoảng cách giữa điểm 1 và điểm 2 => kết
quả thực tế
Kết quả mong đợi = 2
So sánh kết quả mong đợi và kết quả thực tế
Tùy vào kết quả so sánh, xuất ra pass, fail, error
Tương tự cho các test case khác
Tương tự cho lớp và hàm khác
Tại sao cần kiểm thử đơn vị
Đảm bảo chất lượng từng đơn vị mã nguồn
trong phần mềm
Phát hiện lỗi sớm và chỉnh sửa kịp thời

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Công cụ kiểm thử phần mềm - Bài 7: Kiểm thử đơn vị", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Công cụ kiểm thử phần mềm - Bài 7: Kiểm thử đơn vị
Kiểm thử đơn vị - Unit Testing
BM. Công nghệ phần mềm
Khoa. Công nghệ thông tin
Nội dung
1. Mở đầu
2. Giới thiệu
3. Tại sao cần kiểm thử đơn vị
4. Unit testing framework
5. Các bước thực hiện
6. Một số thuật ngữ
7. Mock Object
8. Demo
2
2/4/15 Công cụ kiểm thử phần mềm
1. Mở đầu
Hàm nh Hàm khởi
Hàm
khoảng cách tạo Hàm
m kiếm nh toán
???
Lớp Diem ???
Hàm khởi
tạo Lớp
Hàm nh Lớp
chu vi TamGiac
Hàm đúng hay sai???
Hàm nh ??? Hàm khởi
diện ch tạo
3
2/4/15 Công cụ kiểm thử phần mềm
1. Mở đầu
£ Áp dụng các kỹ thuật => các test case
£ Thực thi các test case
Hàm nh khoảng cách
Thực thi test case 1
Hàm nh Hàm khởi Thực thi test case 2
khoảng cách
tạo
Hàm khởi tạo
Lớp Diem Thực thi test case 1
Thực thi test case 2
Tương tự cho lớp TamGiac,
Chương trình có nhiều lớp, mỗi lớp nhiều hàm => thực thi bao
nhiêu lần??? 4
2/4/15 Công cụ kiểm thử phần mềm
1. Mở đầu
£ Viết code ???
£ Lớp Điểm, hàm tính khoảng cách
p Hàm thực thi test case 1:
¡ Khởi tạo điểm 1 => (0, 0)
¡ Khởi tạo điểm 2 => (0, 2)
¡ Gọi hàm tính khoảng cách giữa điểm 1 và điểm 2 => kết
quả thực tế
¡ Kết quả mong đợi = 2
¡ So sánh kết quả mong đợi và kết quả thực tế
¡ Tùy vào kết quả so sánh, xuất ra pass, fail, error
p Tương tự cho các test case khác
£ Tương tự cho lớp và hàm khác
5
2/4/15 Công cụ kiểm thử phần mềm
2. Giới thiệu
Hoàn thành Kiểm tra ứng Chỉnh sửa
ứng dụng dụng ứng dụng
Kiểm thử chấp nhận -
Acceptance Tes ng
Kiểm thử hệ thống -
System Tes ng
Kiểm thử ch hợp -
Integra on Tes ng
Kiểm thử đơn vị -
Unit Tes ng
6
2/4/15 Công cụ kiểm thử phần mềm
3. Tại sao cần kiểm thử đơn vị
£ Đảm bảo chất lượng từng đơn vị mã nguồn
trong phần mềm
£ Phát hiện lỗi sớm và chỉnh sửa kịp thời
£
7
2/4/15 Công cụ kiểm thử phần mềm
4. Unit testing framework
8
2/4/15 Công cụ kiểm thử phần mềm
4. Unit testing framework
£ Thư viện hỗ trợ - Script
£ Dữ liệu - Data driven
£ Thực thi - Run
£ Thống kê - Report
£ Các framework hỗ trợ cho từng ngôn ngữ lập
trình
p JUnit - java
p NUnit - .NET
p CPPUnit - C++
p PyUnit - Python
p
p xUnit
9
2/4/15 Công cụ kiểm thử phần mềm
5. Các bước thực hiện
Hàm nh Hàm
Hàm nh
khoảng cách Kiểm tra
diện ch
???
Thực thi hàm ???
kiểm tra
Hàm nh
chu vi
Hàm
Báo cáo
m kiếm
???
??? 10
2/4/15 Công cụ kiểm thử phần mềm
5. Các bước thực hiện
£ Hàm thực thi test case 1 của hàm tính khoảng
cách:
p Khởi tạo điểm 1 => (0, 0)
p Khởi tạo điểm 2 => (0, 2)
p Gọi hàm tính khoảng cách giữa điểm 1 và điểm 2
=> kết quả thực tế
p Kết quả mong đợi = 2
p So sánh kết quả mong đợi và kết quả thực tế
p Tùy vào kết quả so sánh, xuất ra pass, fail, error
11
2/4/15 Công cụ kiểm thử phần mềm
5. Các bước thực hiện
[TestClass]
public class TestDiem
{
[TestMethod]
public void TestKhoangCach()
{
Diem d1 = new Diem(0, 0);
Diem d2 = new Diem(0, 2);
double KQThucTe = d1.KhoangCach(d2);
double KQMongDoi = 2;
Assert.AreEqual(KQMongDoi, KQThucTe);
}
}
12
2/4/15 Công cụ kiểm thử phần mềm
6. Một số thuật ngữ
£ Kết quả của hàm kiểm thử
£ So sánh: Assert
£ Hàm khởi tạo và hủy
£ Dữ liệu – data driven
13
2/4/15 Công cụ kiểm thử phần mềm
6.1. Kết quả của hàm kiểm thử
£ Pass
£ Fail
£ Error
14
2/4/15 Công cụ kiểm thử phần mềm
6.2. So sánh: assert
£ Điều kiện đúng/sai (boolean)
isTrue(dieukien)
isFalse(dieukien)
£ Đối tượng tồn tại (NULL)
isNull(doituong)
isNotNull(doituong)
15
2/4/15 Công cụ kiểm thử phần mềm
6.2. So sánh: assert
£ Đối tượng giống nhau (same)
AreSame(MongDoi, ThucTe)
AreNotSame(MongDoi, ThucTe)
£ Đối tượng bằng (equal) Hocsinh 1 & hoc sinh 2
AreEqual(MongDoi, ThucTe) Nhanvien 1 & nhan vien 2
AreNoteEqual(MongDoi, ThucTe)
£ Số thực (sai số)
AreEqual(MongDoi, ThucTe, saiso)
16
2/4/15 Công cụ kiểm thử phần mềm
6.2. So sánh: assert
£ Mảng
p Số phần tử bằng nhau
p Mỗi phần tử bằng nhau
£ Kiểm thử ngoại lệ
try
{
exceptionCausingMethod();
// If this point is reached, the expected
// exception was not thrown.
fail("Exception should have occurred");
}
catch ( ExceptedTypeOfException exc )
{
String expected = "A suitable error message";
String actual = exc.getMessage();
Assert.assertEquals( expected, actual );
}
17
2/4/15 Công cụ kiểm thử phần mềm
6.3. Hàm khởi tạo và hủy
£ Chạy mỗi lần bắt đầu và kết thúc hàm
£ Chạy mỗi lần bắt đầu và kết thúc quá trình kiểm thử
£ Thứ tự gọi hàm
p Hàm khởi tạo lớp
p Hàm khởi tạo
p Hàm kiểm tra của hàm tính chu vi
p Hàm hủy
p Hàm khởi tạo
p Hàm kiểm tra của hàm tính diện tích
p Hàm hủy
p Hàm hủy lớp
18
2/4/15 Công cụ kiểm thử phần mềm
6.4. Data driven
£ Đọc dữ liệu trong quá trình kiểm thử.
£ Thực thi nhiều test case giống nhau.
19
2/4/15 Công cụ kiểm thử phần mềm
6.4. Data driven
20
2/4/15 Công cụ kiểm thử phần mềm
7. Mock object
£ Hàm thực thi test case 1 của hàm tính khoảng
cách:
p Khởi tạo điểm 1 => (0, 0)
p Khởi tạo điểm 2 => (0, 2)
p Gọi hàm tính khoảng cách giữa điểm 1 và điểm 2 =>
kết quả thực tế
p Kết quả mong đợi = 2
p So sánh kết quả mong đợi và kết quả thực tế
p Tùy vào kết quả so sánh, xuất ra pass, fail, error
=> Khó khăn trong quá trình khởi tạo đối
tượng
21
2/4/15 Công cụ kiểm thử phần mềm
7. Mock object
£ Mock object (MO): là đối tượng ảo
£ Mô phỏng các tính chất và hành vi giống hết như đối
tượng thực.
p Truyền vào lệnh đang vận hành nhằm kiểm tra
tính đúng đắn của các hoạt động bên trong.
22
2/4/15 Công cụ kiểm thử phần mềm
7.1. Thiết kế Mock Object
1. Đưa ra interface để mô tả đối tượng.
2. Viết nội dung cho đối tượng thực dựa trên interface.
3. Trích interface từ đối tượng thật và triển khai Mock
Object (MO) dựa trên interface đó
23
2/4/15 Công cụ kiểm thử phần mềm
7.1. Thiết kế Mock Object
Interface
Real Object Mock Object
Tested
Func on
24
2/4/15 Công cụ kiểm thử phần mềm
7.2 Cài đặt và sử dụng
£ Thêm tham chiếu tới thư viện chứa lớp
Mock Object
£ Ví dụ trong Nunit là: nuint.mocks
25
2/4/15 Công cụ kiểm thử phần mềm
Demo
£ NUnit
£ JUnit
26
2/4/15 Công cụ kiểm thử phần mềm
Thảo luận
27
2/4/15 Công cụ kiểm thử phần mềm File đính kèm:
bai_giang_cong_cu_kiem_thu_phan_mem_bai_7_kiem_thu_don_vi.pdf

