You are on page 1of 20

Kiểm nghiệm phần mềm

GV. Nguyễn Minh Huy

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 1


Nội dung
 Khái niệm kiểm nghiệm
nghiệm..
 Các hình thức kiểm nghiệm
nghiệm..
 Quy trình kiểm nghiệm
nghiệm..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 2


Nội dung
 Khái niệm kiểm nghiệm
nghiệm..
 Các hình thức kiểm nghiệm
nghiệm..
 Quy trình kiểm nghiệm
nghiệm..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 3


Khái niệm kiểm nghiệm
 Kiểm và Nghiệm (V & V):
Tiêu chí Verification Validation
Ngữ cảnh Kiểm tra phần mềm Nghiệm thu phần mềm
Ý nghĩa Phần mềm có đúng với Phần mềm có thỏa mãn
đặc tả? nhu cầu Stakeholders??
Mục tiêu Phát hiện lỗi cài đặt Phát hiện hiểu sai
Đối tượng thực hiện Đội ngũ phát triển Stakeholders
Cách thức thực hiện Vận hành hoặc không Vận hành phần mềm
vận hành phần mềm
Build the thing right?? Build the right thing??

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 4


Khái niệm kiểm nghiệm
 Phân loại Verification:
 Kiểm tra động (dynamic verification):
 Kiểm tra bằng vận hành
hành,, dùng thử.
thử.
 Kiểm thử phần mềm (software testing).
 Kiểm tra hộp đen (black
(black--box testing).
 Dựa trên đầu vào và đầu ra.
ra.
 Ưu điểm
điểm::
 Ít tốn kém (phần mềm bình thường
thường).
).
 Kiểm tra yêu cầu phi chức năng
năng..
 Nhược điểm
điểm::
 Tốn kém (phần mềm chuyên dụng
dụng).
).
 Phần mềm phải hoàn thành
thành..
 Có thể bỏ sót lỗi.
lỗi.

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 5


Khái niệm kiểm nghiệm
 Phân loại Verification:
 Kiểm tra tĩnh (static verification):
 Kiểm tra bằng xét duyệt,
duyệt, chứng minh
 Kiểm chứng phần mềmmềm..
 Kiểm tra hộp trắng (white
(white--box testing).
 Dựa trên nội dung bên trong
trong..
 Ưu điểm
điểm::
 Không cần hoàn thành phần mềm
mềm..
 Không cần vận hành
hành..
 Phát hiện được lỗi tìm ẩn.
ẩn.
 Nhược điểm
điểm::
 Chi phí nhân công
công..
 Cần đội ngũ kinh nghiệm
nghiệm..
 Tốn thời gian,
gian, công sức
sức..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 6


Khái niệm kiểm nghiệm
 Phân loại Validation:
 Nghiệm thu Alpha (Alpha Testing):
 Nghiệm thu có giới hạn
hạn..
 Triển khai thí điểm
điểm..
 Chọn lọc đối tượng tham gia.
gia.
 Vận hành có kiểm soát
soát..
 Nghiệm thu Beta (Beta Testing):
 Nghiệm thu không giới hạn
hạn..
 Triển khai đại trà
trà..
 Không hạn chế đối tượng tham gia.
gia.
 Vận hành tự do.

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 7


Khái niệm kiểm nghiệm
 Tóm tắt các loại kiểm nghiệm
nghiệm::

Kiểm tra (Verification) Nghiệm thu (Validation)

Kiểm thử (động) Nghiệm thu Alpha


(Testing) (Alpha Testing)

Kiểm chứng (tĩnh) Nghiệm thu Beta


(Static Verification) (Beta Testing)

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 8


Nội dung
 Khái niệm kiểm nghiệm
nghiệm..
 Các hình thức kiểm nghiệm
nghiệm..
 Quy trình kiểm nghiệm
nghiệm..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 9


Các hình thức kiểm nghiệm
 Kỹ thuật kiểm tra tĩnh
tĩnh::
 Thanh tra phần mềm (Software Inspection):
 Micheal Fagan đề xuất 1979.
 Kiểm tra bằng cách đọc nội dung.
 Đội ngũ thanh tra độc lập.
lập.
 Ưu điểm
điểm::
 Có thể thực hiện ở mỗi pha
pha..
 Rất hiệu quả để tìm lỗi.
lỗi.
 Khuyết điểm
điểm::
 Đội ngũ nhiều kinh nghiệm
nghiệm..
 Tốn kém thời gian và chi phí
phí..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 10


Các hình thức kiểm nghiệm
 Kỹ thuật kiểm tra tĩnh
tĩnh::
 Model Checking:
 Kiểm tra bằng cách chứng minh.
 Mô hình toán học sản phẩm kiểm tra
tra..
 Chứng minh mô hình đúng đắn
đắn..
 Thực hiện ở pha phân tích
tích,, thiết kế.
kế.
 Ưu điểm
điểm::
 Kiểm tra đúng đắn hoàn toàn
toàn..
 Có thể thực hiện tự động
động..
 Khuyết điểm
điểm::
 Phức tạp để mô hình hóa
hóa..
 Chưa có công cụ tự động hiệu quả
quả..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 11


Các hình thức kiểm nghiệm
 Kỹ thuật kiểm tra động
động::
 Test Case:
Dữ liệu đầu vào
 Kiểm tra đầu vào đầu ra.
ra.
 Dùng kịch bản kiểm thử.
thử.
 Các đối tượng kiểm tra
tra::
 Một đoạn mã nguồn
nguồn..
 Một tình huống Use Case.
 Một chức năng hoàn chỉnh
chỉnh..
 Nội dung Test Case:
 Ngữ cảnh kiểm tra
tra..
Kết quả mong đợi
 Dữ liệu đầu vào
vào..
 Kết quả đầu ra mong đợi
đợi.. Kết quả thực tế
 Các bước thực hiện
hiện..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 12


Các hình thức kiểm nghiệm
 Test Case tình huống “Nhập sách thất bại”:
bại”:
Test Case Nhập sách thất bại

Related Use Case Nhập sách mới

Context Đăng nhập với quyền “Thủ thư”

Input Data Tên sách: Chiến tranh và Hòa bình


Tác giả: (trống)
Nhà xuất bản: (trống)
Số tập: 2 tập
w
Expected Output Hiện thông báo “Lỗi: Thông tin sách bạn nhập vào không đầy đủ!”.
Thông tin sách không được lưu vào cơ sở dữ liệu.
Test Steps 1. Đăng nhập vào hệ thống: (username “nmhuy”, password “12345”
2. Chọn chức năng “Nhập sách mới” (menu “Sách / Nhập sách”)
3. Nhập thông tin như Input Data.
4. Nhấn nút cập nhật.

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 13


Nội dung
 Khái niệm kiểm nghiệm
nghiệm..
 Các hình thức kiểm nghiệm
nghiệm..
 Quy trình kiểm nghiệm
nghiệm..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 14


Quy trình kiểm nghiệm
 Mô hình chữ V (V
(V--Model):

Project Acceptance
Planning Testing

Requirement System
Analysis Testing

Software Integration
Design Testing

Coding Unit Testing

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 15


Quy trình kiểm nghiệm
 Các pha kiểm nghiệm
nghiệm::
 Kiểm thử đơn vị (Unit Testing):
 Kiểm tra từng đơn vị lập trình
trình..
 Các hàm trong mã nguồn
nguồn..
 Thực hiện trong môi trường cô lập. lập.
 Lập trình viên thực hiện
hiện..
 Unit Test Case:
Unit Test Case Chia cho số không

Context (Không có)

Method Number.divide(float a, float b)

Input Data a=5


b=0
Expected Output Exception: Divided by zero

Test Steps float c = Number.divide(5, 0)

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 16


Quy trình kiểm nghiệm
 Các pha kiểm nghiệm
nghiệm::
 Kiểm thử tích hợp (Sub
(Sub--system Testing).
 Kiểm tra một nhóm đơn vị lập trình
trình..
 Kiểm tra sự phối hợp hoạt động
động..
 Dancing testing.
 Thực hiện trong môi trường tích hợp
hợp..

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 17


Quy trình kiểm nghiệm
 Các pha kiểm nghiệm
nghiệm::
 Kiểm thử hệ thống (System Testing).
 Kiểm tra toàn bộ hệ thống
thống..
 Hệ thống hoạt động như đặc tả
tả?
?
 Thực hiện trong môi trường giả lập.
lập.
 Phân loại
loại::
 Functional Testing.
 Non--functional Testing.
Non

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 18


Quy trình kiểm nghiệm
 Các pha kiểm nghiệm
nghiệm::
 Nghiệm thu phần mềm (Acceptance Testing).
 Khách hàng dùng thử.
thử.
 Hệ thống thỏa mãn nhu cầu
cầu?
?
 Thực hiện trong môi trường vận hành thật sự.
sự.
 Phân loại
loại::
 Nghiệm thu Alpha.
 Nghiệm thu Beta.

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 19


Bài tập
 Bài tập viết Test Case:
 Hệ thống “Online Bookstore”.
 Công việc
việc::
 Chức năng “Check
“Check--out đơn hàng
hàng”:
”:
 Thiết kế màn hình
hình..
 Viết các test case để kiểm tra tất cả tình huống có thể xảy ra.
ra.
 Chức năng “Thêm sách mới vào hệ thống
thống”:
”:
 Thiết kế màn hình
hình..
 Viết các test case để kiểm tra tất cả tình huống có thể xảy ra.
ra.

Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 20

You might also like