Ki m th Ph n m m – S o ftware Te s ting ể Ch ớ
ề ầ ử ng 0: Gi ươ
i thi u môn h c ọ
ệ
ầ ươ
1
ế ư ạ
ng Tr n Hy Hi n, L Khoa CNTT, ĐH S ph m TpHCM
2
Gi ớ i thi u môn h c ọ ệ
ng Tr n Hy Hi n
• Giảng viên: ầ ươ
ế (HIENLTH)
– L – Khoa CNTT, ĐH Sư phạm TpHCM (FIT – HCMUP) – Các môn dạy:
• NM Công nghệ Phần mềm, Kiểm thử phần mềm, • Công nghệ NET, Bảo mật và An ninh mạng
– Hướng nghiên cứu:
• Software Testing, Semantic Web, Network Security…
– Email: hienlth@hcmup.edu.vn – Web môn học:
http://fit.hc mup.edu.vn/~hienlth/COMP1063
3
• Nội dung:
– Cung cấp các kiến thức cơ bản về kiểm tra
phần mềm.
– Nắm vững các chiến lược kiểm tra phần mềm – Sử dụng các kỹ thuật kiểm tra phần mềm (White-box testing, Black-box testing,..) – Sử dụng các công cụ kiểm tra phần mềm
(QTP, NUnit, J Unit, …)
Gi i thi u môn h c (tt) ớ ọ ệ
4
N i dung ộ
1
Gi
i thi u t ng quan
ớ
ệ ổ
2
Các khái ni m c b n trong ki m tra PM
ơ ả
ể
ệ
3
Các chi n l
c ki m tra ph n m m
ế ượ
ề
ể
ầ
4
Các lo i ki m tra ph n m m
ể
ề
ạ
ầ
5
Các k thu t ki m tra ph n m m ể
ề
ậ
ầ
ỹ
3
6
Các công c ki m tra và Case Study
ụ ể
5
• Tham dự đầy đủ các buổi học lý thuyết • Đi thực hành nghiêm chỉnh! • Hoàn thành tất cả các yêu cầu:
– Đọc các tài liệu tham khảo (e-book) môn học – Bài tập homework – Bài tập thực hành – Project cuối khóa (lấy điểm thực hành)
Yê u c u môn h c ọ ầ
6
Tài li u tham kh o ả ệ
1. C. Kane r, J. Falk, H. Q. Ng uye n (1999), Te s ting Com pute r
S oftware 2nd, J ohn Wiley & Sons.
2. G. Mye rs (2004), The Art of S oftware Te s ting 2nd, J ohn
3.
Wiley & Sons Ile ne Burns te in (2003), Practical s oftware te s ting : a proce s s -orie nte d approach, Springer-Verlag
4. Paul Ammann, Je ff Offutt (2008), Introduction S oftware
Te s ting, Cambridge University Press
5. Pe ntti Po hjo laine n (2002), S oftware Te s ting Tool, University
of Kuopio.
7
1. http://www.testingeducation.org/ 2. http://www.onestoptesting.com/ 3. http://www.codeproject.com 4. http://www.aptest.com/resources.html#app-data 5. http://www.cs.gmu.edu/~offutt/softwaretest/ 6. http://www.logigear.vn/ 7. http://www.testingvn.com/
Tài li u tham kh o ả ệ
8
•
• HP Quick Test Pro ver 10 trở lên • NUnit J Unit
Công c th c hành ụ ự
9
• Lý thuyết: Sáng thứ 6, tiết 3 – 4, C201. • Thực hành: Sáng thứ 4, tiết 5 – 6, I202. • Trao đổi, thảo luận (hẹn trước): – Chiều thứ 5/6, từ 14g00, I101/I102
L c h làm vi c ệ ị
10
• Làm nhóm 2 sinh viên
– Đăng ký nhóm theo link Google Docs cung
cấp. • Nội dung:
– Manual Test: Viết ứng dụng Windows, viết
testcase, thực hiện test và mô tả
– Automation test: GV dựng sẵn web server
(PHP, ASP.NET), SV viết test script một chức năng nào đó, chuẩn bị dữ liệu và thực hiện test, kết quả
Đ án môn h c ọ ồ
11
ắ
• Làm nhóm (tối đa 4SV) – không b t bu c ộ • Danh sách đề tài GV cung cấp • Điểm cộng: 20% (được phép thay bài giữa
kỳ)
• Công việc:
– Tìm hiểu về chủ đề và báo cáo – Demo (quay phim, script,…)
Đ tài tìm hi u ề ể
12
Đánh giá
1
Ki m tra gi a kỳ: 20% ữ
ể
2
Đ án Th c hành: 30%
ự
ồ
3
Thi vi
t: 50%
ế
4
Báo cáo tìm hi u: Đi m c ng 20%
ể
ể
ộ
13
M i hình th c gian l n đ án
ứ
ọ
ồ
ậ
0 đi mể
14
FAQ
ầ
Ki m th Ph n m m – S o ftware Te s ting ề ử ể ng 1: T ng quan Ch ổ ươ
ầ ươ
15
ế ư ạ
ng Tr n Hy Hi n, L Khoa CNTT, ĐH S ph m TpHCM
• Lỗi phần mềm là hiển nhiên phải có. • Một lập trình viên loại tốt trung bình có từ
1 đến 3 lỗi trên 100 dòng lệnh.
• Kiểm định phần mềm chiếm gần nửa thời
gian dự án.
• Cần có công nghệ kiểm định phần mềm.
Gi i thi u ớ ệ
• Có nhiều nguyên nhân
– Do viết mã – Do thay đổi môi trường, công nghệ – Do thay đổi phần cứng, hạ tầng phức tạp – Tương tác nhiều hệ thống
Nguyê n nhân gây l iỗ
• Đảm bảo chất lượng phần mềm
– Đúng chức năng – Chạy ổn định, khả năng bảo trì – Tối ưu chất lượng, hiệu quả
• Đáp ứng các yêu cầu hợp đồng, chuẩn, tổ
chức.
• Rút kinh nghiệm cho các dự án sau
Vài trò ki m th ể ử
• Dựa vào bảng liệt kê các rủi ro • Hy vọng sẽ đạt mức rủi ro tối thiểu • Đủ để dám xuất xưởng
i đa M c đ ki m tra t ộ ể ứ ố
• Kiểm tra các chức năng không dựa vào
mẫu thử.
• Kiểm tra các chức năng dựa vào mẫu thử. • Mục đích là: xem chương trình có lỗi hay
không → Chưa đủ
Các c ác h làm s ai l mầ
• Là công nghệ tìm ra lỗi càng nhiều càng
tốt. Kiểm tra viên (Tester) thực hiện • Khác với gỡ rối (debug) – tìm nguyên
nhân lỗi và sửa chữa. Do người viết mã thực hiện.
Ki m tra ph n m m là gì? ầ ể ề
• Lập kế hoạch • Chọn điều kiện kiểm tra • Thiết kế các kịch bản - test script / mẫu
thử - test case.
• Thực thi • Đánh giá kết quả • Báo cáo kết quả
Các giai đo nạ
Các giai đo nạ
• Kiểm tra yêu cầu • Kiểm tra phân tích • Kiểm tra thiết kế • Kiểm tra sản phẩm
Khi nào b t đ u ki m tra? ắ ầ ể
• Kiểm tra đơn vị - Unit • Kiểm tra thành phần - Module • Kiểm tra tích hợp - Integration • Kiểm tra hệ thống - System • Kiểm tra chấp nhận - Acceptance
Các m c đ ki m tra ộ ể ứ
Các m c đ ki m tra ộ ể ứ
• Chức năng • Phi chức năng • Cấu trúc • Hồi qui
Các ki u ki m tra ể ể
• Kiểm tra hộp đen – tương tự Kiểm tra
chức năng
• Kiểm tra hộp trắng – Tương tự kiểm tra
cấu trúc
H p đe n và h p tr ng ộ ộ ắ
• Kiểm tra hiệu năng: Kiểm tra sự vận hành
của hệ thống trong nhiều môi trường. • Kiểm tra chịu tải: Kiểm tra các giới hạn
của hệ thống
Ki m tra hi u năng và c h u t i ị ả ể ệ
• Kiểm tra cấu hình • Kiểm tra bảo mật • Kiểm tra khả năng phục hồi • Kiểm tra Alpha • Kiểm tra Beta • Kiểm tra quốc tế hóa
Các lo i ki m tra khác ể ạ
ụ ể
D c h v kè m the o s au ki m ị tra
• Sau giai đoạn thiết kế là thực hiện dựa
trên test-case. – Thực hiện thủ công – Thực hiện tự động
Th c hi n ki m tra ự ể ệ
• Tìm ra nhiều lỗi • Không dư thừa • Biết chọn lọc • Không quá phức tạp
Quá trình ki m nghi m t ể ệ t ố
Các nguyên lý t ng quát ổ
• Nhìn theo nhiều góc độ • Luôn nhớ mục tiêu • Tuân theo kế hoạch • Giao tiếp theo cách tích cực, xây dựng
Nguyê n t c ki m tra viê n ể ắ
• Phần mềm ở mức độ nào thì cần kiểm
tra?
• Vai trò của ngoại ngữ đối với việc kiểm
thử phần mềm?
• Kiểm tra phần mềm dể hay khó? • Các tố chất để thành một kiểm thử viên?
Th o lu n ậ ả
• Thực hiện bài khảo sát (HC: 13/3/2013) COMP1063_HW1_Khao_sat_thong_tin.docx
37
V nhà ề
• Bài giảng này tham khảo từ:
– Nguyễn Quốc Huy, ĐH Sài Gòn. – Lê Duy Hoàng, ĐH KHTN TpHCM.
38
C m n ả ơ