Tùy theo chương trình đào tạo, mà mỗi giáo trình có cách gọi khác nhau đối với khái niệm: các kỹ thuật kiểm thử, các phương pháp kiểm thử, các hình thức kiểm thử, chiến lược kiểm thử..
Trang 1Nhóm 2 - Lớp CNTT.Quận 5
4 Nguyễn Trần Kim Hưng
5 Nguyễn Văn Long
GV hướng dẫn: Thầy Lương Trần Hy Hiến
Trang 2LÝ DO CHỌN BÁO CÁO
1. Tùy theo chương trình đào tạo, mà mỗi giáo trình có
cách gọi khác nhau đối với khái niệm: các kỹ thuật kiểm thử, các phương pháp kiểm thử, các hình thức kiểm thử, chiến lược kiểm thử.
2. Qua tìm hiểu nhằm hệ thống hóa được khái niệm
“Các hình thức kiểm thử phần mềm” theo cách gọi thông dụng nhất.
Trang 3Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
3
NỘI DUNG BÁO CÁO
Trang 4 Chủ yếu phân tích các khái niệm về kiểm thử và các hình thức kiểm thử mà nhóm tìm hiểu được.
Chưa đi sâu việc thiết kế test – case
ứng với từng hình thức kiểm thử.
PHẠM VI BÁO CÁO
Trang 5Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
5
* Tài liệu tham khảo
Để thực hiện được báo cáo tìm hiểu này, nhóm chúng tôi đã tìm hiểu và tham khảo trên các tài liệu như sau:
1 Bài 07 trong Bài giảng môn NMCNPM của Thầy Lương Trần Hy Hiến.
2 Các bài viết, thảo luận về kiểm thử trên website http://www.testingvn.com/
Trang 7Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
7
I.1 Kiểm thử phần mềm là gì?
Kiểm thử phần mềm có nhiều cách định nghĩa khác nhau Nhưng đều bao hàm hai nội dung cơ bản là: phát hiện lỗi và đánh giá chất lượng của phần mềm.
Định nghĩa của Myers: “ Kiểm thử là tiến trình thực thi chương trình với mục đích tìm thấy lỗi ”.
Trang 8 Mục đích thứ nhất (Kiểm thử thiếu sót):
- Để khám phá lỗi hay thiếu sót trong phần mềm
mà do đó phần mềm hành xử không đúng hay không tuân thủ theo đặc tả của nó.
- Một test thành công là một test làm cho hệ thống thi hành không đúng và do đó lộ ra thiếu sót trong hệ thống.
I.2 Mục đích của kiểm thử
Trang 9Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
Trang 10I.3 Một số nguyên tắc kiểm thử
Kiểm thử phải được lập kế hoạch.
Một ca kiểm thử phải định nghĩa kết quả mong muốn.
Các ca kiểm thử nên được thiết kế cho cả những
dữ liệu vào hợp lệ và không hợp lệ.
Một ca kiểm thử tốt là ca kiểm thử có khả năng cao phát hiện những lỗi chưa được tìm thấy
Trang 11Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
11
I.3 Một số nguyên tắc kiểm thử
Kiểm thử nên được thực hiện bởi một nhóm độc lập với nhóm phát triển.
Ép các kết quả tính toán phải hoặc là quá lớn hoặc là quá nhỏ Kết quả kiểm thử phải được kiểm tra một cách cẩn thận.
Các hoạt động kiểm thử phải được tích hợp vào tiến trình phát triển phần mềm.
Trang 12I.4 Các giai đoạn kiểm thử
- Cách gọi khác: cấp độ/ mức độ kiểm thử
- Các cấp độ kiểm thử cơ bản gồm:
1. Kiểm thử đơn vị (Unit Testing).
2. Kiểm thử tích hợp (Integration Testing).
3. Kiểm thử hệ thống (System Testing).
4. Kiểm thử chấp nhận (Acceptance Testing).
Trang 13Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
13
I.4 Các giai đoạn kiểm thử
- Ngoài ra còn có các cấp độ kiểm thử khác như:
1. Kiểm thử hồi quy (Regression Testing).
2. Kiểm thử tính đúng (Correctness Testing).
Trang 14II Các hình thức kiểm thử phần mềm
1 Theo Tổ chức thẩm định về KTPM quốc
tế-ISTBQ) có hai hình thức là:
1.1 Kiểm thử tĩnh 1.2 Kiểm thử động
2 Theo khái niệm thông thường có ba hình thức
là:
2.1 Kiểm thử hộp đen.
2.2 Kiểm thử hộp trắng.
Trang 15Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
15
II.1.1 Kiểm thử tĩnh (Static testing)
Kiểm thữ tĩnh là một hình thức của kiểm thử
phần mềm mà phần mềm không được sử dụng
Nó không kiểm thử chi tiết mà chủ yếu kiểm tra tính đúng đắn của mã lệnh (code), thuật toán hay tài liệu.
Chủ yếu kiểm tra cú pháp của code: kiểm tra
xem code có được viết theo đúng tiêu chuẩn code; hoặc tài liệu để tìm lỗi bằng cách thủ công (sử dụng giấy, bút để kiểm tra logic, lần từng chi tiết mà không cần chạy chương trình).
Trang 16II.1.1 Kiểm thử tĩnh (Static testing)
Có thể được sử dụng bởi những người lập trình
làm việc một cách độc lập.
Kiểm thử tĩnh cũng có thể được tự động hóa
thông qua bộ phần mềm bao gồm các chương trình được phân tích bởi một thông dịch viên hoặc một trình biên dịch khẳng định tính hợp lệ
về cú pháp của chương trình.
Trang 17Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
17
II.1.2 Kiểm thử động (Dymatic testing)
Là hình thức kiểm thử phần mềm thông qua
việc dùng máy chạy chương trình để điều tra trạng thái tác động của chương trình.
Kiểm thử động bao gồm: làm việc với phần
mềm, nhập các giá trị đầu vào và kiểm tra xem đầu ra có như mong muốn hay không.
Trang 18II.1.2 Kiểm thử động (Dymatic testing)
Trong kiểm thử động, phần mềm phải thực sự
được biên dịch và chạy.
Sử dụng các cấp độ kiểm thử (đã nêu ở phần
I.4) để thực hiện trong quá trình kiểm thử động.
Trang 19Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
19
II.2.1 Kiểm thử hộp đen (Black box testing)
Còn gọi là kỹ thuật kiểm thử chức năng.
Dữ liệu kiểm thử được xuất phát từ đặc tả phần
mềm, bao gồm:
- Đặc tả yêu cầu (trong giai đoạn kiểm thử hệ thống)
- Đặc tả thiết kế (trong giai đoạn kiểm thử tích hợp)
- Đặc tả chi tiết mô đun (trong giai đoạn kiểm thử đơn vị)
Trang 20II.2.1 Kiểm thử hộp đen (Black box testing)
Tester không cần phải có kiến thức về
ngôn ngữ lập trình, môi trường phát triển phần mềm, các hệ QT.CSDL,…
Tester thao tác các chức năng của hệ
thống như là một người sử dụng hệ thống.
Trang 21Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
21
II.2.1 Kiểm thử hộp đen (Black box testing)
Các loại hình kiểm thử hộp đen thông dụng:
- Kiểm thử giao diện (Interface testing)
- Kiểm thử khả năng chịu đựng của hệ thống (Stress testing)
- Kiểm thử phát hành (Release testing)
- Kiểm thử Alpha, Kiểm thử Beta, …
Ví dụ minh họa kiểm thử giao diện:
Trang 22II.2.1 Kiểm thử hộp đen (Black box testing)
Trang 23Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
23
II.2.1 Kiểm thử hộp đen (Black box testing)
Trang 24II.2.1 Kiểm thử hộp đen (Black box testing)
Để thực hiện kiểm thử hộp đen, các Tester sử dụng
các phương pháp sau:
- Phân lớp tương đương (Equivalence partitioning)
- Phân tích giá trị biên (Boundary value analysis)
- Kiểm thử tất cả các cặp (All-pairs testing)
- Kiểm thử Fuzz (Fuzz testing).
Trang 25Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
25
II.2.1 Kiểm thử hộp đen (Black box testing)
Để thực hiện kiểm thử hộp đen, các Tester sử dụng
các phương pháp sau:
- Kiểm thử dựa trên model (Model-based testing).
- Ma trận dấu vết (Traceability matrix).
- Kiểm thử thăm dò (Exploratory testing).
- Kiểm thử dựa vào đặc tả / chức năng base testing).
Trang 26(Specification-II.2.2 Kiểm thử hộp trắng (White box testing)
Còn gọi là kỹ thuật kiểm thử cấu trúc.
Kiểm tra tính logic và cấu trúc của mã nguồn.
Kiểm tra tất cả các trường hợp có thể xảy ra trong
mã nguồn (cấu trúc điều khiển, cấu trúc lặp, …)
Tester cần phải có kiến thức về ngôn ngữ lập trình,
môi trường phát triển phần mềm, các hệ QT.CSDL,
…
Trang 27Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
27
II.2.2 Kiểm thử hộp trắng (White box testing)
Các loại hình kiểm thử hộp trắng thông dụng:
- Kiểm thử bộ phận (Component testing)
- Kiểm thử lớp đối tượng (Object class testing)
Ví dụ minh họa kiểm thử bộ phận:
Trang 28II.2.2 Kiểm thử hộp trắng (White box testing)
Trang 29Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
29
II.2.2 Kiểm thử hộp trắng (White box testing)
Trang 30II.2.2 Kiểm thử hộp trắng (White box testing)
Để thực hiện kiểm thử hộp trắng, các Tester sử dụng
các phương pháp sau:
- Bao phủ mã lệnh (Code coverage)
- Gán lỗi (Fault injection methods)
- Kiểm thử hoán chuyển (Mutation testing methods)
- Kiểm thử tĩnh (Fuzz testing).
- Kiểm thử giao diện lập trình ứng dụng (API testing-
Trang 31Nhóm 2 - Lớp CNT T.Quận 5
Môn Quản lý dự án phần mềm
31
II.2.3 Kiểm thử hộp xám (Gray box testing)
Là hình thức mới hình thành và đòi hỏi trình độ cao.
Là kiểu trung gian giữa kiểm thử hộp đen và kiểm thử
hộp trắng, trong đó tester phải vận dụng các kiến thức về thuật toán, cấu trúc bên trong chương trình,
… như của hộp trắng nhưng để thiết kế testcase theo hương người sử dụng hoặc có testcase như của hộp đen.
Trang 32***** Lời kết
Nội dung báo cáo đã kết thúc.
Xin chân thành cảm ơn sự chú ý theo dõi của Thầy và các bạn; và rất mong được sự góp ý để báo cáo của nhóm chúng tôi hoàn thiện hơn!
*****