Kiem thử 3

Màu nền
Font chữ
Font size
Chiều cao dòng

§¹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ạn đang đọc truyện trên: Truyen2U.Net