Tải bản đầy đủ (.pdf) (72 trang)

Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 4

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.05 MB, 72 trang )

KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM

1 Các nguyên lý

2 Vòng đời

Chương 4

3 Kỹ thuật kiểm thử

4 Kiểm thử chức năng 5. Kiểm thử cấu trúc 6 Quản lý chất lượng

KIỂM THỬ CHỨC NĂNG
1


Kiểm thử chức năng
1

2

3

4

5

6

Kiểm thử phần mềm


Nội dung
Phân lớp tương đương
Phân tích giá trị biên
Đồ thị nhân quả - bảng quyết định
Đốn lỗi
Kiểm thử dựa trên mơ hình

2


Kỹ thuật phân lớp tương đương
Các test case kích hoạt thành phần phần mềm (TPPM)
thực hiện cùng một hành vi nhóm vào 1 nhóm (họ) 
gọi là 1 lớp tương đương
Mỗi nhóm chỉ định 1 test case đại diện và dùng test
case để kiểm thử thành phần phần mềm
Nếu test case trong lớp tương đương gây lỗi thành
phần phần mềm thì các test case khác cũng sẽ gây ra
lỗi như vậy và ngược lại

3


Ví dụ: TPPM “quản lý nguồn nhân lực” với đặc tả chức năng: mỗi
lần nhận hồ sơ xin việc, TPPM sẽ ra quyết định
• Phân tích đặc tả chức năng ta sẽ
thấy có 4 lớp tương đương, mỗi lớp
chứa các test case ứng với chế độ
xử lý của TPPM: không thuê vì quá
trẻ, thuê bán thời gian, thuê toàn

thời gian, không thuê vì quá già.

Tuổi ƯV

Kết quả

>=0 &&<16

Không thuê

>=16&&<18

Thuê dạng bán thời
gian

>=18 && <55

Th toàn thời gian

>=55 && <=99

Khơng th

• Định nghĩa test case đại diện cho
mỗi lớp:
1. Testcase 1 : {Input : 2 tuổi, Output : không thuê}
2. Testcase 2 : {Input : 17 tuổi, Output : thuê bán thời gian}
3. Testcase 3 : {Input : 35 tuổi, Output : thuê toàn thời gian}
4. Testcase 4 : {Input : 90 tuổi, Output : không thuê}
4



Ví dụ quản lý nguồn nhân lực….
Thay vì vét cạn 100 trường hợp  giảm còn 4 trường hợp
Ta hy vọng chất lượng kiểm thử không bị giảm sút vì bình
thường code là:
if (applicantAge >= 0 && applicantAge <16) qd ="NO";
if (applicantAge >= 16 && applicantAge <18) qd ="PART";
if (applicantAge >= 18 && applicantAge <55) qd ="FULL";
if (applicantAge >=55 && applicantAge <=99) qd ="NO";
Tuy nhiên cá biệt nếu code tồi:
if (applicantAge == 0) qd ="NO"; …
if (applicantAge == 16) qd ="PART"; …
if (applicantAge == 53) qd ="FULL"; …
if (applicantAge == 99) qd ="NO"; …

5


Lựa chọn test case cho lớp đại diện
tương đương?
Nếu lớp tương ₫ương ₫ược xác định bởi các dữ liệu nhập là số thực 
liên tục, thì ta chọn 1 testcase ₫ại diện có giá trị nhập hợp lệ nằm 
trong khoảng liên tục các giá trị hợp lệ, và nếu muốn, 2 testcase 
miêu tả giá trị khơng hợp lệ nằm phía dưới và phía trên khoảng giá 
trị hợp lệ (số testcase cho mỗi lớp tương ₫ương là từ 1 tới 3).
Nếu lớp tương ₫ương ₫ược xác ₫ịnh bởi các dữ liệu nhập là số 
ngun liên tục, trong trường hợp này ta chọn 1 testcase ₫ại diện có 
giá trị nhập hợp lệ nằm trong khoảng liên tục các giá trị hợp lệ, và 
nếu muốn, 2 testcase miêu tả giá trị khơng hợp lệ nằm phía dưới và 

phía trên khoảng trị hợp lệ (số testcase cho mỗi lớp tương ₫ương là 
từ 1 tới 3).
6


Lựa chọn test case cho lớp đại diện
tương đương?
Nếu lớp tương ₫ương ₫ược xác ₫ịnh bởi các dữ liệu dạng liệt kê rời rạc và
khơng có mối quan hệ lẫn nhau gồm 1 trị hợp lệ và nhiều trị không hợp lệ.
Trong trường hợp này ta chọn 1 testcase có giá trị nhập hợp lệ và nếu muốn,
2 testcase miêu tả 2 giá trị khơng hợp lệ nào ₫ó, nhưng cho dù chọn 2
testcase nào cũng không ₫ại diện tốt cho các trường hợp khơng hợp lệ cịn
lại (số testcase cho mỗi lớp tương ₫ương là từ 1 tới 3).
Nếu lớp tương ₫ương ₫ược xác ₫ịnh bởi các dữ liệu dạng liệt kê rời rạc và
khơng có mối quan hệ lẫn nhau gồm n trị hợp lệ và m trị không hợp lệ. Trong
trường hợp này ta chọn 1 testcase có giá trị nhập hợp lệ nào ₫ó và nếu
muốn, 2 testcase miêu tả 2 giá trị không hợp lệ nào ₫ó, nhưng cho dù chọn
các testcase nào cũng -10 1 2 3 4 5 6 7 8 không ₫ại diện tốt cho các trường
hợp hợp lệ và không hợp lệ còn lại (số testcase cho mỗi lớp tương ₫ương là
từ 1 tới 3).
7


Bài tập

8


Ưu nhược điểm
Ưu điểm: vì mỗi vùng của lớp tương đương ta

chỉ cần kiểm thử trên các phần tử đại diện nên
số lượng test case giảm đi khá nhiều, thời
gian kiểm thử cũng giảm đáng kể. Có thể áp
dụng phân vùng tương đương cho cả miền
đầu vào và đầu ra nên khả năng dự đốn lỗi
tốt
Nhược điểm: có thể thiếu lỗi ở biên vì chỉ
chọn 1 giá trị đại diện ở khoảng giữa của miền
tương đương


Kiểm thử chức năng
1

2

3

4

5

6

Kiểm thử phần mềm

Nội dung
Phân lớp tương đương
Phân tích giá trị biên
Đồ thị nhân quả - bảng quyết định

Đốn lỗi
Kiểm thử dựa trên mơ hình

10


Phân tích giá trị biên (Boundary value
analysis – BVA)
Nguyên lý: Các chương trình có thể coi là một hàm
(toán học):
- Các đầu vào của chương trình là miền xác định của hàm
- Các đầu ra là miền giá trị của hàm

Mục tiêu: sử dụng kiến thức về hàm để xác định các
ca kiểm thử. Trước kia chủ yếu tập trung vào miền
xác định, nhưng nay đã dựa trên cả miền giá trị của
hàm để xác định ca kiểm thử
Nội dung: tập trung phân tích các giá trị biên của
miền dữ liệu để xây dựng dữ liệu kiểm thử
BVA là kỹ thuật kiểm thử hàm phổ biến nhất
11


Nguyên tắc chọn dữ liệu thử
Nguyên tắc chung: kiểm thử các dữ liệu vào gồm:
- Giá trị nhỏ nhất
- Giá trị gần kề với giá trị nhỏ nhất
- Giá trị lớn nhất
- Giá trị gần kề với giá trị lớn nhất
- Giá trị bình thường

Nếu dữ liệu vào thuộc một khoảng, chọn
- 2 giá trị biên
- 4 giá trị = 2 giá trị biên±sai số nhỏ nhất
Nếu giá trị thuộc vào danh sách các giá trị, chọn: Phần tử thứ nhất,
phần tử thứ 2, phần tử kế cuối và phần tử cuối
Nếu dữ liệu vào là điều kiện ràng buộc số giá trị, chọn: số giá trị tối
thiểu, số giá trị tối đa và một số giá trị không hợp lệ
Tự vận dụng khả năng và thực tế để chọn các giá trị cần kiểm thử

12


VD Miền giá trị

13


Phân tích giá trị biên…
BVA tập trung vào biên của miền xác định để
xây dựng các ca kiểm thử. Lý do là lỗi thường
xuất hiện ở gần các giá trị biên này
Các ngôn ngữ không có kiểm tra kiểu mạnh
càng cần kiểm thử các giá trị biên (javascript,
php, Visual Basic)

14


Đầu vào của chương trình hợp lệ P
Giả sử chương trình P nhận 2 biến đầu vào là x1 và x2 thỏa mãn

a≤x1≤b và c ≤x2≤d
P(x1,x2) thỏa mãn a≤x1≤b và c ≤x2≤d
Chương trình nhận n đầu vào sẽ có không gian n chiều

15


Phân tích giá trị biên sẽ chọn
a <= x1 <=b
c <= x2 <=d

thì sẽ chọn a, a+1, (a+b)/2, b-1, b.
thì sẽ chọn c, c+1, (c+d)/2, d-1, d.

16


Giả thuyết khiếm khuyết đơn
BVA dựa trên nguyên lý giả định khiếm khuyết đơn:
“Hỏng hóc xẩy ra hiếm khi do hai (hoặc hơn) khiếm khuyết cùng
xẩy ra”
Do đó các ca kiểm thử theo phương pháp này được tạo bằng
việc lấy các giá trị bình thường của các chiều/ biến rồi lần thay
đổi mỗi chiều bằng các giá trị cực trị như trên
Các ca kiểm thử theo phân tích giá trị biên
T = {
x2min>, x2min+>, <x1nom, x2nom>, x2max->,

<x1nom, x2max+>, <x1min, x2nom>,
< 1min+, x2nom>, <x1max-, x2nom>,
<x1max, x2nom> }
17


VD các ca kiểm thử cho độ dài 3 cạnh hợp lệ tam giác
Case#

A

B

C

Đầu ra mong đợi

1

100

100

1

Cân

2

100


100

2

Cân

3

100

100

100

Đều

4

100

100

199

Cân

5

100


100

200

Không phải tam giác

6

100

1

100

Cân

7

100

2

100

Cân

8

100


100

100

Đều

9

100

199

100

Cân

10

100

200

100

Không phải tam giác

11

1


100

100

Cân

12

2

100

100

Cân

13

100

100

100

Đều

14

199


100

100

Cân

15

200

100

100

Không phải tam giác

18


Tổng quát hóa BVA
Có hai cách tổng quát hóa BVA
- Theo số biến sẽ có (4n+1) ca kiểm thử cho n
biến
- Theo loại khoảng của biến
• Phụ tḥc vào ngơn ngữ lập trình
• Tính rời rạc của biến
• Tính rời rạc khơng bị chặn (khơng có cận trên và




cận dưới rõ ràng)
Biến logic
19


Hạn chế của BVA
BVA hiệu quả với các chương trình có các
đầu vào độc lập với nhau và biểu diễn đại
lượng vật lý bị chặn
BVA lấy các ca kiểm thử mà không tính đến
chức năng của hàm, hay ý nghĩa của các biến

20


Kiểm thử biên mạnh
Kiểm thử biên mạnh
(robustness testing) là một
mở rộng đơn giản của BVA
Ngoài năm giá trị biên bổ
sung thêm 2 giá trị ngoài biên
- Giá trị ngay trên giá trị cực đại
max+
- Và giá trị ngay dưới giá trị cực
tiểu min-

Mục đích chính là xem
chương trình có kiểm tra giá
trị hợp lệ của đầu vào không


21


Kiểm thử biên tổ hợp
Điều gì xẩy ra khi nhiều hơn 1 biến nhận các giá trị (gần) cực trị
Khi các biến có tương tác với nhau thì cần kiểm tra các bộ giá trị
kết hợp các cực trị này

22


Kiểm thử giá trị đặc biệt
Kiểm thử giá trị đặc biệt là phương pháp được thực
hiện nhiều nhất trong thực tế, nó cũng trực quan nhất
và không có dạng cố định nhất
Sử dụng kỹ nghệ và kiến thức miền ứng dụng để
phán đoán và đưa ra ca kiểm thử
Mặc dù mang tính chủ quan cao, đây vẫn là phương
pháp hiệu quả để phát hiện khiếm khuyết của chương
trình
VD dựa vào hiểu biết về số ngày của các tháng trong
1 năm để kiểm thử ngày 28/2 và 29/2 ở cả năm nhuận
và năm thường
23


Hướng dẫn áp dụng BVA
Trừ kiểm thử giá trị đặc biệt, kiểm thử giá trị biên là
phương pháp thô sơ nhất

Cân nhắc các tình huống để chọn phương pháp phù
hợp
-

Các biến có độc lập hay phụ thuộc nhau không
Có cần giá trị mạnh hay giá trị thường
Giả định lỗi đơn hay đa lỗi

Có thể áp dụng BVA cho miền giá trị (đầu ra), hay các
biến khác trong chương trình như biến đếm, vòng
lặp, biến trung gian, chỉ số mảng, con trỏ,…
24


VD độ dài 3 cạnh tam giác
Dữ liệu thử

25


×