Kiem thử 3

§¹i häc Quèc gia Hμ néi - §¹i häc c«ng nghÖ

Bé m«n C«ng nghÖ phÇn mÒm

BÀI GiẢNG CAO HOC

ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM

VÀ KiỂM THỦ

Email: [email protected], mobile: 0912.505.291

NguyÔn V¨n Vþ

Hà nội - 2005

Phần II

Nguyễn Văn Vỵ

KIỂM THỬ PHẦN MỀM

2005

Bộ môn CNFM – Đại học Công nghệ

2

Nội dung – Tài liệu

Nguyễn Văn Vỵ

Khái niệm kiểm thử

Các loại kiểm thử

Thẩm định và xác minh

Roger S. Pressman. Software Engineering, a Practitioner’s Approach. 3th

Edition, McGraw-Hill, 1992, Bản dich của Ngô Trung vIệt, Phần 4, tập 4 (Chương

17, 18, 23 –bản 2001)

Ian Sommerville. Software Engineering, Sixth Edition, Addion Wesley, 2001,

Phần 5 và 6. chương 20

E.M.Bennatan, Software Project Management : a practitioner’s approach,

McGRAW-HILL Book Company, 2001

2005

Bộ môn CNFM – Đại học Công nghệ

3

A. Khái niệm về kiểm thử phần mềm

Nguyễn Văn Vỵ

Kiểm thử FM là yếu tố quyết định của SQA, là khâu

điển hình của rà soát đặc tả, thiết kế, lập mã.

kiểm thử theo Glen Myers: Là quá trình vận hành

chương trình để tìm ra lỗi.

Cần vận hành như thế nào để:

hiệu suất tìm ra lỗi là cao nhất ?

chí phí (thời gian, công sức) ít nhất?

Câu hỏi: Lý do? Vai trò? Mục tiêu? Quan niệm? Lợi

ích khác? Loại-mức? Dòng thông tin? Tiến trình ?

2005

Bộ môn CNFM – Đại học Công nghệ

4

a. Lý do kiểm thử phần mềm

Nguyễn Văn Vỵ

Muốn nhìn thấy phần mềm như một phần tử của

hệ thống hoạt động (xem sản phẩm)

Hạn chế chi phí cho các thất bại do lỗi gây ra sau

này (hiệu quả)

Có kế hoạch tốt nâng cao chất lượng suốt quá

trình phát triển (giải pháp).

2005

Bộ môn CNFM – Đại học Công nghệ

5

b.Vai trò kiểm thử phần mềm

Nguyễn Văn Vỵ

Chi phí của kiểm thử chiếm:

40%

tổng công sức phát triển

≥30% tổng thời gian phát triển

Với các phần mềm có ảnh hưởng tới sinh mạng, chi

phí có thể gấp từ 3 đến 5 lần tổng các chi phí khác

cộng lại.

Kiếm thử tốt sẽ:

Giảm chi phí phát triển

Tăng độ tin cậy của sản phẩm phần mềm

2005

Bộ môn CNFM – Đại học Công nghệ

6

c. Mục tiêu kiểm thử phần mềm

Nguyễn Văn Vỵ

Mục tiêu trước mắt: tạo ra các ca kiểm thử để

chỉ ra lỗi của phần mềm (tức là “đánh đổ” phần

mềm)

Nghe ra có vẻ mang tính “phá hoại”,

những vấn đề về tâm lý.

dễ gây ra

Mục đích cuối cùng: có một chương trình tốt, chi

phí ítxây dựng

2005

Bộ môn CNFM – Đại học Công nghệ

7

d. Quan niệm về một kiểm thử tốt

Nguyễn Văn Vỵ

Khi kiểm thử, ta tiến hành những ca kiểm thử

khác nhau:

Ca kiểm thử tốt có xác suất cao tìm ra một lỗi chưa

được phát hiện.

Ca kiểm thử thắng lợi làm lộ ra ít nhất một lỗi còn

chưa được phát hiện.

2005

Bộ môn CNFM – Đại học Công nghệ

8

e. Lợi ích khác của kiểm thử

Nguyễn Văn Vỵ

Ca kiểm thử thắng lợi làm lộ ra khiếm khuyết, đồng

thời mang lại các lợi ích phụ là thuyết minh:

   Chức năng tương ứng với đặc tả (xác minh),

   Thực thi phù hợp yêu cầu & đặc tả (thẩm định, xác

   minh)

   Cung cấp các chỉ số độ tin cậy & chất lượng

   (thẩm định).

Tuy nhiên, kiểm thử không thể khẳng định rằng phần

mềm không có khiếm khuyết

2005

Bộ môn CNFM – Đại học Công nghệ

9

g. Mô hình chữ V - Các mức kiểm thử

Nguyễn Văn Vỵ

Phân tích

 yêu cầu

  Đặc tả

phần mềm

Thiết kế

kiến trúc

Thiết kế

chi tiết

 Lập

trình

2005

test chấp

  nhận

test hệ

thống

test tích

  hợp

test đơn

   vị

rà soát

  mã

Thẩm

định

Xác

minh

Bộ môn CNFM – Đại học Công nghệ

10

g. Các mức – loại hình kiểm thử

Nguyễn Văn Vỵ

Kiểm thử đơn vị (unit testing)

Kiểm thử tích hợp (integration testing)

Kiểm thử hệ thống (system testing)

KT chức năng (functional test: system&interface)

KT phục hồi (recovery test)

KT chịu tải (extra: stress & load test)

KT thi hành (performance test)

KT an ninh (security test)

2005

Bộ môn CNFM – Đại học Công nghệ

11

g. Các loại hình kiểm thử (t)

Nguyễn Văn Vỵ

Kiểm thử chấp nhận (aceptance testing)

Kiểm thử alpha (alpha testing)

Người dùng thực hiện

Trong môi trường được quản lý

Kiểm thử beta (beta testing)

Người dùng thực hiện

Trong môi trường thực

2005

Bộ môn CNFM – Đại học Công nghệ

12

h. Phương pháp và chiến lược kiểm thử

Nguyễn Văn Vỵ

Hai phương pháp phổ biến:

Kiểm thử hộp trắng (white box)

Kiểm thử hộp đen (black box)

Các chiến lươc Kiểm thử

Ứng dụng cho các mức & loại kiểm thử #.

Một số chiến lược:

Kiểm thử từ trên xuống/dưới lên/lai (tích hợp)

Kiểm thử vụ nổ lớn (big bang –tích hợp)

Kiểm thử hồi quy (tích hợp)

Kiểm thử luồn sợi (hệ thời gian thực)

2005

Bộ môn CNFM – Đại học Công nghệ

13

i. Biểu đồ dòng thông tin kiểm thử

Nguyễn Văn Vỵ

Sơ đồ dòng thông tin của tiến trình kiểm thử

Phần mềm

 chỉnh sửa

Dự đoán

độ tin cậy

  Đặc tả

phần mềm

Cấu hình

kiểm thử

kiểm thử

gỡ lỗi

xây dựng

 Mô hình

đô tin cậy

đánh giá

Phần

mềm

chưa

 tin

 cậy

Phần mềm

  tin cậy

2005

Bộ môn CNFM – Đại học Công nghệ

14

k. Tiến trình thực hiện kiểm thử

Nguyễn Văn Vỵ

Kế hoạch

kiểm thử

Lập kế kế

hoạch KT

 Các ca

kiểm thử

 Thiết kế

Ca kiểm thử

 Dữ liệu

kiểm thử

Chuẩn bị

dữ liệu,đk

Kết quả

kiểm thử

Báo cáo

kiểm thử

So sánh,

đánh giá

Tiến hành

 kiểm thử

Yêu cầu,

mã nguồn

Nhật ký

2005

Bộ môn CNFM – Đại học Công nghệ

15

m. Khái niệm về thiết kế ca kiểm thử

Nguyễn Văn Vỵ

Mục tiêu thiết kế ca kiểm thử nhằm:

tìm ra nhiều sai nhất

với nỗ lực & thời gian nhỏ nhất.

Trong các thập kỷ 80-90 đã nghiên cứu nhiều

loại phương pháp thiết kế ca kiểm thử.

Các phương pháp tốt phải cho một cơ chế:

bảo đảm tính đầy đủ (không sót phần nào) và

cung cấp khả năng thật sự phát hiện được các sai

2005

Bộ môn CNFM – Đại học Công nghệ

16

B. Kiểm thử hộp trắng

Nguyễn Văn Vỵ

a. Khái niệm kiểm thử hộp trắng

Đối tượng: mã nguồn

Mức: các mô đun đơn vị

Nội dung là Khám xét:

 các chi tiết thủ tục (thuật toán)

 con đường logic (luồng điều khiển)

 các trạng thái của chương trình (dữ liệu).

2005

Bộ môn CNFM – Đại học Công nghệ

17

a. Khái niệm kiểm thử hộp trắng

Nguyễn Văn Vỵ

Vấn đề, trở ngai:

Số con đường lôgíc là rất lớn: một chương trình

nhỏ:

  với 100 dòng PASCAL

  với một vòng lặp

• số con đường logic có thể tới:1014.

• cần 3170 năm để kiểm thử tất mọi con đường

  và mọi ràng buộc lôgic trên nó!

Nhiều trạng thái dữ liệu khác nhau: đại lượng, giá

trị, sự thay đổi trong tiến trình, sự kết hợp

2005

Bộ môn CNFM – Đại học Công nghệ

18

b. Nội dung cần kiểm thử hộp trắng

Nguyễn Văn Vỵ

kiểm thử cái gì?

a.

b.

c.

d.

e.

mọi lệnh (đầy đủ)

mọi điều kiện lôgic có thể (rẽ nhánh)

mọi chu trình trong chương trình (lặp lại)

mọi cấu trúc dữ liệu được dùng (dữ liệu)

mọi tiến trình từ đầukết thúc(từng luồng điều khiển)

dung của nó? Chiến lược sử dụng?

Câu hỏi: Yêu cầu? Lý do? Các kỹ thuật dùng và nội

2005

Bộ môn CNFM – Đại học Công nghệ

19

c. Yêu cầu kiểm thử hộp trắng

Nguyễn Văn Vỵ

Yêu cầu đặt ra:

Mọi con đường độc lập trong một môđun cần

được thực hiện ít nhất một lần.

Mọi ràng buộc logic được thực hiện cả hai phía

đúng (true) & phía sai (false).

Tất cả các vòng lặp ở biên của nó & cả các biên

vận hành phải được thực hiên.

Mọi cấu trúc dữ liệu nội tại được dùng để bảo

đảm hiệu lực thi hành của nó

2005

Bộ môn CNFM – Đại học Công nghệ

20

d. Lý do kiểm thử hộp trắng

Nguyễn Văn Vỵ

Vì sao tốn tiền cho kiểm thử hộp trắng?

Các sai logic & giả thiết không đúng tỷ lệ nghịch

với xác suất để một con đường logic được thi

hành.

Thực tế: mọi con đường lôgic đều có thể được thi

hành trên 1 cơ sở nhất định

Có những sai chính tả có thể là ngẫu nhiên trên

đường ta không kiểm tra.

2005

Bộ môn CNFM – Đại học Công nghệ

21

e. Các kỹ thuật sử dụng

Nguyễn Văn Vỵ

1.

2.

3.

4.

5.

Đồ thị dòng (Tom McCabe đưa ra đầu tiên).

Ma trận kiểm thử (số đường đi, trọng số).

Điều kiện lôgic – chiến lược miền và BRO

Điều khiển theo dòng dữ liệu

Các cấu trúc chu trình – giá trị đặc trưng

2005

Bộ môn CNFM – Đại học Công nghệ

22

f. Kỹ thuật đồ thị dòng

Nguyễn Văn Vỵ

f0. Khái niệm về đồ thị dòng

      Là một kỹ thuật dựa trên cấu trúc điều khiển của

      chương trình.

      Gần giống đồ thị luồng điều khiển của chương trình.

Nhận được từ đồ thị luồng điều khiển bằng cách:

gộp các lệnh tuần tự

thay lệnh rẽ nhánh và điểm kết thúc của các đường

  điều khiển bằng 1 nút vị tự

2005

Bộ môn CNFM – Đại học Công nghệ

23

f1. Cấu trúc đồ thị dòng

Nguyễn Văn Vỵ

Cấu trúc gồm:

mỗi nút (hình tròn) biểu thị một hay một số lệnh tuần tự,

hoặc thay cho điểm hội tụ các đường điều khiển.

mỗi cạnh nối hai nút biểu diễn dòng điều khiển,

Kết quả đồ thi dòng:

Chia mặt phẳng thành nhiều miền.

Có nút vị từ biểu thị sự phân nhánh hoặc hội nhập của

các cung.

2005

Bộ môn CNFM – Đại học Công nghệ

24

f2. Các kiểu cấu trúc thành phần đồ thị dòng

Nguyễn Văn Vỵ

Các cấu trúc cơ bản của đồ thị dòng:

while

if

until

case

2005

Bộ môn CNFM – Đại học Công nghệ

25

f3. Ví dụ: cấu trúc điều khiển chương trình

Nguyễn Văn Vỵ

xét biểu đồ điều

khiển của một

chương trình

1

2

3

6

7

11

9

10

26

4

8

5

2005

Bộ môn CNFM – Đại học Công nghệ

f4. Ví dụ: cấu trúc đồ thị dòng

Nguyễn Văn Vỵ

luồng điều khiển

1

2

3

6

7

11

9

10

8

4

5

đồ thị dòng

1

2,3

6

7

11

9

8

10

27

4,5

2005

Bộ môn CNFM – Đại học Công nghệ

f5. Ví dụ: xác định các thông số

Nguyễn Văn Vỵ

Đồ thị dòng trên gồm:

9 nút, trong đó:

5 nút là vị tự (mầu đỏ)

11 cung

Chia mặt phẳng thành 4 miền

2005

Bộ môn CNFM – Đại học Công nghệ

28

f6. Độ phức tạp của chu trình

Nguyễn Văn Vỵ

Để đảm bảo mọi câu lệnh đều được kiểm thử ít nhất

một lần, cần tìm được tất cả các đường điều khiển

độc lập trong chương trình (khác với các đường khác

ít nhất một lệnh).

Số các đường độc lập của 1 chương trình là giới hạn

trên số các kiểm thử cần phải tiến hành. Nó được gọi

là độ phức tạp chu trình của chương trình

Các đường độc lập của 1 chương trình trùng với các

đường độc lập của đồ thì dòng (tim đơn giản hơn).

2005

Bộ môn CNFM – Đại học Công nghệ

29

f7. Tính toán độ phức tạp chu trình

Nguyễn Văn Vỵ

Độ phức tạp chu trình V(G) của đồ thị G được tính

theo các cách sau:

V(G) = E - N + 2

V(G) = P – 1

(= 11-9+2 = 4)

(= 5-1 =4)

V(G) = số miền phẳng (= 4)

Trong đó: E = số cung; N = số nút; P= số nút vị từ

Với ví dụ về đồ thị dòng ở trên ta có: V(G) = 4

2005

Bộ môn CNFM – Đại học Công nghệ

30

f8. Xác định các ca kiểm thử

Nguyễn Văn Vỵ

  Vẽđồ

thị dòng

Tính độ phức

Tạp chu trình

Xác định tập

đường cơ bản

Chuẩn bị các

 ca kiểm thử

Yêu cầu,

mã nguồn

Các ca kiểm thử

  và nội dung

2005

Bộ môn CNFM – Đại học Công nghệ

31

g. Kỹ thuật ma trận kiểm thử

Nguyễn Văn Vỵ

Ma trân kiểm thử là một ma trận vuông có kich thước

bằng số các nút trong đồ thị dòng:

 Mỗi dòng/cột ứng với tên một nút

 Mỗi ô: là tên một cung nối nút dòng đến nút cột.

Nhân liên tiếp k ma trận này được ma trận chỉ số con

đường k cung từ nút dòng tới nút cột.

Ma trận kiểm thử được sử dụng như 1 dữ liệu có cấu

trúc để kiểm tra các con đường cơ bản: số đường đi

qua nút

2005

Bộ môn CNFM – Đại học Công nghệ

32

g1. Các ma trận kiểm thử có trọng số

Nguyễn Văn Vỵ

Để ma trận kiểm thử - một công cụ mạnh - trong việc

đánh giá cấu trúc điều khiển chương trình. Khi kiểm

thử, ta thêm trọng số cho các cung của ma trận kiểm

thử như sau:

Xác suất cung đó được thực thi.

Thời gian xử lý của tiến trình đi qua cung đó

Bộ nhớ đòi hỏi của tiến trình đi qua cung đó.

Nguồn lực đòi hỏi của tiến trình đi qua cung đó.

2005

Bộ môn CNFM – Đại học Công nghệ

33

g2. Ví dụ ma trận kiểm thử

Nguyễn Văn Vỵ

1

23 45

1

1

6

1

7

8

9

10 11

1

1

1

2,3

4,5

8

9

10

1

23

45

6

7

8

9

10 1

11

6

7

11

1

1

1

1

1

=A

2005

Bộ môn CNFM – Đại học Công nghệ

34

g2. Ví dụ ma trận kiểm thử (t)

Nguyễn Văn Vỵ

1

1

23

45 1

23 45

1

6

1

7

1

8

1

9

10 11

A2 =

6

7

8

9

10

11

1

2

1

1

1

Bộ môn CNFM – Đại học Công nghệ

Các số

trong ma

trận cho

biết số

con

đường

có hai

cạnh đi

qua

cung đó

35

2005

h. Điều kiện logic và các chiến lược

Nguyễn Văn Vỵ

Trong 1 chương trình, Điều kiện lôgic có thể là:

Điều kiện đơn là 1 biến Bool (có thể có toán tử phủ định): X

Điều kiện đơn là biểu thức quan hệ giữa 2 biểu thức số học

C = (A Θ B) , với Θ là phép so sánh: ≤≥hay ≠

A, B là biểu thức số học

Điều kiện phức hợp cấu thành từ hơn một điều kiện đơn

nhờ các toán tử Bool: hoặc (∪), và (∩), phủ định (┘)

D = X1 & X 2 & … Xn , trong đó Xi là điều kiện đơn, & là toán

                        tử bool

2005

Bộ môn CNFM – Đại học Công nghệ

36

h1. Kiểu sai trong điều kiện lôgic

Nguyễn Văn Vỵ

Sai biến Bool.

Sai toán tử Bool.

Sai số hạng trong biểu thức toán tử Bool

Sai toán tử quan hệ.

Sai biểu thức số học.

2005

Bộ môn CNFM – Đại học Công nghệ

37

h2. Chiến lược kiểm thử phân nhánh

Nguyễn Văn Vỵ

Kiểm thử từng điều kiện trong chương trình.

Kiểm thử điều kiện không chỉ là phát hiện sai trong

điều kiện đó mà còn là phát hiện sai khác của

chương trình liên quan.

Đã có một số chiến lược kiểm thử .

Nguyên tắc kiểm thử nhánh: với mỗi điều kiện

phức hợp C, thì với mỗi nhánh “true” và “false” của C,

mỗi điều kiện đơn trong C phải được kiểm thử ít nhất

một lần.

2005

Bộ môn CNFM – Đại học Công nghệ

38

h3. Chiến lược kiểm thử miền

Nguyễn Văn Vỵ

Chiến lược kiểm thử miền cần 3 hoặc 4

kiểm thử cho một biểu thức quan hệ gồm các

trường hợp: <, >, = và có thể ≠nữa.

Nếu biểu thức Bool có n biến, mà n nhỏ thì thuận lợi,

song n lớn thì khó thực hiện!

Người ta đưa ra chiến lược cho các phép thử nhạy

cảm bằng cách áp dụng kết hợp chiến lược kiểm thử

nhánh và kiểm thử miền (quan hệ)

Làm sao chỉ ra tất cả các trường hợp cần kiểm

thử?

2005

Bộ môn CNFM – Đại học Công nghệ

39

h4. Chiến lược kiểm thử BRO

Nguyễn Văn Vỵ

BRO = kiểm thử nhánh & toán tử quan hệ.

       (branch and relational operation)

BRO dùng “ràng buộc điều kiện làm điều kiện cần thử”

để phát hiện sai ở nhánh và toán tử khi xẩy ra một lần

và không có biến chung.

Giả sử:

D = X1&X2 & … Xn , Xi: điều kiện đơn, &: toán tử bool

Cần đặc tả ràng buộc đầu ra của Xi tương ứng với điều

kiện D đã xác định?.

2005

Bộ môn CNFM – Đại học Công nghệ

40

h4. Chiến lược BRO – điều kiện đầu vào

Nguyễn Văn Vỵ

Ta nói rằng ràng buộc Xi của điều kiện D là được phủ

bởi một sự thực thi của C nếu như trong quá trình thực

thi đó, đầu ra của mỗi điều kiện đơn Xi trong D thoả mãn

các ràng buộc tương ứng.

Điều này có nghĩa là: Khi giá trị của D đã cho, ta cần tìm

các điều kiện ràng buộc mà mỗi Xi (1 thành phân của D)

cần thỏa mãn để đảm bảo được giá trị của D

2005

Bộ môn CNFM – Đại học Công nghệ

41

h5. Chiến lược BRO – tạo ràng buộc

Nguyễn Văn Vỵ

Với một biến Bool B, thì ràng buộc đầu ra của

B là t (true) hoặc f (false).

Với một biểu thức quan hệ (A Θ B) thì ràng

buộc đầu ra của nó là toán tử quan hệ: Θ có

thể nhận một trong bốn giá trị >, <, =, # (lớn

hơn, nhỏ hơn & bằng hoặc khác).

2005

Bộ môn CNFM – Đại học Công nghệ

42

h6. Chiến lược BRO – tạo ràng buộc1

Nguyễn Văn Vỵ

thí dụ, xét điều kiện C = A ∩B

A và B là hai biến Bool. Khi đó ràng buộc đầu ra của

C là một cặp giá trị của t và f.

Chiến lược kiểm thử BRO đòi hỏi rằng tập ba cặp

ràng buộc (t,t), (t,f) và (f,t) đều được phủ bởi các thực

thi của C.

Căp (t,t)

Căp (t,f) và (f,t)

2005

ứng với C = t

ứng với C = f

43

Bộ môn CNFM – Đại học Công nghệ

h7. Chiến lược BRO – tạo ràng buộc2

Nguyễn Văn Vỵ

Xét điều kiện C = (B = E). Khi đó ràng buộc đầu ra là “

= “ tương ứng với t và “ < , >” tương ứng với f

Xét điều kiện C là hội biến Bool và biểu thức quan hệ:

A và B = E. Khi đó các ràng buộc của C là các cặp

(t,t), (t,f) và (f,t); với (B = E) có giá trị t tương ứng với

“=“, và giá trị f tương ứng với “<“ hoặc “>”; Bởi vậy

tập các ràng buộc đầu ra của C phải gồm 4 phần tử:

(t,=), (t,<), (t,>) và (f,=).

Phủ của các ràng buộc này bảo đảm phát hiện được

sai biến Bool hoặc toán tử quan hệ trong C.

2005

Bộ môn CNFM – Đại học Công nghệ

44

h8. Chiến lược BRO – tạo ràng buộc 3

Nguyễn Văn Vỵ

Xét điều kiện C là hội của hai biểu thức quan hệ

(A>B) và (E=F)

Tập ràng buộc đầu ra sẽ (t,t), (t,f) và (f,t) và

tương ứng sẽ là: (>,=); (>,<); (>,>); (=,=) và

(<,=).

Phủ của ràng buộc này bảo đảm rằng phát hiện

được sai ở các toán tử quan hệ trong C.

2005

Bộ môn CNFM – Đại học Công nghệ

45

i. Kiểm thử điều khiển theo dòng dữ liệu

Nguyễn Văn Vỵ

Phương pháp kiểm thử dòng dữ liệu tuyển chọn các

đường của chương trình tương ứng với việc định vị các

xác định biến và sử dụng biến trong chương trình. Đã

có một số chiến lược kiểm thử dòng dữ liệu và so sánh

chúng.

Giả sử rằng mỗi câu lệnh của chương trình được gán

với số câu lệnh duy nhất và mỗi hàm không được cải

biên các tham số của nó và các biến toàn cục.

2005

Bộ môn CNFM – Đại học Công nghệ

46

i1. Định nghĩa các dòng dữ liệu

Nguyễn Văn Vỵ

Với mỗi câu lệnh S ta định nghĩa:

DEF(S) = { X / câu lệnh S chứa định nghĩa X}

USE(S) = { X / câu lệnh S chứa 1 sử dụng X}

Nếu S là câu lệnh if hoặc câu lệnh vòng lặp thì DEF(S)

là rỗng, còn USE(S) của nó được xác định tùy theo

điều kiện trong S.

2005

Bộ môn CNFM – Đại học Công nghệ

47

i2. Chiến lược lần vết theo dòng dữ liệu

Nguyễn Văn Vỵ

Giả thiết: định nghĩa biến X ở câu lệnh S vẫn còn sống

ở câu lệnh S’ nếu có một con đường từ S tới S’ mà

trên đó không chứa một định nghĩa nào khác của X.

Một dây truyền DU sử dụng X ký hiệu là DU = [X,S,S’]

với X trong DEF(S) và trong USE(S’), và định nghĩa X

trong S vẫn còn sống trong S’.

Chiến lược kiểm thử dòng dữ liệu đòi hỏi rằng: mọi DU

đều phải được phủ ít nhất một lần.

2005

Bộ môn CNFM – Đại học Công nghệ

48

i3. Đánh giá chiến lược theo dòng dữ liệu

Nguyễn Văn Vỵ

kiểm thử DU không bảo đảm phủ tất cả các nhánh của

chương trình; tuy nhiên 1 nhánh không được phủ bởi

DU kiểm thử là rất hiếm.

Với chiến lược theo dòng, phần lớn trạng thái chương

trình được kiểm soát

kiểm thử dòng dữ liệu là hữu ích với các đường của

chương trình có chứa các câu lệnh if hoặc vòng lặp.

2005

Bộ môn CNFM – Đại học Công nghệ

49

k. Kiểm thử điều khiển theo vòng lặp

Nguyễn Văn Vỵ

Có bốn loại vòng lặp: mỗi loại dùng một tập

các phép thử khác nhau

Vòng lặp đơn.

2005

Bộ môn CNFM – Đại học Công nghệ

50

k1. Kiểu vòng lặp lồng nhau

Nguyễn Văn Vỵ

Kết hợp mỗi vòng lặp ngoài với mọi vòng lặp trong

2005

Bộ môn CNFM – Đại học Công nghệ

51

k2. Kiểu vòng lặp nối tiếp

Nguyễn Văn Vỵ

Kết hợp mỗi vòng lặp trước với mọi vòng lặp sau

2005

Bộ môn CNFM – Đại học Công nghệ

52

k3. Chọn giá trị cho mỗi loại vòng lặp

Nguyễn Văn Vỵ

Với mỗi loại vòng lặp, thường chỉ sử dụng ba giá

trị lặp: hai giá trị biên và một giá trị giữa hai biên

Các giá trị lặp của một vòng lặp

Các giá trị lặp nên chọn

2005

Bộ môn CNFM – Đại học Công nghệ

53

C. Kiểm thử hộp đen

Nguyễn Văn Vỵ

a Khái niệm

Là kiểm thử yêu cầu chức năng

Đối tương: mô đun, hệ con, toàn hệ thống

Đặc trưng:

Thuyết minh: các chức năng đủ & vận hành đúng

Thực hiện: qua giao diện

Cơ sở: đặc tả, điều kiện vào/ra và cấu trúc dữ liệu

Ít chú ý tới cấu trúc logic nội tại của nó

2005

Bộ môn CNFM – Đại học Công nghệ

54

a. Mô hình khái niệm kiểm thử hộp đen

Nguyễn Văn Vỵ

Khởi đầu –kết thúc

?

Đặc tả

     1.………

  hệ

thống 2….……

      ………

 phần

 mềm n ………

Giao

diện

Chức

năng

 dữ

liệu

?

?

?

Phần

mềm

 Dữ

liệu

đầu

vào

2005

Bộ môn CNFM – Đại học Công nghệ

Kết quả

  ra

Đầu ra liên quan

55

b. Mục đích kiểm thử hộp đen

Nguyễn Văn Vỵ

Tìm các loại sai liên quan:

Chức năng: đủ, đúng đắn

Giao diện: vào, ra: đủ, phù hợp, đúng, tiện lợi

Cấu trúc, truy cập dữ liệu: thông suốt, đúng đắn

Thực thi: trôi chảy, kịp thời, chịu lỗi, phục hồi

Khởi đầu - kết thúc: mỗi tiến trình thông suốt

2005

Bộ môn CNFM – Đại học Công nghệ

56

c. Câu hỏi cho kiểm thử hộp đen

Nguyễn Văn Vỵ

Các câu hỏi tập trung trả lời :

Hiệu lực của chức năng (chức năng, hiệu suất, giao diện) đạt

được đến đâu?

Lớp đầu vào nào cho các ca kiểm thử tốt?

Sự nhạy cảm của môđun với giá trị vào nào?

Các biên của lớp dữ liệu được cô lập chưa?

Chiu lỗi với nhịp điệu/khối lượng dữ liệu như thế nào?

Tổ hợp dữ liệu đặc biệt ảnh hưởng gì đến hoạt động hệ thống?

Những tiến trình nào (khởi đầu, kết thúc) chưa thông suốt?

2005

Bộ môn CNFM – Đại học Công nghệ

57

d. Vấn đề và tiêu chuẩn lựa chọn

Nguyễn Văn Vỵ

Vấn đề:

Các tiến trình của mỗi chức năng hệ thống đủ lớn

Các dữ liệu dày đặc, đa dạng

Không dự kiến tới mọi sự bất thường

Tiêu chuẩn hướng đến:

Thu gọn ca kiểm thử đến mức có thể (ít, đơn giản).

Phát hiện sai trên lớp dữ liệu, số đặc biệt (không phải

1 sai cụ thể gắn với 1 kiểm thử cụ thể)

2005

Bộ môn CNFM – Đại học Công nghệ

58

e. Các kỹ thuật kiểm thử hộp đen

Nguyễn Văn Vỵ

   Phân hoạch tương đương

2. Phân tích giá trị biên

3. Đồ thị nhân quả

1.

Câu hỏi: đầu vào, điều kiên? Loại sai? Khó khăn?

Kỹ thuật dùng: vấn đề giải quyết? Phương châm

– nguyên tắc? Bước đi? Kết quả? ưu, nhược?

2005

Bộ môn CNFM – Đại học Công nghệ

59

f. Phân hoạch tương đương

Nguyễn Văn Vỵ

Là một kỹ thuật của kiểm thử hộp đen

Nguyên tắc: chia miền vào của chương trình thành các

lớp dữ liệu để lập ra các ca kiểm thử theo mỗi lớp đó.

Cơ sở: dữ liệu trong 1 lớp tương đương tác động như

nhau lên chương trình, tạo ra cùng một tráng thái: đúng

hay sai của chương trình

                                                 rútMục tiêu: tìm ra 1 ca kiểm thử để bộc lộ 1 lớp sai,

gọn số ca kiểm thử cần phát triển.

Ca kiểm thử được thiết kế cho từng lớp tương đương

2005

Bộ môn CNFM – Đại học Công nghệ

60

f1. Chọn lớp tương đương

Nguyễn Văn Vỵ

Phương châm xác định các lớp tương đương:

1. Điều kiện vào là phạm vi rộng giới hạn một miền hay

   những giá trị đặc biệt thì cần xác định:

    • 1 lớp tương đương hợp lệ

    • 2 lớp tương đương không hợp lệ.

2. Điều kiện vào đặc tả một thành phần của một tập hoặc

   điều kiện Bool thì cần xác định:

    • 1 lớp tương đương hợp lệ

    • 1 lớp tương đương không hợp lệ.

2005

Bộ môn CNFM – Đại học Công nghệ

61

f2. Phân tích giá trị biên

Nguyễn Văn Vỵ

Các sai có xu hướng xuất hiện ở biên của vùng

dữ liệu (hơn là ở “trung tâm”).

Các sai có thể cả trong và ngoài biên

kiểm thử không chỉ chú ý đến các dữ liệu biên

mà còn chú ý đến các dữ liệu sát biên (trong,

ngoài).

Các ca kiểm thử được xác định nhằm thực hiện

các giá trị biên và sát biên

2005

Bộ môn CNFM – Đại học Công nghệ

62

f3. Chọn lớp tương đương giá trị biên

Nguyễn Văn Vỵ

Phương châm (phân tích giá trị biên):

3. Nếu điều kiện vào là một miền giới hạn bởi a và b

   thì cần thiết kế các ca kiểm thử cho cả a và b, và

   cả trên,dưới a và b.

4. Nếu điều kiện vào đặc tả một số giá trị thì thiết kế

   các ca kiểm thử cho cả các số trên và dưới số nhỏ

   nhất & lớn nhất.

2005

Bộ môn CNFM – Đại học Công nghệ

63

f3. Áp dụng cho giá trị biên ra

Nguyễn Văn Vỵ

Áp dụng phương châm 1 và 2 cho cả điều kiện

ra.

Áp dụng điều kiện giá trị biên cho cả chương

trình trung gian có các biên của cấu trúc dữ liệu

được mô tả

2005

Bộ môn CNFM – Đại học Công nghệ

64

f4. Mô hình phân hoạch & phân tích giá trị biên

Nguyễn Văn Vỵ

.....

 Chọn

  Lớp

tương

đương

  x

 xx

  x

 xx

.....

  x

 xx

  x

 xx

b

Chọn

  Ca

kiểm

 thử

a

Miền giới hạn

x

x

x

x

x

x

x

max

x

x

min

Miền rộng

Nhiều giá trị

Một số giá trị

2005

Bộ môn CNFM – Đại học Công nghệ

65

g. Kỹ thuật đồ thị nhân quả

Nguyễn Văn Vỵ

Là một kỹ thuật để thiết kế ca kiểm thử

Cung cấp một biểu diễn chính xác giữa các điều

kiện logic (đầu vào) và các hành động tương ứng

(đầu ra- kêt quả).

Được xây dựng dựa trên các mô đun chức năng,

lôgíc tiến trình và đặc tả hệ thống

Kỹ thuật gồm 4 bước

2005

Bộ môn CNFM – Đại học Công nghệ

66

g1. Các bước tiến hành

Nguyễn Văn Vỵ

  Đặc tả hệ

thống phần mềm

 Xây dựng các

ca kiểm thử theo

 luật của bảng

Lập DS nguyên

 nhân-kết quả

 theo môđun

Các mô đun

chức năng

Phát triển

 đồ thị

nhân-quả

Chuyển đồ

thibảng

quyết định

2005

Bộ môn CNFM – Đại học Công nghệ

67

g2. Ví dụ kỹ thuật đồ thị nhân quả

Nguyễn Văn Vỵ

Danh sách nhân quả theo modul

Modul

A

Nguyên nhân

Số > a

Số ≥ a

Số = a

B

2005

Kết quả

đúng

nghi ngờ

nghi ngờ

sai

đúng

Định danh

A1

A2

A3

A4

B1

68

 Số < a

Số nguyên

Bộ môn CNFM – Đại học Công nghệ

g2. Ví dụ kỹ thuật đồ thị nhân quả

Nguyễn Văn Vỵ

Có nhiều công cụ để xây dựng đồ thị nhân quả. Đồ thị

có hướng thường hay được dùng hơn cả

Môđun A

Môđun B

Môđun A1

Môđun A2

Môđun A3

Môđun A4

2005

Bộ môn CNFM – Đại học Công nghệ

69

Môđun B

g3. Bảng quyết định của đồ thị nhân quả

Nguyễn Văn Vỵ

Định danh

A1

A2,A3

A4

B1

2005

Điều kiện

Số > a

Số ≥ a

Số < a

Số nguyên

đúng nghi ngờ

X

X

Sai

X

X

..

..

..

70

Bộ môn CNFM – Đại học Công nghệ

g4. Chọn ca kiểm thử

Nguyễn Văn Vỵ

Chọn 2 ca kiểm thử

Ca 1: A1 & B

số >a

Môđun A1

Môđun B

đúng

Ca 2: A2,A3,A4 & B

Môđun A2

số ≤

Môđun A3

Môđun A4

Môđun B

?

2005

Bộ môn CNFM – Đại học Công nghệ

71

§¹i häc Quèc gia Hμ néi - §¹i häc c«ng nghÖ

Bé m«n C«ng nghÖ phÇn mÒm

BÀI GiẢNG CAO HOC

ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM

VÀ KiỂM THỦ

Email:

[email protected],

mobile:

0912.505.291

NguyÔn V¨n Vþ

Hà nội - 2005

Phần II

Nguy

n V

ă

n V

KIỂM THỬ PHẦN MỀM

2005

Bộ môn CNFM – Đại học Công nghệ

2

Nội dung – Tài liệu

Nguy

n V

ă

n V

Khái niệm kiểm thử

Các loại kiểm thử

Thẩm định và xác minh

Roger S. Pressman.

Software Engineering, a Practitioner’s Approach.

3th

Edition, McGraw-Hill, 1992, Bản dich của Ngô Trung vIệt,

Phần 4, tập 4 (Chương

17, 18, 23 –bản 2001)

Ian Sommerville.

Software Engineering, Sixth Edition, Addion Wesley, 2001,

Phần 5 và 6. chương 20

E.M.Bennatan,

Software Project Management : a practitioner’s approach,

McGRAW-HILL Book Company, 2001

2005

Bộ môn CNFM – Đại học Công nghệ

3

A. Khái niệm về kiểm thử phần mềm

Nguyễn Văn Vỵ

Kiểm thử FM là

yếu tố quyết định

của SQA, là

khâu

điển hình của rà soát

đặc tả, thiết kế, lập mã.

kiểm thử theo Glen Myers:

Là quá trình vận hành

chương trình để tìm ra lỗi.

Cần vận hành như thế nào để:

hiệu suất tìm ra lỗi là cao nhất ?

chí phí (thời

gian, công sức)

ít nhất?

Câu hỏi: Lý do? Vai trò? Mục tiêu? Quan niệm? Lợi

ích khác? Loại-mức? Dòng thông tin? Tiến trình ?

2005

Bộ môn CNFM – Đại học Công nghệ

4

a. Lý do kiểm thử phần mềm

Nguyễn Văn Vỵ

Muốn nhìn thấy

phần mềm như một phần tử của

hệ thống hoạt động

(xem sản phẩm)

Hạn chế chi phí

cho các thất bại do lỗi gây ra sau

này

(hiệu quả)

Có kế hoạch tốt

nâng cao chất lượng suốt quá

trình phát triển

(giải pháp).

2005

Bộ môn CNFM – Đại học Công nghệ

5

b.Vai trò kiểm thử phần mềm

Nguy

n V

ă

n V

Chi phí của kiểm thử chiếm:

40%

tổng công sức

phát triển

30% tổng thời gian

phát triển

Với các phần mềm có ảnh hưởng tới sinh mạng, chi

phí có thể gấp

từ 3 đến 5 lần tổng các chi phí khác

cộng lại.

Kiếm thử tốt sẽ:

Giảm chi phí phát triển

Tăng độ tin cậy của sản phẩm phần mềm

2005

Bộ môn CNFM – Đại học Công nghệ

6

c. Mục tiêu kiểm thử phần mềm

Nguy

n V

ă

n V

Mục tiêu trước mắt:

tạo ra các ca kiểm thử để

chỉ ra lỗi

của phần mềm (tức

“đánh đổ” phần

mềm)

Nghe ra có vẻ

mang tính “phá hoại”,

những vấn đề về tâm lý.

dễ gây ra

Mục đích cuối cùng:

có một chương trình tốt, chi

phí ít

xây dựng

2005

Bộ môn CNFM – Đại học Công nghệ

7

d. Quan niệm về một kiểm thử tốt

Nguy

n V

ă

n V

Khi kiểm thử, ta tiến hành những ca kiểm thử

khác nhau:

Ca kiểm thử tốt

có xác suất cao tìm ra một lỗi

chưa

được phát hiện.

Ca kiểm thử thắng lợi

làm lộ ra ít nhất một lỗi còn

chưa được phát hiện.

2005

Bộ môn CNFM – Đại học Công nghệ

8

e. Lợi ích khác của kiểm thử

Nguy

n V

ă

n V

Ca kiểm thử thắng lợi

làm lộ ra khiếm khuyết,

đồng

thời mang lại các

lợi ích phụ

là t

huyết minh:

  

Chức năng

tương ứng

với đặc tả

(xác minh),

Thực thi

phù hợp yêu cầu & đặc tả (thẩm định, xác

   minh)

  

Cung cấp các chỉ số

độ tin cậy

&

chất lượng

  

(thẩm định)

.

Tuy nhiên, kiểm thử không thể khẳng định rằng phần

mềm không có khiếm khuyết

2005

Bộ môn CNFM – Đại học Công nghệ

9

g. Mô hình chữ V - Các mức kiểm thử

Nguyễn Văn Vỵ

Phân tích

 yêu cầu

  Đặc tả

phần mềm

Thiết kế

kiến trúc

Thiết kế

chi tiết

 Lập

trình

2005

test chấp

  nhận

test hệ

thống

test tích

  hợp

test đơn

   vị

rà soát

  mã

Thẩm

định

Xác

minh

Bộ môn CNFM – Đại học Công nghệ

10

g. Các mức – loại hình kiểm thử

Nguy

n V

ă

n V

Kiểm thử đơn vị (unit testing)

Kiểm thử tích hợp

(integration testing)

Kiểm thử hệ thống

(system testing)

KT chức năng

(functional test: system&interface)

KT phục hồi

(recovery test)

KT chịu tải

(extra: stress & load test)

KT thi hành

(performance test)

KT an ninh

(security test)

2005

Bộ môn CNFM – Đại học Công nghệ

11

g. Các loại hình kiểm thử

(t)

Nguy

n V

ă

n V

Kiểm thử chấp nhận

(aceptance testing)

Kiểm thử alpha (alpha testing)

Người dùng thực hiện

Trong môi trường được quản lý

Kiểm thử beta

(beta testing)

Người dùng thực hiện

Trong môi trường thực

2005

Bộ môn CNFM – Đại học Công nghệ

12

h. Phương pháp và chiến lược kiểm thử

Nguyễn Văn Vỵ

Hai phương pháp phổ biến:

Kiểm thử hộp trắng (white

box)

Kiểm thử hộp đen (black

box)

Các chiến lươc Kiểm thử

Ứng dụng cho

các mức

&

loại kiểm thử

#.

Một số chiến lược:

Kiểm thử từ trên xuống/dưới lên/lai (tích hợp)

Kiểm thử vụ nổ lớn (big bang –tích hợp)

Kiểm thử hồi quy (tích hợp)

Kiểm thử luồn sợi (hệ thời gian thực)

2005

Bộ môn CNFM – Đại học Công nghệ

13

i. Biểu đồ dòng thông tin kiểm thử

Nguy

n V

ă

n V

Sơ đồ dòng thông tin của tiến trình kiểm thử

Phần mềm

 chỉnh sửa

Dự đoán

độ tin cậy

  Đặc tả

phần mềm

Cấu hình

kiểm thử

kiểm thử

gỡ lỗi

xây dựng

 Mô hình

đô tin cậy

đánh giá

Phần

mềm

chưa

 tin

 cậy

Phần mềm

  tin cậy

2005

Bộ môn CNFM – Đại học Công nghệ

14

k. Tiến trình thực hiện kiểm thử

Nguy

n V

ă

n V

Kế hoạch

kiểm thử

Lập kế kế

hoạch KT

 Các ca

kiểm thử

 Thiết kế

Ca kiểm thử

 Dữ liệu

kiểm thử

Chuẩn bị

dữ liệu,đk

Kết quả

kiểm thử

Báo cáo

kiểm thử

So sánh,

đánh giá

Tiến hành

 kiểm thử

Yêu cầu,

mã nguồn

Nhật ký

2005

Bộ môn CNFM – Đại học Công nghệ

15

m. Khái niệm về thiết kế ca kiểm thử

Nguy

n V

ă

n V

Mục tiêu thiết kế ca kiểm thử nhằm:

tìm ra nhiều sai nhất

với

nỗ lực

&

thời gian nhỏ nhất.

Trong các thập kỷ 80-90 đã nghiên cứu nhiều

loại phương pháp thiết kế

ca kiểm thử.

Các phương pháp tốt phải cho một cơ chế:

bảo đảm tính đầy đủ

(không sót phần nào) và

cung cấp

khả năng thật sự phát hiện được các sai

2005

Bộ môn CNFM – Đại học Công nghệ

16

B. Kiểm thử hộp trắng

Nguy

n V

ă

n V

a. Khái niệm kiểm thử hộp trắng

Đối tượng:

mã nguồn

Mức:

các mô đun đơn vị

Nội dung là Khám xét:

các chi tiết thủ tục (thuật

toán)

con đường logic (luồng

điều khiển)

các trạng thái của chương trình (dữ

liệu).

2005

Bộ môn CNFM – Đại học Công nghệ

17

a.

Khái niệm kiểm thử hộp trắng

Nguy

n V

ă

n V

Vấn đề, trở ngai:

Số con đường lôgíc là rất lớn:

một chương trình

nhỏ:

  với 100 dòng PASCAL

  với một vòng lặp

số con đường logic có thể tới:1014.

cần 3170 năm

để kiểm thử tất mọi con đường

  và mọi ràng buộc lôgic trên nó!

Nhiều trạng thái dữ liệu khác nhau:

đại lượng, giá

trị, sự thay đổi trong tiến trình, sự kết hợp

2005

Bộ môn CNFM – Đại học Công nghệ

18

b. Nội dung cần kiểm thử hộp trắng

Nguyễn Văn Vỵ

kiểm thử cái gì?

a.

b.

c.

d.

e.

mọi lệnh (đầy

đủ)

mọi điều kiện lôgic có thể (rẽ

nhánh)

mọi chu trình trong chương trình (lặp

lại)

mọi cấu trúc dữ liệu được dùng (dữ

liệu)

mọi tiến trình từ đầukết thúc(từng

luồng điều khiển)

dung của nó? Chiến lược sử dụng?

Câu hỏi:

Yêu cầu? Lý do? Các kỹ thuật dùng và nội

2005

Bộ môn CNFM – Đại học Công nghệ

19

c. Yêu cầu kiểm thử hộp trắng

Nguyễn Văn Vỵ

Yêu cầu đặt ra:

Mọi con đường độc lập

trong một môđun cần

được thực hiện ít nhất một lần.

Mọi ràng buộc logic

được thực hiện cả hai phía

đúng (true) & phía sai (false).

Tất cả các vòng lặp

ở biên của nó & cả các biên

vận hành phải được thực hiên.

Mọi cấu trúc dữ liệu nội tại

được dùng để bảo

đảm hiệu lực thi hành của nó

2005

Bộ môn CNFM – Đại học Công nghệ

20

d. Lý do kiểm thử hộp trắng

Nguy

n V

ă

n V

Vì sao tốn tiền cho kiểm thử hộp trắng?

Các sai logic & giả thiết không đúng tỷ lệ nghịch

với xác suất

để một con đường logic được thi

hành.

Thực tế:

mọi con đường lôgic đều có thể được thi

hành

trên 1 cơ sở nhất định

Có những sai chính tả

có thể là ngẫu nhiên trên

đường ta không kiểm tra.

2005

Bộ môn CNFM – Đại học Công nghệ

21

e. Các kỹ thuật sử dụng

Nguy

n V

ă

n V

1.

2.

3.

4.

5.

Đồ thị dòng (Tom

McCabe đưa ra đầu tiên).

Ma trận kiểm thử

(số

đường đi, trọng số).

Điều kiện lôgic – chiến lược miền và BRO

Điều khiển theo dòng dữ liệu

Các cấu trúc chu trình – giá trị đặc trưng

2005

Bộ môn CNFM – Đại học Công nghệ

22

f. Kỹ thuật đồ thị dòng

Nguy

n V

ă

n V

f0. Khái niệm về đồ thị dòng

     

Là một kỹ thuật dựa trên cấu trúc điều khiển của

      chương trình.

      Gần giống đồ thị luồng điều khiển

của chương trình.

Nhận được từ đồ thị luồng điều khiển

bằng cách:

•

gộp các lệnh tuần tự

•

thay lệnh rẽ nhánh và điểm kết thúc của các đường

  điều khiển bằng 1 nút vị tự

2005

Bộ môn CNFM – Đại học Công nghệ

23

f1. Cấu trúc đồ thị dòng

Nguy

n V

ă

n V

Cấu trúc gồm:

mỗi nút

(hình tròn) biểu thị một hay một số lệnh tuần tự,

hoặc thay cho điểm hội tụ các đường điều khiển.

mỗi cạnh nối hai nút

biểu diễn dòng điều khiển,

Kết quả đồ thi dòng:

Chia mặt phẳng thành nhiều miền.

nút vị từ biểu thị sự phân nhánh hoặc hội nhập của

các cung.

2005

Bộ môn CNFM – Đại học Công nghệ

24

f2. Các kiểu cấu trúc thành phần đồ thị dòng

Nguy

n V

ă

n V

Các cấu trúc cơ bản của đồ thị dòng:

while

if

until

case

2005

Bộ môn CNFM – Đại học Công nghệ

25

f3. Ví dụ: cấu trúc điều khiển chương trình

Nguy

n V

ă

n V

xét biểu đồ điều

khiển của một

chương trình

1

2

3

6

7

11

9

10

26

4

8

5

2005

Bộ môn CNFM – Đại học Công nghệ

f4. Ví dụ: cấu trúc đồ thị dòng

Nguy

n V

ă

n V

luồng điều khiển

1

2

3

6

7

11

9

10

8

4

5

đồ thị dòng

1

2,3

6

7

11

9

8

10

27

4,5

2005

Bộ môn CNFM – Đại học Công nghệ

f5. Ví dụ: xác định các thông số

Nguyễn Văn Vỵ

Đồ thị dòng trên gồm:

9 nút, trong đó:

5

nút là vị tự (mầu đỏ)

11

cung

Chia mặt phẳng thành

4 miền

2005

Bộ môn CNFM – Đại học Công nghệ

28

f6. Độ phức tạp của chu trình

Nguyễn Văn Vỵ

Để đảm bảo

mọi câu lệnh đều được kiểm thử ít nhất

một lần,

cần tìm được tất cả các đường điều khiển

độc lập trong chương trình (khác

với các đường khác

ít nhất một lệnh).

Số các đường độc lập

của 1 chương trình là

giới hạn

trên

số

các kiểm thử

cần phải tiến hành. Nó được gọi

độ phức tạp chu trình của chương trình

Các đường độc lập của 1 chương trình trùng với các

đường độc lập của đồ thì dòng (tim đơn giản hơn).

2005

Bộ môn CNFM – Đại học Công nghệ

29

f7. Tính toán độ phức tạp chu trình

Nguyễn Văn Vỵ

Độ phức tạp chu trình

V(G) của đồ thị G

được tính

theo các cách sau:

V(G) = E - N + 2

V(G) = P – 1

(= 11-9+2 = 4)

(= 5-1 =4)

V(G) = số miền phẳng

(= 4)

Trong đó:

E

= số cung;

N

= số nút;

P=

số nút vị từ

Với ví dụ về đồ thị dòng ở trên ta có:

V(G) = 4

2005

Bộ môn CNFM – Đại học Công nghệ

30

f8. Xác định các ca kiểm thử

Nguy

n V

ă

n V

  Vẽđồ

thị dòng

Tính độ phức

Tạp chu trình

Xác định tập

đường cơ bản

Chuẩn bị các

 ca kiểm thử

Yêu cầu,

mã nguồn

Các ca kiểm thử

  và nội dung

2005

Bộ môn CNFM – Đại học Công nghệ

31

g. Kỹ thuật ma trận kiểm thử

Nguy

n V

ă

n V

Ma trân kiểm thử

là một ma trận vuông có kich thước

bằng số các nút trong đồ thị dòng:

•

Mỗi dòng/cột ứng với tên một nút

•

Mỗi ô:

tên một cung

nối nút dòng đến nút cột.

Nhân liên tiếp k ma trận này được ma trận chỉ số con

đường k cung

từ nút dòng tới nút cột.

Ma trận kiểm thử được sử dụng như 1 dữ liệu có cấu

trúc để

kiểm tra các con đường cơ bản: số đường đi

qua nút

2005

Bộ môn CNFM – Đại học Công nghệ

32

g1. Các ma trận kiểm thử có trọng số

Nguy

n V

ă

n V

Để ma trận kiểm thử -

một công cụ mạnh -

trong việc

đánh giá cấu trúc điều khiển chương trình. Khi kiểm

thử, ta

thêm trọng số cho các cung của ma trận kiểm

thử như sau:

Xác suất cung đó được thực thi.

Thời gian xử lý

của tiến trình đi qua cung đó

Bộ nhớ đòi hỏi

của tiến trình đi qua cung đó.

Nguồn lực đòi hỏi

của tiến trình đi qua cung đó.

2005

Bộ môn CNFM – Đại học Công nghệ

33

g2. Ví dụ ma trận kiểm thử

Nguyễn Văn Vỵ

1

23 45

1

1

6

1

7

8

9

10 11

1

1

1

2,3

4,5

8

9

10

1

23

45

6

7

8

9

10 1

11

6

7

11

1

1

1

1

1

=A

2005

Bộ môn CNFM – Đại học Công nghệ

34

g2. Ví dụ ma trận kiểm thử (t)

Nguy

n V

ă

n V

1

1

23

45 1

23 45

1

6

1

7

1

8

1

9

10 11

A

2

=

6

7

8

9

10

11

1

2

1

1

1

Bộ môn CNFM – Đại học Công nghệ

Các số

trong ma

trận cho

biết số

con

đường

có hai

cạnh đi

qua

cung đó

35

2005

h. Điều kiện logic và các chiến lược

Nguyễn Văn Vỵ

Trong 1 chương trình, Điều kiện lôgic có thể là:

Điều kiện đơn là

1 biến Bool

(có thể có toán tử phủ định):

X

Điều kiện đơn là

biểu thức quan hệ

giữa 2 biểu thức số học

C

= (A

Θ B)

, với

Θ

là phép so sánh:

<, ≤, =, >, ≥

hay

             

A, B

là biểu thức số học

Điều kiện phức hợp

cấu thành từ

hơn một điều kiện đơn

nhờ

các toán tử Bool:

hoặc

(

),

(∩),

phủ định (┘)

D = X

1

& X

2

& … X

n

,

trong đó

X

i

là điều kiện đơn,

&

là toán

                        tử bool

2005

Bộ môn CNFM – Đại học Công nghệ

36

h1. Kiểu sai trong điều kiện lôgic

Nguyễn Văn Vỵ

Sai biến Bool.

Sai toán tử Bool.

Sai số hạng trong biểu thức toán tử Bool

Sai toán tử quan hệ.

Sai biểu thức số học.

2005

Bộ môn CNFM – Đại học Công nghệ

37

h2. Chiến lược kiểm thử phân nhánh

Nguyễn Văn Vỵ

Kiểm thử

từng điều kiện

trong chương trình.

Kiểm thử điều kiện không chỉ là

phát hiện sai trong

điều kiện

đó mà còn là phát hiện

sai khác

của

chương trình liên quan.

Đã có một số chiến lược kiểm thử .

Nguyên tắc kiểm thử nhánh:

với mỗi điều kiện

phức hợp C, thì với mỗi

nhánh “true” và “false”

của C,

mỗi điều kiện đơn trong C

phải được kiểm thử ít nhất

một lần.

2005

Bộ môn CNFM – Đại học Công nghệ

38

h3. Chiến lược kiểm thử miền

Nguy

n V

ă

n V

Chiến lược kiểm thử miền

cần

3 hoặc 4

kiểm thử cho

một biểu thức

quan hệ gồm

các

trường hợp:

<, >, =

và có thể

nữa.

Nếu biểu thức Bool có n biến, mà n nhỏ thì thuận lợi,

song

n lớn thì khó thực hiện!

Người ta đưa ra chiến lược cho

các phép thử nhạy

cảm

bằng cách áp dụng kết hợp chiến lược

kiểm thử

nhánh

kiểm thử miền

(quan hệ)

Làm sao chỉ ra tất cả các trường hợp cần kiểm

thử?

2005

Bộ môn CNFM – Đại học Công nghệ

39

h4. Chiến lược kiểm thử BRO

Nguy

n V

ă

n V

BRO

= kiểm thử nhánh & toán tử quan hệ.

       (branch

and

relational operation)

BRO dùng “ràng

buộc điều kiện làm điều kiện cần thử”

để phát hiện sai ở nhánh và toán tử khi xẩy ra một lần

và không có biến chung.

Giả sử:

D = X

1

&X

2

& … X

n

, X

i

:

điều kiện đơn,

&:

toán tử bool

Cần đặc tả

ràng buộc đầu ra của

X

i

tương ứng với điều

kiện D đã xác định?.

2005

Bộ môn CNFM – Đại học Công nghệ

40

h4. Chiến lược BRO – điều kiện đầu vào

Nguy

n V

ă

n V

Ta nói rằng ràng buộc

X

i

của điều kiện

D

được phủ

bởi một sự thực thi của C

nếu như trong quá trình thực

thi đó,

đầu ra của mỗi điều kiện đơn Xi trong D thoả mãn

các ràng buộc tương ứng.

Điều này có nghĩa là:

Khi giá trị của

D

đã cho, ta cần tìm

các điều kiện ràng buộc mà mỗi

X

i

(1 thành phân của D)

cần thỏa mãn để đảm bảo được giá trị của D

2005

Bộ môn CNFM – Đại học Công nghệ

41

h5. Chiến lược BRO – tạo ràng buộc

Nguy

n V

ă

n V

Với một biến Bool B, thì ràng buộc đầu ra của

B là

t

(true)

hoặc

f

(false).

Với một biểu thức quan hệ (A Θ B) thì ràng

buộc đầu ra

của nó là toán tử quan hệ:

Θ

thể nhận một trong bốn giá trị

>, <, =, #

(lớn

hơn, nhỏ hơn & bằng hoặc khác).

2005

Bộ môn CNFM – Đại học Công nghệ

42

h6. Chiến lược BRO – tạo ràng buộc1

Nguyễn Văn Vỵ

thí dụ, xét điều kiện

C = A

B

A và B

hai biến Bool.

Khi đó

ràng buộc đầu ra

của

C

là một cặp giá trị của

t

f.

Chiến lược kiểm thử BRO đòi hỏi rằng tập ba cặp

ràng buộc

(t,t), (t,f) và (f,t) đều được phủ bởi các thực

thi của C.

Căp (t,t)

Căp (t,f) và (f,t)

2005

ứng với C = t

ứng với C =

f

43

Bộ môn CNFM – Đại học Công nghệ

h7. Chiến lược BRO – tạo ràng buộc2

Nguy

n V

ă

n V

Xét điều kiện C = (B = E). Khi đó ràng buộc đầu ra là “

=

“ tương ứng với

t

và “

<

,

>”

tương ứng với

f

Xét điều kiện C là hội biến Bool và biểu thức quan hệ:

A

B = E.

Khi đó các ràng buộc của C là các cặp

(t,t), (t,f)

(f,t);

với (B = E) có giá trị

t

tương ứng với

“=“, và giá trị

f

tương ứng với “<“ hoặc “>”; Bởi vậy

tập các ràng buộc đầu ra của

C phải gồm 4 phần tử:

(t,=), (t,<), (t,>) và (f,=).

Phủ của các ràng buộc này bảo đảm phát hiện được

sai biến Bool hoặc toán tử quan hệ trong C.

2005

Bộ môn CNFM – Đại học Công nghệ

44

h8. Chiến lược BRO – tạo ràng buộc 3

Nguyễn Văn Vỵ

Xét điều kiện

C là hội của hai biểu thức quan hệ

(A>B) và (E=F)

Tập ràng buộc

đầu ra sẽ

(t,t), (t,f) và (f,t)

tương ứng sẽ là:

(>,=); (>,<); (>,>); (=,=) và

(<,=).

Phủ của ràng buộc này bảo đảm rằng phát hiện

được sai ở các toán tử quan hệ trong C.

2005

Bộ môn CNFM – Đại học Công nghệ

45

i. Kiểm thử điều khiển theo dòng dữ liệu

Nguy

n V

ă

n V

Phương pháp kiểm thử

dòng dữ liệu tuyển chọn các

đường

của chương trình tương ứng với việc định vị

các

xác định biến và sử dụng biến

trong chương trình. Đã

một số chiến lược kiểm thử dòng dữ liệu và so sánh

chúng.

Giả sử rằng mỗi câu lệnh của chương trình được gán

với

số câu lệnh duy nhất

mỗi hàm không được cải

biên các tham số

của nó và các biến toàn cục.

2005

Bộ môn CNFM – Đại học Công nghệ

46

i1. Định nghĩa các dòng dữ liệu

Nguy

n V

ă

n V

Với mỗi câu lệnh S ta định nghĩa:

DEF(S)

= { X / câu lệnh

S chứa định nghĩa X}

USE(S) = { X / câu lệnh S chứa 1 sử dụng X}

Nếu S là

câu lệnh

if

hoặc câu lệnh

vòng lặp

thì

DEF(S)

rỗng, còn USE(S) của nó được xác định tùy theo

điều kiện trong S.

2005

Bộ môn CNFM – Đại học Công nghệ

47

i2. Chiến lược lần vết theo dòng dữ liệu

Nguy

n V

ă

n V

Giả thiết:

định nghĩa biến X

ở câu lệnh

S vẫn còn sống

ở câu lệnh

S’

nếu có một con

đường từ S tới S’

trên đó không chứa một định nghĩa nào khác của X.

Một

dây truyền DU sử dụng X

ký hiệu là

DU = [X,S,S’]

với X trong

DEF(S)

và trong

USE(S’),

và định nghĩa

X

trong S vẫn còn sống trong S’.

Chiến lược kiểm thử dòng dữ liệu đòi hỏi rằng:

mọi DU

đều phải

được phủ ít nhất một lần.

2005

Bộ môn CNFM – Đại học Công nghệ

48

i3. Đánh giá chiến lược theo dòng dữ liệu

Nguy

n V

ă

n V

kiểm thử DU không bảo đảm phủ tất cả các nhánh của

chương trình; tuy nhiên 1 nhánh không được phủ bởi

DU kiểm thử là rất hiếm.

Với chiến lược theo dòng, phần lớn trạng thái chương

trình được kiểm soát

kiểm thử dòng dữ liệu

là hữu ích với

các đường

của

chương trình có chứa

các câu lệnh if hoặc vòng lặp.

2005

Bộ môn CNFM – Đại học Công nghệ

49

k. Kiểm thử điều khiển theo vòng lặp

Nguy

n V

ă

n V

Có bốn loại vòng lặp: mỗi loại dùng một tập

các phép thử khác nhau

Vòng lặp đơn.

2005

Bộ môn CNFM – Đại học Công nghệ

50

k1. Kiểu vòng lặp lồng nhau

Nguy

n V

ă

n V

Kết hợp mỗi vòng lặp ngoài với mọi vòng lặp trong

2005

Bộ môn CNFM – Đại học Công nghệ

51

k2. Kiểu vòng lặp nối tiếp

Nguy

n V

ă

n V

Kết hợp mỗi vòng lặp trước với mọi vòng lặp sau

2005

Bộ môn CNFM – Đại học Công nghệ

52

k3. Chọn giá trị cho mỗi loại vòng lặp

Nguy

n V

ă

n V

Với mỗi loại vòng lặp, thường chỉ sử dụng ba giá

trị lặp: hai giá trị biên và một giá trị giữa hai biên

Các giá trị lặp của một vòng lặp

Các giá trị lặp nên chọn

2005

Bộ môn CNFM – Đại học Công nghệ

53

C. Kiểm thử hộp

đen

Nguyễn Văn Vỵ

a Khái niệm

Là kiểm thử

yêu cầu chức năng

Đối tương:

mô đun, hệ con, toàn hệ thống

Đặc trưng:

Thuyết minh:

các chức năng đủ

&

vận hành đúng

Thực hiện:

qua giao diện

Cơ sở:

đặc tả, điều kiện vào/ra

cấu trúc

dữ liệu

Ít chú ý tới cấu trúc logic nội tại của nó

2005

Bộ môn CNFM – Đại học Công nghệ

54

a. Mô hình khái niệm kiểm thử hộp đen

Nguy

n V

ă

n V

Khởi đầu –kết thúc

?

Đặc tả

     1.………

  hệ

thống 2….……

      ………

 phần

 mềm n ………

Giao

diện

Chức

năng

 dữ

liệu

?

?

?

Phần

mềm

 Dữ

liệu

đầu

vào

2005

Bộ môn CNFM – Đại học Công nghệ

Kết quả

  ra

Đầu ra liên quan

55

b. Mục đích kiểm thử hộp đen

Nguy

n V

ă

n V

Tìm

các loại sai

liên quan:

Chức năng:

đủ, đúng đắn

Giao diện:

vào, ra: đủ, phù hợp, đúng, tiện lợi

Cấu trúc, truy cập dữ liệu:

thông suốt, đúng đắn

Thực thi:

trôi chảy, kịp thời, chịu lỗi, phục hồi

Khởi đầu - kết thúc:

mỗi tiến trình thông suốt

2005

Bộ môn CNFM – Đại học Công nghệ

56

c. Câu hỏi cho kiểm thử hộp đen

Nguy

n V

ă

n V

Các câu hỏi

tập trung trả lời :

Hiệu lực của chức năng (chức năng, hiệu suất, giao diện) đạt

được đến đâu?

Lớp đầu vào

nào cho các ca kiểm thử tốt?

Sự nhạy cảm

của môđun

với giá trị vào nào?

Các biên

của lớp dữ liệu được cô lập chưa?

Chiu lỗi

với nhịp điệu/khối lượng dữ liệu như thế nào?

Tổ hợp dữ liệu đặc biệt

ảnh hưởng gì đến hoạt động hệ thống?

Những tiến trình nào

(khởi đầu, kết thúc) chưa thông suốt?

2005

Bộ môn CNFM – Đại học Công nghệ

57

d. Vấn đề và tiêu chuẩn lựa chọn

Nguyễn Văn Vỵ

Vấn đề:

Các tiến trình của mỗi chức năng hệ thống đủ lớn

Các dữ liệu dày đặc, đa dạng

Không dự kiến tới mọi sự bất thường

Tiêu chuẩn hướng đến:

Thu gọn ca kiểm thử đến mức có thể

(ít,

đơn giản).

Phát hiện sai trên lớp dữ liệu, số đặc biệt

(không

phải

1 sai cụ thể gắn với 1 kiểm thử cụ thể)

2005

Bộ môn CNFM – Đại học Công nghệ

58

e. Các kỹ thuật kiểm thử hộp đen

Nguy

n V

ă

n V

   Phân hoạch tương đương

2.

Phân tích giá trị biên

3.

Đồ thị nhân quả

1.

Câu hỏi: đầu vào, điều kiên? Loại sai? Khó khăn?

Kỹ thuật dùng: vấn đề giải quyết? Phương châm

– nguyên tắc? Bước đi? Kết quả? ưu, nhược?

2005

Bộ môn CNFM – Đại học Công nghệ

59

f. Phân hoạch tương đương

Nguy

n V

ă

n V

Là một kỹ thuật của kiểm thử hộp đen

Nguyên tắc:

chia miền vào

của chương trình

thành các

lớp

dữ liệu để lập ra các ca kiểm thử theo mỗi lớp đó.

Cơ sở:

dữ liệu trong 1 lớp tương đương tác động như

nhau lên chương trình, tạo ra cùng một tráng thái:

đúng

hay

sai

của chương trình

                                                

rút

Mục tiêu:

tìm ra 1 ca kiểm thử để

bộc lộ 1 lớp sai,

gọn số ca kiểm thử

cần phát triển.

Ca kiểm thử được

thiết kế cho từng lớp tương đương

2005

Bộ môn CNFM – Đại học Công nghệ

60

f1. Chọn lớp tương đương

Nguy

n V

ă

n V

Phương châm xác định các lớp tương đương:

1.

Điều kiện vào là phạm vi rộng giới hạn một miền hay

   những giá trị đặc biệt thì cần xác định:

1 lớp

tương đương

hợp lệ

   

2 lớp

tương đương

không hợp lệ.

2.

Điều kiện vào đặc tả một thành phần của một tập hoặc

   điều kiện Bool thì cần xác định:

   

1 lớp

tương đương

hợp lệ

1 lớp tương đương không hợp lệ.

2005

Bộ môn CNFM – Đại học Công nghệ

61

f2. Phân tích giá trị biên

Nguy

n V

ă

n V

Các sai có xu hướng xuất hiện ở biên của vùng

dữ liệu (hơn là ở “trung tâm”).

Các sai có thể cả trong và ngoài biên

kiểm thử không chỉ chú ý đến

các dữ liệu biên

mà còn chú ý đến

các dữ liệu sát biên (trong,

ngoài).

Các ca kiểm thử được xác định nhằm thực hiện

các giá trị biên và sát biên

2005

Bộ môn CNFM – Đại học Công nghệ

62

f3. Chọn lớp tương đương giá trị biên

Nguy

n V

ă

n V

Phương châm

(phân tích giá trị biên):

3. Nếu điều kiện vào là một miền giới hạn bởi a và b

   thì cần thiết kế các ca kiểm thử

cho cả a

b, và

   cả trên,dưới a

b.

4. Nếu điều kiện vào đặc tả một số giá trị thì thiết kế

   các ca kiểm thử cho cả

các số trên

dưới số nhỏ

   nhất

&

lớn nhất.

2005

Bộ môn CNFM – Đại học Công nghệ

63

f3. Áp dụng cho giá trị biên

ra

Nguyễn Văn Vỵ

Áp dụng phương châm

1 và 2 cho cả điều kiện

ra.

Áp dụng điều kiện giá trị biên cho cả

chương

trình trung gian có các biên

của cấu trúc dữ liệu

được mô tả

2005

Bộ môn CNFM – Đại học Công nghệ

64

f4. Mô hình phân hoạch & phân tích giá trị biên

Nguyễn Văn Vỵ

.....

 Chọn

 

Lớp

tương

đương

  x

 xx

  x

 xx

.....

  x

 xx

  x

 xx

b

Chọn

 

Ca

kiểm

 thử

a

Miền giới hạn

x

x

x

x

x

x

x

max

x

x

min

Miền rộng

Nhiều giá trị

Một số giá trị

2005

Bộ môn CNFM – Đại học Công nghệ

65

g. Kỹ thuật đồ thị nhân quả

Nguy

n V

ă

n V

Là một

kỹ thuật để thiết kế ca kiểm thử

Cung cấp

một biểu diễn chính xác giữa

các điều

kiện logic (đầu

vào) và các hành động tương ứng

(đầu

ra- kêt quả).

Được xây dựng dựa trên các mô đun chức năng,

lôgíc tiến trình

đặc tả hệ thống

Kỹ thuật gồm 4 bước

2005

Bộ môn CNFM – Đại học Công nghệ

66

g1. Các bước tiến hành

Nguy

n V

ă

n V

  Đặc tả hệ

thống phần mềm

 Xây dựng các

ca kiểm thử theo

 luật của bảng

Lập DS nguyên

 nhân-kết quả

 theo môđun

Các mô đun

chức năng

Phát triển

 đồ thị

nhân-quả

Chuyển đồ

thibảng

quyết định

2005

Bộ môn CNFM – Đại học Công nghệ

67

g2. Ví dụ kỹ thuật đồ thị nhân quả

Nguy

n V

ă

n V

Danh sách nhân quả theo modul

Modul

A

Nguyên nhân

Số > a

Số ≥ a

Số = a

B

2005

Kết quả

đúng

nghi ngờ

nghi ngờ

sai

đúng

Định danh

A1

A2

A3

A4

B1

68

 Số < a

Số nguyên

Bộ môn CNFM – Đại học Công nghệ

g2. Ví dụ kỹ thuật đồ thị nhân quả

Nguy

n V

ă

n V

Có nhiều công cụ để xây dựng đồ thị nhân quả. Đồ thị

có hướng thường hay được dùng hơn cả

Môđun A

Môđun B

Môđun A1

Môđun A2

Môđun A3

Môđun A4

2005

Bộ môn CNFM – Đại học Công nghệ

69

Môđun B

g3. Bảng quyết định của đồ thị nhân quả

Nguy

n V

ă

n V

Định danh

A1

A2,A3

A4

B1

2005

Điều kiện

Số > a

Số ≥ a

Số < a

Số nguyên

đúng nghi ngờ

X

X

Sai

X

X

..

..

..

70

Bộ môn CNFM – Đại học Công nghệ

g4. Chọn ca kiểm thử

Nguy

n V

ă

n V

Chọn 2 ca kiểm thử

Ca 1: A1 & B

số >a

Môđun A1

Môđun B

đúng

Ca 2: A2,A3,A4 & B

Môđun A2

số ≤a

Môđun A3

Môđun A4

Môđun B

?

2005

Bộ môn CNFM – Đại học Công nghệ

71

C©u hái và thảo luận

Nguy

n V

ă

n V

2005

Bộ môn CNFM – Đại học Công nghệ

72

C©u hái và thảo luận

Nguyễn Văn Vỵ

2005

Bộ môn CNFM – Đại học Công nghệ

72

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: