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

Công nghệ phần mềm - Chương 4 kiểm thử PM potx

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 (560.94 KB, 10 trang )

Nhap môn CNPM Ch.4 Kiểm thử 1
Công nghệ Phần mềm
Software Engineering
Công ngh
Công ngh


Ph
Ph


n m
n m


m
m
Software Engineering
Software Engineering
Chương 4.
Kiểm thử PM
Chương
Chương
4
4
.
.
Ki
Ki



m th
m th


PM
PM
PGS.TS. Phan Huy Khánh
,
2/
2/
57
57
Chương
Chương
4
4
.
.
Ki
Ki


m th
m th


PM
PM
a Khái niệm kiểm thử PM (Software Testing)
a Các nguyên lý kiểm thử PM

a Các chiến lược kiểm thử PM
a Nghệ thuật gỡ rối
3/
3/
57
57
Thế nào là kiểm thử PM
a Kiểm thử PM là
V
V
Th
Th


c hi
c hi


n (ch
n (ch


y) ph
y) ph


n m
n m



m
m
trong m
trong m


t môi trư
t môi trư


ng mô ph
ng mô ph


ng hay th
ng hay th


c t
c t
ế
ế
,
,
V
V
b
b



ng c
ng c
á
á
ch s
ch s


d
d


ng c
ng c
á
á
c y
c y
ế
ế
u t
u t


đ
đ


u v
u v

à
à
o đư
o đư


c l
c l


a ch
a ch


n
n
theo c
theo c
á
á
ch n
ch n
à
à
o đ
o đ
ó
ó
a
a

What is Software Testing?
What is Software Testing?
V
V
Executing software in a simulated or real environment,
Executing software in a simulated or real environment,
V
V
using inputs selected somehow
using inputs selected somehow
4/
4/
57
57
Tại sao phải kiểm thử PM
a Trong tiến trình PM :
V Mặc dù được tự động hoá một phần bởi các công cụ CASE,
rất nhiều công đoạn vẫn được thực hiện thủ công
V Sản phẩm PM vẫn có khả năng xảy ra sai sót, phạm lỗi
V Lỗi có thể xảy ra trong tất cả các giai đoạn,
từ phân tích yêu cầu, thiết kế, mã hoá
đến đóng gói sản phẩm
a Do đóphải kiểm thử PM trước khi chính thức sử dụng
5/
5/
57
57
Giá phải trả cho việc tìm và sửa lỗi
6/
6/

57
57
Mục tiêu của kiểm thử PM
a Kiểm thử PM là :
V Hoạt động thực thi chương trình
với mục đích tìm ra lỗi và phê phán
V Không mang tính xây dựng, phát triển hay thay đổi PM
V Có chi phí hợp lý (do thường có chi phí cao)
a Kiểm thử PM giúp
V Phát hiện được lỗi, thiếu sót trong chương trình (nếu có)
V Chứng minh PM được viết đúng
V Chứng minh được PM hoạt động đúng như đã thiết kế
V Chứng minh được PM đáp ứng những yêu cầu của NSD
a Kiểm thử PM góp phần chứng minh chất lượng của PM
Nhap môn CNPM Ch.4 Kiểm thử 2
7/
7/
57
57
Who Tests the Software?
Who Tests the Software?
Developer
Developer
Independent Tester
Independent Tester
Understands the system
Understands the system
but, will test "gently"and,
but, will test "gently"and,
is driven by "

is driven by "
delivery
delivery
"
"
Must learn about the system,
Must learn about the system,
but, will attempt to break it
but, will attempt to break it
and, is driven by
and, is driven by
quality
quality
8/
8/
57
57
M
M


t s
t s


kh
kh
á
á
i ni

i ni


m
m
a
a
M
M


t
t
ki
ki


m th
m th


:
:
V
V
L
L
à
à
cho ch

cho ch


y (Run), hay th
y (Run), hay th


c hi
c hi


n (Execution) m
n (Execution) m


t chương tr
t chương tr
ì
ì
nh
nh
t
t


nh
nh
ũ
ũ
ng d

ng d


li
li


u đư
u đư


c l
c l


a ch
a ch


n đ
n đ


c bi
c bi


t
t
a

a
M
M


t
t
t
t


p d
p d


li
li


u th
u th


:
:
V
V
L
L
à

à
t
t


p h
p h


p h
p h


u h
u h


n d
n d


li
li


u ph
u ph


c v

c v


cho m
cho m


t ki
t ki


m th
m th


a
a
M
M


i
i
ph
ph
é
é
p ki
p ki



m th
m th


:
:
V
V
L
L
à
à
ho
ho


t đ
t đ


ng g
ng g


m xây d
m xây d


ng t

ng t


p d
p d


li
li


u th
u th


,
,
ti
ti
ế
ế
n h
n h
à
à
nh ph
nh ph
é
é
p

p
ki
ki


m th
m th


v
v
à
à
đ
đ
á
á
nh gi
nh gi
á
á
k
k
ế
ế
t qu
t qu


a

a
Ngư
Ngư


i ki
i ki


m th
m th


(hay
(hay
nh
nh
ó
ó
m ki
m ki


m th
m th


) :
) :
V

V
L
L
à
à
nh
nh


ng chuyên gia c
ng chuyên gia c
ó
ó
nhi
nhi


m v
m v


ti
ti
ế
ế
n h
n h
à
à
nh ph

nh ph
é
é
p ki
p ki


m th
m th


a
a
M
M


t
t
khi
khi
ế
ế
m khuy
m khuy
ế
ế
t
t
(Failure) :

(Failure) :
V
V
X
X


y ra khi th
y ra khi th


c hi
c hi


n chương tr
n chương tr
ì
ì
nh cho k
nh cho k
ế
ế
t qu
t qu


không tương h
không tương h



p v
p v


i đ
i đ


c t
c t


c
c


a chương tr
a chương tr
ì
ì
nh
nh
a
a
M
M


t

t
l
l


i sai
i sai
(Error) :
(Error) :
V
V
L
L
à
à
m
m


t ph
t ph


n chương tr
n chương tr
ì
ì
nh (l
nh (l



nh)
nh)
đã gây ra khi
đã gây ra khi
ế
ế
m khuy
m khuy
ế
ế
t
t
9/
9/
57
57
Kiểm thử PM = Xác minh + Thẩm định
Software Testing = Verification and Validation (V&V)
a Xác minh (Verification:
Are we building the Product Right?) :
V Quá trình xem xét PM có thực hiện đúng đặc tả không,
có đúng thiết kế không ?
a Thẩm định, hay hợp thức hóa (Validation:
Are we building the Right Product?) :
V Quá trình xem xét PM có được xây dựng
theo đúng yêu cầu của khách hàng hay không ?
V Phát hiện lỗi phân tích, lỗi thiết kế (lỗi ở mức cao)
10/
10/

57
57
Hoạt động xác minh và thẩm định
a Xác minh và thẩm định cho mọi sản phẩm khác nhau :
V Thực hiện ở mọi giai đoạn phát triển PM,
do các đối tượng khác nhau thực hiện
Phân
tích
nhu
cầu
phần
mềm
Phân
tích
nhu
cầu
phần
mềm
Đặc
tả
phân
tích
nhu
cầu
Đặc
tả
phân
tích
nhu
cầu

Thiết
kế
phần
mềm
Thiết
kế
phần
mềm
Phần
mềm

các
đặc
trưng
chất
lượng
Phần
mềm

các
đặc
trưng
chất
lượng
Đặc tả
tốt
Đặc tả
chưa tốt
Chưa
đặc tả

Thẩm định
Thẩm định
Xác minh
Xác minh
Xác minh
Xác minh
Thẩm định
Thẩm định
*
*
*
*
*
*
Xác minh
Xác minh
11/
11/
57
57
B
B


n ch
n ch


t c
t c



a
a xác minh và thẩm định
Có hai dạng tĩnh và động
a Xác minh/thẩm định tĩnh,
còn đgl thanh tra hay kiểm tra (Software Inspection)
V Không thực hiện chương trình
V Chỉ xem xét yêu cầu, thiết kế, mã nguồn
V Tiến hành ở mọi công đoạn phát triển
V Hạn chế : khó đánh giá tính hiệu quả của sản phẩm
a Xác minh/thẩm định động,
là giai đoạn kiểm thử (Software Testing)
V Thực hiện (chạy) chương trình để tìm lỗi lập trình
V Cần có mã nguồn
V Để đánh giá tính hiệu quả, hay chất lượng phần mềm
12/
12/
57
57
Đặc điểm của kiểm thử PM
a Trong hầu hết tiến trình PM :
V Kiểm thử PM không khẳng định được
PM không còn khiếm khuyết
V Chỉ khẳng định được PM có lỗi và giúp giảm thiểu lỗi
a Quá trình kiểm thử PM là tốt khi :
V Có khả năng tìm ra lỗi cao
V Không dư thừa các hoạt động vô ích, hay có tác dụng ngược
V Biết cách chọn lọc :
Chỉ kiểm thử những phần nào

có khả năng tìm ra lỗi đặc trưng
V Không quá phức tạp, cũng không quá đơn giản
Nhap môn CNPM Ch.4 Kiểm thử 3
13/
13/
57
57
M
M


t s
t s


công c
công c


tr
tr


gi
gi
ú
ú
p
p kiểm thử
a

a
Hi
Hi


n nay c
n nay c
ó
ó
nhi
nhi


u công c
u công c


tr
tr


gi
gi
ú
ú
p
p kiểm thử PM,
thường gặp là :
V
V

TestTrack Pro
TestTrack Pro
V
V
DMS for Defect Management
DMS for Defect Management
V
V
Rational Robot Functional Test Tool
Rational Robot Functional Test Tool
V
V
Rational Performance Test Tool
Rational Performance Test Tool
V
V
Virtual Ruler and Eye Dropper for Graphic Test
Virtual Ruler and Eye Dropper for Graphic Test
14/
14/
57
57
Các nguyên lý kiểm thử PM
a Không thể kiểm thử triệt để một PM
a Việc kiểm thử nên :
V Do những người không tham gia phát triển PM thực hiện
V Được lập kế hoạch trước khi phát triển PM một thời gian dài
V Hướng về yêu cầu của khách hàng
V Nên tiến hành từ nhỏ đến lớn :
Bắt đầu từ những đơn thể riêng biệt

rồi sau đótích hợp các đơn thể lại
a Áp dụng nguyên lý Pareto (80-20) :
V 80% lỗi có nguyên nhân từ 20% các đơn thể cô lập
V Chỉ kiểm tra những đơn thể khả nghi nhất
15/
15/
57
57
Cài đặt và chuẩn bị Test
Cài đặt và chuẩn bị Test
Bắt đầu
Bắt đầu
Lập kế hoạch Test
Lập kế hoạch Test
Thiết kế Test
Thiết kế Test
Test tích hợp
Test tích hợp
Kết thúc
Kết thúc
Test hệ thống
Test hệ thống
Tổng hợp, báo cáo
Tổng hợp, báo cáo
Xem xét và đánh giá
kết quả test
Xem xét và đánh giá
kết quả test
Phân tích
kết quả

Chuẩn bị
Test
Lập kế
hoạch
C
C
á
á
c ho
c ho


t đ
t đ


ng ki
ng ki


m th
m th


a Các bước chính
16/
16/
57
57
Sản phẩm chính

Kế hoạch test
Test case
Test procedure
Test scrip
Test data
Môi trường
Lỗi
Biên bản test
Bcáo KQ test
Đề xuất
Bcáo tổng hợp test
Hồ sơ
e
e
c
c
c
e
e
c
Cài đặt và chuẩn bị Test
Cài đặt và chuẩn bị Test
Bắt đầu
Bắt đầu
Lập kế hoạch Test
Lập kế hoạch Test
Thiết kế Test
Thiết kế Test
Test tích hợp
Test tích hợp

Kết thúc
Kết thúc
Test hệ thống
Test hệ thống
Tổng hợp, báo cáo
Tổng hợp, báo cáo
Xem xét và đánh giá
kết quả test
Xem xét và đánh giá
kết quả test
17/
17/
57
57
Chiến thuật kiểm thử PM
a Chiến thuật kiểm thử PM :
V Tích hợp các phương pháp tạo ra các ca kiểm thử (Test Case)
V Xây dựng chuỗi các công việc có thứ tự
để có thể kiểm thử PM thành công với chi phí thấp
a Bao gồm các công việc
V Lập kế hoạch kiểm thử
V Xây dựng các ca (trường hợp) kiểm thử
a Một số chiến thuật kiểm thử (Testing) :
V Kiểm thử đơn thể/đơn vị (Unit Testing)
V Kiểm thử (Integration Testing)
V kiểm thử hướng đối tượng (OO Testing)
V Kỹ thuật gỡ rối (Debugging)
18/
18/
57

57
Chiến thuật kiểm thử hình chữ V
Phát triển
Phát triển
kiểm thử
kiểm thử
Phân tích toàn bộ hệ thống kiểm thử toàn bộ hệ thống
Phân tích yêu cầukiểm thử tính năng
Thiết kế kiểm thử tích hợp
Mã hóa kiểm thử đơn thể
Nhap môn CNPM Ch.4 Kiểm thử 4
19/
19/
57
57
Một số kinh nghiệm
a Sau giai đoạn thiết kế, mã hoávàbiên dịch hoàn tất :
V Người phát triển PM có thể tự kiểm thử PM của mình
V Nhưng với các dự án lớn,
cần phải do một nhóm chuyên gia độc lập tiến hành
a Dưới đây là một số kinh nghiệm trong kiểm thử
V Kiểm thử bắt đầu tại từng đơn thể
rồi tích hợp lớn dần đến toàn bộ hệ thống
V Mỗi giai đoạn sử dụng một kỹ thuật kKiểm thử thích hợp
V kiểm thử hoạt động độc lập với sửa lỗi,
nhưng sửa lỗi phải phù hợp với chiến thuật kiểm thử
20/
20/
57
57

Kiểm thử từng đơn thể
a Trong kiểm thử đơn thể, người kiểm thử tiến hành :
V Kiểm thử từng đơn vị nhỏ nhất của mã nguồn, là các đơn thể
V Có thể tiến hành kiểm thử cùng lúc nhiều đơn thể
V Thường được sử dụng trong lập trình cấu trúc
(Top-Down Programing)
a Gọi M là đơn thể cần kiểm thử, có hai khả năng hay gặp :
V Sử dụng “cuống” (Stubs) khi những đơn thể do M gọi tới
không có mặt lúc kiểm thử
V Sử dụng “trình gọi” (Driver) khi những đơn thể gọi tới M
không có mặt lúc kiểm thử
a Tùy trường hợp có thể sử dụng một hoặc cả hai khả năng
21/
21/
57
57
Trường hợpsử dụng Stubs
a Những đơn thể do M gọi tới không có mặt lúc kiểm thử
V
V
Khi đ
Khi đ
ó
ó
, nh
, nh


ng đơn th
ng đơn th



v
v


ng m
ng m


t ph
t ph


i đư
i đư


c thay th
c thay th
ế
ế
b
b


i
i
c
c

á
á
c tr
c tr
ì
ì
nh đgl
nh đgl


cu
cu


ng
ng


(Stubs) c
(Stubs) c
ó
ó
c
c
ù
ù
ng giao di
ng giao di



n v
n v


i M
i M
V
V
C
C
á
á
c tr
c tr
ì
ì
nh
nh


cu
cu


ng
ng


th
th



c hi
c hi


n đ
n đ
ú
ú
ng ch
ng ch


c năng
c năng
m
m
à
à
ch
ch
ú
ú
ng đ
ng đ


i di
i di



n cho đơn th
n cho đơn th


v
v


ng m
ng m


t
t
Đơn thể M
Đơn thể M
Các trình Stubs
C
C
á
á
c tr
c tr
ì
ì
nh Stubs
nh Stubs
Các đơn thể

vắng mặt
C
C
á
á
c đơn th
c đơn th


v
v


ng m
ng m


t
t
22/
22/
57
57
V
V
í
í
d
d


ụ sử dụng Stubs
a
a
Gi
Gi


s
s


đơn th
đơn th


ki
ki


m th
m th


M g
M g


i th
i th



t
t


c s
c s


p x
p x
ế
ế
p :
p :
Procedure
Procedure
Sort
Sort
(T:
(T:
Array
Array
;
;
n:
n:
Integer
Integer
)

)
;
;
tuy nhiên th
tuy nhiên th


t
t


c
c
Sort
Sort
v
v


ng m
ng m


t
t
a
a
Ngư
Ngư



i ta c
i ta c
ó
ó
th
th


s
s


d
d


ng tr
ng tr
ì
ì
nh Stub thay th
nh Stub thay th
ế
ế
:
:
Procedure
Procedure
Sort

Sort
(T:
(T:
Array
Array
;
;
n:
n:
Integer
Integer
)
)
;
;
Writeln
Writeln
(
(


Dãy c
Dãy c


n s
n s


p x

p x
ế
ế
p l
p l
à
à
:
:


)
)
;
;
For
For
i:= 1
i:= 1
To
To
n
n
Do
Do
writeln
writeln
(T[i])
(T[i])
;

;
For
For
i:= 1
i:= 1
To
To
n
n
Do
Do
readln
readln
(T[i])
(T[i])
;
;
a
a
Ti
Ti
ế
ế
p theo,
p theo,
ngư
ngư


i ki

i ki


m th
m th


s
s


s
s


p x
p x
ế
ế
p dãy đã nh
p dãy đã nh


p
p
b
b


ng tay đ

ng tay đ


thay th
thay th
ế
ế
cho th
cho th


t
t


c s
c s


p x
p x
ế
ế
p v
p v


ng m
ng m



t
t
23/
23/
57
57
Trường hợpsử dụng Drive
a Những đơn thể gọi tới M không có mặt lúc kiểm thử
V Khi đó, đơn thể gọi tới M nhưng vắng mặt
phải được thay thế bởi một “trình gọi” (Driver)
V Trình Driver gọi M để M thực hiện trên tập dữ liệu thử,
sau đó so sánh kết quả tính được với các kết quả chờ đợi
Đơn thể M
Đơn thể M
Trình gọi
Tr
Tr
ì
ì
nh g
nh g


i
i
Các đơn thể
vắng mặt
C
C

á
á
c đơn th
c đơn th


v
v


ng m
ng m


t
t
24/
24/
57
57
Kiểm thử
t
t
í
í
ch h
ch h


p

p
a Mục đích kiểm thử
t
t
í
í
ch h
ch h


p :
p :
V
V
Đ
Đ


t
t


o m
o m


i liên k
i liên k
ế
ế

t gi
t gi


a c
a c
á
á
c đơn th
c đơn th


V
V
V
V


a
a kiểm thử
nh
nh


ng đơn th
ng đơn th


l
l



n
n
h
h
ì
ì
nh th
nh th
à
à
nh h
nh h


th
th


ng chương tr
ng chương tr
ì
ì
nh ho
nh ho
à
à
n ch
n ch



nh
nh
a
a
C
C
ó
ó
nhi
nhi


u phương ph
u phương ph
á
á
p ki
p ki


m th
m th


t
t
í
í

ch h
ch h


p :
p :
V
V
Phương ph
Phương ph
á
á
p
p


big bang
big bang


V
V
Phương ph
Phương ph
á
á
p ki
p ki



m th
m th


t
t


trên xu
trên xu


ng
ng
(Descendant,
(Descendant,
hay
hay
Top
Top
-
-
down Testing Method)
down Testing Method)
V
V
Phương ph
Phương ph
á
á

p ki
p ki


m th
m th


t
t






i lên
i lên
(Ascendant,
(Ascendant,
hay
hay
Bottom
Bottom
-
-
Up Testing Method)
Up Testing Method)
V
V

ki
ki


m th
m th


h
h


th
th


ng
ng
V
V
ki
ki


m th
m th


h
h



i quy
i quy
Nhap môn CNPM Ch.4 Kiểm thử 5
25/
25/
57
57
Phương ph
Phương ph
á
á
p
p


big bang
big bang


a
a
N
N


i dung phương ph
i dung phương ph
á

á
p :
p :
V
V
Xây d
Xây d


ng m
ng m


t phiên b
t phiên b


n h
n h


th
th


ng ho
ng ho
à
à
n ch

n ch


nh
nh
g
g


m t
m t


t c
t c


đơn th
đơn th


đ
đ


ti
ti
ế
ế
n h

n h
à
à
nh ki
nh ki


m th
m th


V
V
M
M


i đơn th
i đơn th


c
c


a h
a h


th

th


ng đ
ng đ


u s
u s


d
d


ng m
ng m


t tr
t tr
ì
ì
nh Drivers
nh Drivers
v
v
à
à
m

m


t tr
t tr
ì
ì
nh Stubs, tr
nh Stubs, tr


đơn th
đơn th


ch
ch
í
í
nh ph
nh ph


i đư
i đư


c ki
c ki



m th
m th


b
b


ng phương ph
ng phương ph
á
á
p ki
p ki


m th
m th


đơn v
đơn v


a
a
Phương ph
Phương ph
á

á
p
p


big bang
big bang


nguy hi
nguy hi


m :
m :
V
V
M
M


i sai s
i sai s
ó
ó
t c
t c
ó
ó
th

th


đ
đ


ng th
ng th


i xu
i xu


t hi
t hi


n,
n,
nhưng kh
nhưng kh
ó
ó
x
x
á
á
c đ

c đ


nh
nh
V
V
Đòi h
Đòi h


i m
i m


t lư
t lư


ng t
ng t


i đa c
i đa c
á
á
c tr
c tr
ì

ì
nh Drivers v
nh Drivers v
à
à
c
c
á
á
c tr
c tr
ì
ì
nh Stubs
nh Stubs
a
a
Th
Th


c t
c t
ế
ế
, n
, n





i ta
i ta
í
í
t s
t s


d
d


ng phương ph
ng phương ph
á
á
p
p


big bang
big bang


m
m
à
à
s

s


d
d


ng t
ng t
í
í
ch h
ch h


p t
p t


trên xu
trên xu


ng, hay t
ng, hay t







i lên
i lên
26/
26/
57
57
Kiểm t
h
h


t
t


trên xu
trên xu


ng
ng
a
a
Hay còn đgl
Hay còn đgl
phương ph
phương ph
á
á

p l
p l
ù
ù
i
i
. N
. N


i dung phương ph
i dung phương ph
á
á
p :
p :
V
V
B
B


t đ
t đ


u ki
u ki



m th
m th


đơn th
đơn th


ch
ch
í
í
nh
nh
V
V
Sau đ
Sau đ
ó
ó
ki
ki


m th
m th


c
c

á
á
c đơn th
c đơn th


do đơn th
do đơn th


ch
ch
í
í
nh g
nh g


i đ
i đ
ế
ế
n, v.v
n, v.v
V
V
Ch
Ch



d
d
ù
ù
ng m
ng m


t tr
t tr
ì
ì
nh Driver duy nh
nh Driver duy nh


t cho đơn th
t cho đơn th


ch
ch
í
í
nh,
nh,
nhưng m
nhưng m



i đơn th
i đơn th


còn l
còn l


i đ
i đ


u c
u c


n m
n m


t tr
t tr
ì
ì
nh Stubs
nh Stubs
Level 2 stubs
Level 2 stubs
Level 1
Level 1

Level 1
Level 1
Dãy các
kiểm thử
Dãy các
kiểm thử
Level 3 stubs
Level 3 stubs
Level 2
Level 2
Level 2
Level 2
Level 2
Level 2
Level 2
Level 2
27/
27/
57
57
Ví dụ kiểm t
h
h


t
t


trên xu

trên xu


ng
ng
a
a
Gi
Gi


s
s


A l
A l
à
à
đơn th
đơn th


ch
ch
í
í
nh ki
nh ki



m th
m th


đ
đ


u tiên v
u tiên v


i 1 Drive
i 1 Drive
1.
1.
A, stub(B), stub(C)
A, stub(B), stub(C)
2.
2.
A, B, stub(C), stub(D), stub(E), stub(F)
A, B, stub(C), stub(D), stub(E), stub(F)
3.
3.
A, B, C, stub(G), stub(D), stub(E), stub(F)
A, B, C, stub(G), stub(D), stub(E), stub(F)
4.
4.
A, B, C, D, stub(G), stub(E), stub(F)

A, B, C, D, stub(G), stub(E), stub(F)
5.
5.
A, B, C, D, E, stub(G), stub(F)
A, B, C, D, E, stub(G), stub(F)
6.
6.
A, B, C, D, E, F, stub(G), stub(H)
A, B, C, D, E, F, stub(G), stub(H)
7.
7.
A, B, C, D, E, F, G, stub(H)
A, B, C, D, E, F, G, stub(H)
8.
8.
A, B, C, D, E, F, G, H
A, B, C, D, E, F, G, H
28/
28/
57
57
Kiểm t
h
h


t
t







i lên
i lên
a
a
Hay còn đgl
Hay còn đgl
phương ph
phương ph
á
á
p ti
p ti
ế
ế
n
n
. N
. N


i dung phương ph
i dung phương ph
á
á
p
p

:
:
V
V
ki
ki


m th
m th


c
c
á
á
c đơn th
c đơn th


không g
không g


i đ
i đ
ế
ế
n c
n c

á
á
c đơn th
c đơn th


kh
kh
á
á
c
c
V
V
Ti
Ti
ế
ế
p t
p t


c c
c c
á
á
c đơn th
c đơn th



g
g


i đ
i đ
ế
ế
n c
n c
á
á
c đơn th
c đơn th


đã ki
đã ki


m th
m th




V
V
Đòi h
Đòi h



i m
i m


i đơn th
i đơn th


m
m


t Driver, không c
t Driver, không c


n Stub
n Stub
Mức N
Mức N
Mức N
Mức N
Mức N
Mức N
Mức N
Mức N
Mức N
Mức N

Mức N-1
Mức N-1
Mức N-1
Mức N-1
Mức N-1
Mức N-1
29/
29/
57
57
Ví dụ kiểm t
h
h


t
t






i lên
i lên
a
a
B
B



t đ
t đ


u ki
u ki


m th
m th


t
t


đơn th
đơn th


D
D


m
m


c th

c th


p nh
p nh


t
t
1.
1.
D, driver(D)
D, driver(D)
2.
2.
E, driver(E)
E, driver(E)
3.
3.
H, driver(H)
H, driver(H)
4.
4.
G, driver(G)
G, driver(G)
5.
5.
H, F, driver(F)
H, F, driver(F)
6.

6.
D, E, F,B, driver(B), driver(F)
D, E, F,B, driver(B), driver(F)
7.
7.
H, F, G, C, driver(C), driver(F)
H, F, G, C, driver(C), driver(F)
8.
8.
D, E, H, G, F, B, C, A
D, E, H, G, F, B, C, A
30/
30/
57
57
Đánh giá PP kiểm t
h
h


t
t






i lên
i lên

a
a
Phương ph
Phương ph
á
á
p ti
p ti
ế
ế
n t
n t


ra ưu đi
ra ưu đi


m hơn phương ph
m hơn phương ph
á
á
p l
p l
ù
ù
i :
i :
V
V

Do c
Do c
á
á
c tr
c tr
ì
ì
nh Driver s
nh Driver s


d
d


ng đ
ng đ
ế
ế
n d
n d


vi
vi
ế
ế
t hơn c
t hơn c

á
á
c tr
c tr
ì
ì
nh Stubs
nh Stubs
V
V
Thư
Thư


ng c
ng c
ó
ó
công c
công c


đ
đ


t
t



o sinh t
o sinh t


đ
đ


ng c
ng c
á
á
c tr
c tr
ì
ì
nh Drivers
nh Drivers
V
V
Th
Th


t
t


t
t

í
í
ch h
ch h


p thư
p thư


ng b
ng b


r
r
à
à
ng bu
ng bu


c b
c b


i th
i th



t
t


c
c
ó
ó
m
m


t
t
c
c


a c
a c
á
á
c đơn th
c đơn th


Nhap môn CNPM Ch.4 Kiểm thử 6
31/
31/
57

57
M
M


t
t PP
ki
ki


m th
m th


kh
kh
á
á
c (1)
c (1)
a
a
Sandwich testing:
Sandwich testing:
V
V
A, stub(B), stub(C)
A, stub(B), stub(C)
V

V
A, B, stub(C), stub(D), stub(E), stub(F)
A, B, stub(C), stub(D), stub(E), stub(F)
V
V
A, B, C, stub(G), stub(D), stub(E), stub(F)
A, B, C, stub(G), stub(D), stub(E), stub(F)
V
V
D, driver(D)
D, driver(D)
V
V
E, driver(E)
E, driver(E)
V
V
H, driver(H)
H, driver(H)
V
V
G, driver(G)
G, driver(G)
V
V
H, F, driver(F)
H, F, driver(F)
V
V
A, B, C, D, E, F, G, H

A, B, C, D, E, F, G, H
32/
32/
57
57
M
M


t
t PP
ki
ki


m th
m th


kh
kh
á
á
c (2)
c (2)
a
a
Build testing:
Build testing:
V

V
A, stub(B), stub(C)
A, stub(B), stub(C)
V
V
A, B, stub(C), stub(D), stub(E), stub(F)
A, B, stub(C), stub(D), stub(E), stub(F)
V
V
A, B, F, stub(H), stub(D), stub(E), stub(C)
A, B, F, stub(H), stub(D), stub(E), stub(C)
V
V
A, B, F, H, stub(D), stub(E), stub(C)
A, B, F, H, stub(D), stub(E), stub(C)
V
V
A, B, F, H, D, stub(E), stub(C)
A, B, F, H, D, stub(E), stub(C)
V
V
A, B, F, H, D, E, stub(C)
A, B, F, H, D, E, stub(C)
V
V
A, B, F, H, D, E, C, stub(G)
A, B, F, H, D, E, C, stub(G)
V
V
A, B, F, H, D, E, C, G

A, B, F, H, D, E, C, G
33/
33/
57
57
Ki
Ki


m th
m th


h
h


th
th


ng
ng
a
a
N
N


i dung phương ph

i dung phương ph
á
á
p :
p :
V
V
Ti
Ti
ế
ế
n h
n h
à
à
nh ki
nh ki


m th
m th


ho
ho
à
à
n ch
n ch



nh to
nh to
à
à
n b
n b


ph
ph


n m
n m


m
m
v
v
à
à
s
s


tương h
tương h



p v
p v


i ph
i ph


n c
n c


ng
ng
V
V
Đ
Đ
á
á
nh gi
nh gi
á
á
hi
hi


u năng

u năng
,
,
đ
đ


an to
an to
à
à
n,
n,
t
t
í
í
nh tương h
nh tương h


p v
p v


i c
i c
á
á
c đ

c đ


c t
c t


yêu c
yêu c


u, v.v . . .
u, v.v . . .
a
a
Đ
Đ


c đi
c đi


m ki
m ki


m th
m th



h
h


th
th


ng :
ng :
V
V
Đòi h
Đòi h


i nhi
i nhi


u th
u th


i gian, công s
i gian, công s


c

c
V
V
Trong nhi
Trong nhi


u trư
u trư


ng h
ng h


p, PP n
p, PP n
à
à
y còn đgl
y còn đgl
ki
ki


m th
m th


ch

ch


p nh
p nh


n
n
(Acceptance Testing),
(Acceptance Testing),
34/
34/
57
57
M
M


t s
t s

ố dạng
ki
ki


m th
m th



h
h


th
th


ng kh
ng kh
á
á
c
c
a
a
Ki
Ki


m th
m th


c
c
à
à
i đ

i đ


t (Setup Testing) :
t (Setup Testing) :
V
V
ki
ki


m th
m th


s
s


n ph
n ph


m cu
m cu


i c
i c
ù

ù
ng
ng
V
V
Ti
Ti
ế
ế
n h
n h
à
à
nh t
nh t


i v
i v


tr
tr
í
í
c
c


a kh

a kh
á
á
ch h
ch h
à
à
ng
ng
(v
(v


i c
i c
á
á
c m
c m
á
á
y t
y t
í
í
nh v
nh v
à
à
h

h


đi
đi


u h
u h
à
à
nh h
nh h


đang s
đang s


d
d


ng)
ng)
a
a
Do t
Do t
í

í
nh ph
nh ph


c t
c t


p c
p c


a ph
a ph


n m
n m


m,
m,
ngư
ngư


i ta thư
i ta thư



ng ki
ng ki


m th
m th


h
h


th
th


ng dư
ng dư


i d
i d


ng :
ng :
V
V
ki

ki


m th
m th


Alpha
Alpha
V
V
ki
ki


m th
m th


Beta
Beta
35/
35/
57
57
Ki
Ki


m th

m th


Alpha
Alpha
a Được tiến hành ngay tại nơi sản xuất PM
a
a
C
C
ó
ó
th
th


do kh
do kh
á
á
ch h
ch h
à
à
ng,
ng, NSD
ti
ti
ế
ế

n h
n h
à
à
nh ki
nh ki


m th
m th


trên
trên sản phẩm
a
a
N
N


i dung :
i dung :
V
V
Ki
Ki


m tra s
m tra s



n ph
n ph


m c
m c
ó
ó
ph
ph
ù
ù
h
h


p v
p v


i h
i h


p đ
p đ



ng
ng
đã ký v
đã ký v


i kh
i kh
á
á
ch h
ch h
à
à
ng hay chưa
ng hay chưa
V Người phát triển PM quan sát NSD dùng sản phẩm
và ghi nhận lại những lỗi phát sinh để sửa chữa
36/
36/
57
57
Kiểm thử Beta
aPM được kiểm tra bên ngoài phạm vi của đơn vị sản xuất
aNội dung
V
V
ki
ki



m th
m th


cho phiên b
cho phiên b


n (
n (
Version/Release)
Version/Release)
đ
đ


u tiên c
u tiên c


a PM
a PM
V
V
L
L


a ch

a ch


n kh
n kh
á
á
ch h
ch h
à
à
ng n
ng n
à
à
o đư
o đư


c tham gia ki
c tham gia ki


m th
m th


,
,
v

v
í
í
d
d


c
c
á
á
c trư
c trư


ng đ
ng đ


i h
i h


c, vi
c, vi


n nghiên c
n nghiên c



u
u
V Khách hành trực tiếp sử dụng và ghi nhận lỗi
để báo lại cho nhà phát triển sửa chữa
Nhap môn CNPM Ch.4 Kiểm thử 7
37/
37/
57
57
Kiểm thử hồi quy
a Còn đgl kiểm thử thoái lui (Regresgion Testing) :
V Tiến hành sau khi sửa lỗi, thường ở giai đoạn bảo trì PM
V Xác định các sai sót chưa được xử lý sau giai đoạn kiểm thử
V Lưu giữ những kết quả kiểm thử
đã tiến hành trong quá trình sản xuất PM
a Khó khăn của phương pháp :
V Chọn những kiểm thử nào cho kiểm thử thoái lui ?
V Số lượng các kiểm thử đã triển khai thường rất lớn,
dễ thay đổi
38/
38/
57
57
Kiểm thử hộp đen (BlackBox)
a Thường áp dụng cho những PM lớn
a Nội dung phương pháp :
V Kiểm tra các chức năng cụ thể của PM
V Không quan tâm cấu trúc bên trong
39/

39/
57
57
Kiểm thử hộp trắng (WhiteBox)
a Thường dùng cho những những PM nhỏ
a Nội dung phương pháp là kiểm tra cấu trúc điều khiển bên
trong chương trình với tiêu chí :
V Kiểm thử các đường độc lập trong dòng chảy của thuật giải
V Bảo đảm số phép thử là ít nhất đủ để phát hiện các lỗi
V Thử các điều kiện rẽ nhánh True và False
V Thử vòng lặp tại biên cũng như bên trong
V Thử cấu trúc dữ liệu để đảm bảo tính toàn vẹn của nó
a Kiểm thử hộp đen và kiểm thử hộp trắng
đều có khả năng tìm ra những nhóm lỗi khác nhau,
trong thực tế nên kết hợp cả hai
40/
40/
57
57
V
V
í
í
d
d

ụđồthị dòng chảy
a Cách xây dựng :
V Mỗi node hình tròn biểu diễn một hoặc một vài tác vụ
(hơi khác so với lưu đồ thuật toán)

V Cạnh có hướng miêu tả đường thực thi
a Đồ thị dòng chảy được xây dựng từ lưu đồ thuật toán
Sequence If Until While Case
41/
41/
57
57
Ví dụ xây dựng đồ thị dòng chảy
a
a
T
T


sơ đ
sơ đ


kh
kh


i :
i :
42/
42/
57
57
a
a

T
T


chương tr
chương tr
ì
ì
nh :
nh :
Procedure: DoSomething
1: do
while x=0
2: if
y=0 then
3: z=0;
4: elseif
k=0 then
5: z=1;
6: else
x=1;
7: endif
;
endif
;
8: enddo
9: end
Nhap môn CNPM Ch.4 Kiểm thử 8
43/
43/

57
57
Kỹ thuật gỡ rối (Debugging)
a Gỡ rối :
V Là công việc khó khăn và dễ gây tâm lý chán nản
V Nhiều nguyên nhân gây ra lỗi, nhưng nhiều khi lại mơ hồ :
 Do timeout
 Do độ chính xác
 Do chủ quan khi lập trình
a Mỗi lập trình viên, hay kiểm thử viên
đều có khả năng gỡ rối
a Có nhiều phương pháp gỡ rối :
V Brute Force
V Loại trừ nguyên nhân
V Theo vết
44/
44/
57
57
Phương pháp Brute Force
a Là phương pháp phổ biến nhất nhưng lại ít hiệu quả nhất
cho việc phát hiện nguyên nhân gây lỗi phần mềm
a Triết lý của phương pháp này là để máy tính tự tìm ra lỗi
a Áp dụng phương pháp này khi tất cả các phương pháp khác
đều thất bại
a Có 3 cách thực hiện :
V Lấy dữ liệu trong bộ nhớ để xem xét
V Dùng Run-Time Trace để tìm lỗi
V Dùng lệnh Write để in ra màn hình dữ liệu cần kiểm tra
45/

45/
57
57
Loại trừ nguyên nhân
a Phương pháp này dựa trên nguyên tắc phân chia nhị phân
a Cách thực hiện:
V Khi một lỗi được phát hiện, cố gắng đưa ra một danh sách
các nguyên nhân có thể gây ra lỗi
V Danh sách này được kiểm nghiệm lại để loại bỏ dần
các nguyên nhân không đúng cho đến khi tìm thấy
một nguyên nhân khả nghi nhất
V Khi đódữ liệu kiểm nghiệm sẽ được tinh chế lại
để tiếp tục tìm lỗi
46/
46/
57
57
Theo vết
a Là phương pháp gỡ lỗi khá phổ biến
V Có thể dùng thành công trong các chương trình nhỏ
V Khó áp dụng cho các chương trình rất lớn
a Cách thực hiện :
V Bắt đầu tại dòng mã nguồn có triệu chứng lỗi
thực hiện lần ngược trở lại từng dòng mã nguồn
cho đến khi tìm thấy dòng gây ra lỗi
47/
47/
57
57
Summary

Summary
aTesting is still a
black art
,
but many rules and heuristics are available
aTesting consists of component-testing
(unit testing, integration testing)
and system testing, and …
aOOT and architectural testing, still challenging
aUser-oriented reliability modeling
and evaluation not adequate
aTesting has its own lifecycle
a
a
Testing is still a
Testing is still a
black art
black art
,
,
but many rules and heuristics are available
but many rules and heuristics are available
a
a
Testing consists of
Testing consists of
component
component
-
-

testing
testing
(
(
unit testing, integration testing)
unit testing, integration testing)
and system testing
and system testing
, and
, and


a
a
OOT and architectural testing, still challenging
OOT and architectural testing, still challenging
a
a
User
User
-
-
oriented reliability modeling
oriented reliability modeling
and evaluation not adequate
and evaluation not adequate
a
a
Testing has its own lifecycle
Testing has its own lifecycle

48/
48/
57
57
What is this?
What is this?
A failure?
An error?
A fault?
Need to specify
the desired behavior first!
Nhap môn CNPM Ch.4 Kiểm thử 9
49/
49/
57
57
Erroneous State (
Erroneous State (


Error
Error


)
)
50/
50/
57
57

Algorithmic Fault
Algorithmic Fault
51/
51/
57
57
Mechanical Fault
Mechanical Fault
52/
52/
57
57
How do we deal
How do we deal
with Errors and Faults?
with Errors and Faults?
53/
53/
57
57
Verification?
Verification?
54/
54/
57
57
Modular Redundancy?
Modular Redundancy?
Nhap môn CNPM Ch.4 Kiểm thử 10
55/

55/
57
57
Declaring the Bug
Declaring the Bug
as a Feature?
as a Feature?
56/
56/
57
57
Patching?
Patching?
57/
57/
57
57
Testing?
Testing?

×