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

công nghệ phần mềm chương 8 kiểm thử phần mềm

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 (678.98 KB, 65 trang )

Công Nghệ Phần Mềm
1
CÔNG NGHỆ PHẦN MỀM
Chương 8
Kiểm thử phần mềm
MÔN HỌC
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
Công Nghệ Phần Mềm
2
Chương 8 : Kiểm thử phần mềm
8.1 V & V (Verification and Validation)
8.2 Kiểm thử
8.3 Quá trình kiểm thử
8.2 Kiểm thử hướng đối tượng
Công Nghệ Phần Mềm
3
• Kiểm chứng và thẩm định bao gồm kiểm thử phần
mềm
• Kiểm chứng (Verification): “Chúng ta đang xây
dựng sản phẩm theo đúng cách"
 Phần mềm phải phù hợp với đặc tả của nó
• Thẩm định (Validation): “Chúng ta đang xây dựng
sản phẩm đúng"
 Phần mềm phải thực hiện những gì người dùng thật sự
cần
8.1 Kiểm chứng và thẩm định
Công Nghệ Phần Mềm
4
• Là một quá trình được thực hiện trong toàn bộ chu
kỳ sống phần mềm. V & V phải được áp dụng cho
mỗi giai đoạn của tiến trình phần mềm


• Có 2 mục tiêu chính
 Khám phá những khiếm khuyết trong hệ thống
 Đánh giá là hệ thống có tính sử dụng hay không trong
một tình huống hoạt động cụ thể
Tiến trình V & V
Công Nghệ Phần Mềm
5
• Kiểm tra tĩnh (static verification): Kiểm tra phần
mềm tập trung phân tích biểu diễn hệ thống tĩnh
nhằm phát hiện vấn đề
 Có thể được bổ sung bằng tài liệu, dựa vào công cụ và
phân tích code
• Kiểm tra động (dynamic verification) Kiểm tra phần
mềm tập trung vào thử thách và quan sát ứng xử
của sản phẩm
 Hệ thống được thực thi với dữ liệu kiểm tra và quan sát
những hành vi của nó
Kiểm tra tĩnh và động
Công Nghệ Phần Mềm
6
V & V tĩnh và động
Formal
specification
High-level
design
Requirements
specification
Detailed
design
Program

Prototype
Dynamic
validation
Static
verification
Công Nghệ Phần Mềm
7
• Có thể nhận ra sự hiện diện của một số lỗi
• Một kiểm tra thành công là một kiểm tra mà khám
phá ra một hay nhiều lỗi
• Một kỹ thuật thẩm định tốt nhất cho những yêu
cầu phi chức năng
• Phải được dùng với việc kết hợp kiểm tra tĩnh nhằm
cung cấp một V&V đầy đủ
Kiểm thử chương trình (program)
Công Nghệ Phần Mềm
8
Đích của V& V
• Kiểm chứng và thẩm định phải tạo ra một sự tin
tưởng rằng phần mềm phù hợp với mục đích
• Điều này không có nghĩa là hoàn toàn không có
khiếm khuyết
• Cho biết phần mềm đủ tốt cho việc sử dụng theo
mục đích của nó. Loại sử dụng phần mềm sẽ xác
định mức độ tin tưởng cần thiết
Công Nghệ Phần Mềm
9
• Kiểm thử và debug khiếm khuyết là những quá
trình riêng biệt
• Kiểm thử tập trung việc xác nhận có khiếm khuyết

trong chương trình
• Việc debug tập trung vào vị trí lỗi và sửa lỗi
Kiểm thử và sửa lỗi (debug)
Công Nghệ Phần Mềm
10
Thẩm định tính bảo mật (Security)
• Thẩm định tính bảo mật và thẩm định về an toàn
có những vấn đề chung
• Người ta có ý định chứng minh rằng hệ thống
không thể đi vào một số trạng thái (không an toàn
hay không bảo mật) hơn là hệ thống có thể làm
điều gì đó
• Chúng có những khác biệt
 Vấn đề an toàn liên quan tới vấn đề tai nạn; vấn đề bảo
mật liên quan tới vấn đề có chủ ý
 Vấn đề an toàn thì liên quan tới miền ứng dụng, vấn đề
bảo mật thì chung hơn
Công Nghệ Phần Mềm
11
Thẩm định bảo mật (Security)
• Thẩm định dựa vào kinh nghiệm
 Hệ thống được kiểm tra và phân tích chống lại những
loại tấn công được biết
• Thẩm định dựa vào Tool
 Nhiều công cụ như những bộ kiểm tra PWD được dùng
để phân tích hệ thống đang hoạt động
• Nhóm Tiger
 Nhóm có mục đích xuyên thủng hệ thống bảo mật của
hệ thống bằng cách tấn công đồng thời vào hệ thống
Công Nghệ Phần Mềm

12
8.2 Kiểm thử phần mềm (Testing)
Testing is the process of exercising a
Testing is the process of exercising a
program with the specific intent of finding
program with the specific intent of finding
errors prior to delivery to the end user.
errors prior to delivery to the end user.
Công Nghệ Phần Mềm
13
Ai kiểm thử phần mềm?
developer
developer
independent tester
independent tester
Understands the system
Understands the system
but, will test "gently"
but, will test "gently"
and, is driven by "delivery"
and, is driven by "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 quality
and, is driven by quality
Công Nghệ Phần Mềm
14
Mục tiêu của kiểm thử phần mềm

• Mục tiêu của kiểm thử phần mềm là tìm ra lỗi (nếu
có) với chi phí thấp nhất.
• Kiểm thử phần mềm giúp
 Phát hiện được lỗi trong chương trình (nếu có).
 Chứng minh được phần mềm hoạt động đúng
như đã thiết kế.
Æ Chứng minh phần mềm được viết đúng
 Chứng minh được phần mềm đáp ứng yêu cầu
của user
Æ Góp phần chứng minh chất lượng của phần mềm.
Công Nghệ Phần Mềm
15
Mục tiêu của kiểm nghiệm phần mềm
• Quá trình kiểm nghiệm phần mềm là tốt khi
 Có khả năng tìm ra lỗi cao.
 Không dư thừa.
 Biết chọn lọc: chỉ kiểm nghiệm những phần nào
có khả năng tìm ra lỗi đặc trưng.
 Không quá phức tạp cũng không quá đơn giản.
• Chú ý: Kiểm nghiệm phần mềm không khẳng định
được phần mềm không còn khiếm khuyết, chỉ
khẳng định được phần mềm có lỗi và giúp giảm
thiểu lỗi
Công Nghệ Phần Mềm
16
Kiểm thử phần mềm
Methods
Strategies
white-box
methods

black-box
methods
Công Nghệ Phần Mềm
17
Kết hợp kiểm thử
• Phân loại:
 Kiểm nghiệm black-box: kiểm tra các chức năng
cụ thể của phần mềm, không quan tâm cấu trúc
bên trong, thường áp dụng cho những module lớn.
 Kiểm nghiệm white-box: kiểm tra cấu trúc điều
khiển bên trong chương trình, thường dùng cho
những những module nhỏ.
• Mỗi loại kiểm nghiệm có khả năng tìm ra những
nhóm lỗi khác nhau Æ nên kết hợp cả hai
Công Nghệ Phần Mềm
18
Thiết kế Test case
• Thiết lập các test case – vận hành thử - so sánh kết quả
• Khái niệm test-case
 Dữ liệu input
 Thao tác kiểm nghiệm
 Dữ liệu output hay đáp ứng mong đợi của chương
trình
• Test-case cho kiểm nghiệm black-box: chủ yếu dựa vào
các yêu cầu cụ thể của chức năng phần mềm.
• Test-case cho kiểm nghiệm white-box: chủ yếu dựa vào
cấu trúc điều khiển của phần mềm Æ vấn đề đặt ra: số
lượng test-case cần thiết là quá lớn
Công Nghệ Phần Mềm
19

Thiết kế Test Case
"Bugs lurk in corners
"Bugs lurk in corners
and congregate at
and congregate at
boundaries "
boundaries "
Boris
Boris
Beizer
Beizer
OBJECTIVE
OBJECTIVE
CRITERIA
CRITERIA
CONSTRAINT
CONSTRAINT
to uncover errors
to uncover errors
in a complete manner
in a complete manner
with a minimum of effort and time
with a minimum of effort and time
Công Nghệ Phần Mềm
20
Kiểm thử Black-Box
requirements
requirements
events
events

input
input
output
output
Công Nghệ Phần Mềm
21
Kiểm thử Black-Box
• Một hướng kiểm thử mà xem chương trình như một
hộp đen (black-box)
• Những test case được thiết kế dựa vào đặc tả hệ
thống
• Kế hoạch kiểm thử có thể bắt đầu sớm trong qui
trình phần mềm
Công Nghệ Phần Mềm
22
Kiểm thử Black-Box
I
e
Input test data
O
e
Output test results
System
Inputs causing
anomalous
behaviour
Outputs which reveal
the presence of
defects
Công Nghệ Phần Mềm

23
Kiểm thử White-Box (chức năng)
our goal is to ensure that all
our goal is to ensure that all
statements and conditions have
statements and conditions have
been executed at least once
been executed at least once
Công Nghệ Phần Mềm
24
Kiểm nghiệm các đường độc lập cơ bản
• Kiểm nghiệm white-box dựa vào cấu trúc điều
khiển của thiết kế thủ tục để sinh các test-case với
tiêu chí
 Kiểm nghiệm các đường độc lập cơ bản là một trong
những phương cách kiểm nghiệm white-box
 Bảo đảm số phép thử là ít nhất đủ để phát hiện các lỗi
 Tất cả các đường thực thi độc lập được thử qua ít nhất
một lần
 Thử các điều kiện rẽ nhánh ở cả 2 nhánh true và false
 Thử qua vòng lặp tại biên cũng như bên trong
 Thử qua cấu trúc dữ liệu để đảm bảo tính toàn vẹn của

Công Nghệ Phần Mềm
25
Các cấu trúc cơ bản

×