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

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



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



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

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/

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

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

a
M
M


t
t
t
t


p d
p d


li
li


u th
u th


:
:
V
V
L
L
à

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


ng t


p d
p d


li
li


u th
u th


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

a
Ngư
Ngư


i ki
i ki


m th
m th


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


m th
m th


) :
) :
V

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) :


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


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/

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ả



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

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

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ả

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

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



v
v


ng m
ng m


t ph
t ph


i đư
i đư


c thay th
c thay th
ế
ế
b
b


i
i
c
c

n v
n v


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


cu
cu


ng
ng


th
th



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ể

ụ 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


)
;
;
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ư


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


Dãy c
Dãy c


n s
n s


p x

;
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

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


á
á
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

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



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
í
í

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
á
á

ki
ki


m th
m th


h
h


th
th


ng
ng
V
V
ki
ki


m th
m th


h
h

á
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 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

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


á
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

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
ì


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


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
á
á

m th
m th


đơn th
đơn th


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


m th
m th


c
c

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



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


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)





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

á
á
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





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


t đ
t đ


u ki
u ki


m th
m th


t
t


đơn th
đơn th


D
D


m
m


c th

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

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

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

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

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

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

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



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

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


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


h
h


th
th


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


m th
m th


c
c
à
à
i đ

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


i v
i v


tr
tr
í
í
c
c


a kh

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
í


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

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 ph
n ph


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


p v
p v


i h
i h


p đ
p đ




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

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


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)

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/

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

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

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/


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status