Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 1
Bài 7:
Xác minh và thẩm định
KỸ NGHỆ PHẦN MỀM
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 2
NỘI DUNG
Đại cương
Các giai đoạn kiểm thử
Các loại kiểm thử
Tổ chức kiểm thử
Các hoạt động kiểm thử
Chiến lược kiểm thử tích hợp
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 3
Tài liệu
Pressman, Kỹ nghệ phần mềm, chương
18~19.
Sommerville: Software Engineering, chương
22, 23.
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 4
Xác minh (Verification)
- có đúng đặc tả không, có đúng thiết kế không
- phát hiện lỗi lập trình
Thẩm định (Validation)
- có đáp ứng nhu cầu người dùng không
- có hoạt động hiệu quả không
- phát hiện lỗi phân tích, lỗi thiết kế (lỗi mức cao)
V & V - Validation & Verification
ĐẠI CƯƠNG – Các khái niệm
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 5
Thẩm định/xác minh tĩnh
(kiểm tra - software inspection)
- không thực hiện chương trình
- xét duyệt yêu cầu, thiết kế, mã nguồn
- tiến hành ở mọi công đoạn phát triển
- khó đánh giá tính hiệu quả của sản phẩm
ĐẠI CƯƠNG – Các khái niệm
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 6
ĐẠI CƯƠNG – Các khái niệm
Thẩm định/xác minh động
(kiểm thử – software testing)
- thực hiện chương trình
- cần có mã nguồn
- phát hiện lỗi lập trình
- đánh giá tính hiệu quả phần mềm
- là cách duy nhất để kiểm tra yêu cầu phi chức năng
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 7
ĐẠI CƯƠNG – Mục tiêu
Xác định được mức độ phần mềm đáp ứng
được các yêu cầu (độ tin cậy)
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 8
ĐẠI CƯƠNG - Thời điểm tiến hành
Tiến hành ở mọi công đoạn phát triển phần mềm
phân tích
- xét duyệt đặc tả yêu cầu
thiết kế
- xét duyệt đặc tả thiết kế
mã hóa
- kiểm thử chương trình
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 9
ĐẠI CƯƠNG – Yêu c u i v i ki m thầ đố ớ ể ử
Tính lặp lại
- kiểm thử phải lặp lại được (kiểm tra xem
lỗi đã được sửa hay chưa)
- dữ liệu/trạng thái phải mô tả được
Tính hệ thống
- đảm bảo kiểm tra hết các trường hợp
Được lập tài liệu
- kiểm soát tiến trình/kết quả
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 10
Trong môi trường của phía phát triển
Kiểm thử đơn vị
Kiểm thử tích hợp
Kiểm thử hệ thống phần mềm
Kiểm thử chấp nhận
Trong môi trường của phía khách hàng
Kiểm thử alpha
Kiểm thử beta
Kiểm thử hệ thống thông tin
CÁC GIAI ĐOẠN KIỂM THỬ
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 11
CÁC GIAI ĐOẠN KIỂM THỬ - Phía phát triển
Methods
Combinations of
methods in
class
Packages
of classes
OO:
Include use-
cases
Function
Module
Module combination
Integration
tests
System
tests
Unit
tests
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 12
•
Unit test/Module test
(kiểm thử đơn vị)
•
Integration test
(test tích hợp)
•
System test
(test hệ thống phần mềm)
•
Acceptance test
(test chấp nhận)
•
Dựa vào TL thiết kế chi tiết
•
Test 1 module (hàm, thủ tục, đoạn code,
component…)
•
Dựa vào TL thiết kế tổng thể
•
Kiểm tra sự tương tác giữa các module
•
Dựa vào TL đặc tả yêu cầu phần mềm
•
Kiểm tra toàn bộ hệ thống
•
Dựa vào yêu cầu nghiệp vụ của khách hàng
CÁC GIAI ĐOẠN KIỂM THỬ - Phía phát triển
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 13
Kiểm thử alpha
Là kiểm thử chấp nhận được tiến hành ở môi
trường khách hàng.
CÁC GIAI ĐOẠN KIỂM THỬ - Phía khách hàng
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 14
Mở rộng của alpha testing
Được tiến hành với một lượng lớn users
User tiến hành kiểm thử không có sự hướng dẫn
của người phát triển
Thông báo lại kết quả cho người phát triển
Kiểm thử bê ta
CÁC GIAI ĐOẠN KIỂM THỬ - Phía khách hàng
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 15
M r ng ph m vi ki m th , nhìn nh n ph n m m ở ộ ạ ể ử ậ ầ ề
là m t y u t trong m t HTTT ph c t pộ ế ố ộ ứ ạ
Ki m tra các y u t :ể ế ố
•
Kh n ng ph c h i sau l iả ă ụ ồ ỗ
•
an toànĐộ
•
Hi u n ng và gi i h n c a ph n m mệ ă ớ ạ ủ ầ ề
CÁC GIAI ĐOẠN KIỂM THỬ - Phía khách hàng
Kiểm thử hệ thống
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 16
Kiểm thử chức năng (functional testing)
- dựa trên đặc tả chức năng
- phát hiện các sai sót về chức năng
- không quan tâm đến cách cài đặt
(black box)
Kiểm thử cấu trúc (structured testing)
- kiểm thử có nghiên cứu mã nguồn
- phân tích thứ tự thực hiện các lệnh
(white box)
CÁC LOẠI KIỂM THỬ
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 17
Các đồ thị luồng chương trình
Sequential statement block
If C Then S1 else S2;
S1
S2
C
If C Then S1;
S1
C
Case C of
L1: S1;
L2: S2;
…
Kn: Sn;
end;
Sn
C
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 18
Các đồ thị luồng chương trình
While C do S;
S
C
Do loop:
do S1 until C;
S1
C
For loop:
for I = 1 to n do S;
S
I = 1
I <=n
yes
no
F
T
T
F
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 19
CÔNG VIỆC CỦA TESTER
Tham gia phân tích yêu cầu của khách hàng
Lập kế hoạch test
Xây dựng tiêu chuẩn nghiệm thu
Xây dựng hướng dẫn test (bản thiết kế test, kịch bản test)
Thực hiện test
Hỗ trợ các vấn đề liên quan đến test
Báo cáo và tổng hợp kết quả test
Lập và lưu trữ các hồ sơ liên quan đến test
Thu thập và kiểm soát các dữ liệu liên quan đến các hoạt động test
Tính toán và phân tích các chỉ tiêu liên quan đến các hoạt động test
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 20
CÁC HOẠT ĐỘNG KIỂM
THỬ
Cài đặt và chuẩn bị
Test
Bắt đầu
Lập kế hoạch Test
Thiết kế Test
Test tích hợp
Kết thúc
Test hệ thống
Tổng hợp, báo cáo
Xem xét và Đánh giá
kết quả test
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 21
Construction Thử nghiệm
Construction Lập trình
Solution Thiết kế kiến trúc
Definition Xác định yêu cầu
Cài đặt và chuẩn bị
Test
Bắt đầu
Lập kế hoạch Test
Thiết kế Test
Test tích hợp
Kết thúc
Test hệ thống
Tổng hợp, báo cáo
Xem xét và Đánh giá
kết quả test
Termination (Kết thúc)
Transition (Triển khai)
Definition (Xác định yêu cầu)
Solution (Thiết kế kiến trúc)
Construction (Xây dựng)
Coding (lập trình)
Testing (thử nghiệm)
Initiation (khởi động)
CÁC HOẠT ĐỘNG KIỂM
THỬ
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 22
CÁC HOẠT ĐỘNG
Xác định các test case
Phân hoạch tương đương
Đường đi trong mô đun
Mô tả các test case
Vấn đề của thiết kế test
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 23
Tên mô đun/chức năng muốn kiểm thử
Dữ liệu vào
- dữ liệu thông thường: số, xâu kí tự, file,...
- môi trường thử nghiệm: phần cứng, OS,...
- thứ tự thao tác (khi kiểm thử giao diện)
Kết quả mong muốn
- thông thường: số, xâu kí tự, file,...
- màn hình, thời gian phản hồi
Kết quả thực tế
CÁC HOẠT ĐỘNG – mô tả test case
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 24
Thiết kế test cases
Nội dung cần có
Test Case ID: Test Item:
Wrote By: (tester name) Documented Date:
Test Type: Test Suite#:
Product Name: Release and Version No.:
Test case description:
Operation procedure:
Pre-conditions: Post-conditions:
Inputs data and/or events: Expected output data and/or events:
Required test scripts:
© Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 25
Phân tích và báo cáo
Khi nào tiến hành phân tích và báo cáo?
Khi có lỗi được tìm thấy, cần phải viết báo cáo ngay
Nội dung của báo cáo?
Problem ID current software name, release no. and version no.
Test type Reported by Reported date Test case ID
Subsystem (or module name) Feature Name (or Subject)
Problem type (REQ, Design, Coding, …) Problem severity (Fatal, Major, Minor, ..)
Problem summary and detailed description
Cause analysis How to reproduce? Attachments