Bài giảng Kiểm thử và đảm bảo chất lượng phần mềm: Chương 1 cung cấp cho người học những kiến thức như: Tại sao cần kiểm thử; Quá trình kiểm thử cơ bản; Tâm lý học kiểm thử; Kiểm thử hồi quy và kiểm thử lại; Các kết quả được mong đợi; Mức độ ưu tiên cho các kiểm thử. Mời các bạn cùng tham khảo!
Trang 1Các nguyên lý ki m th ể ử
1 Các nguyên lý 2 Vòng đời
4 Kiểm thử chức năng
3 Kỹ thuật kiểm thử
5 Kiểm thử cấu trúc 6 Quản lý chất lượng
KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM Chương 1
1
Trang 2Nội dung
Tại sao cần kiểm thử Quá trình kiểm thử cơ bản
Tâm lý học kiểm thử Kiểm thử hồi quy và kiểm thử lại Các kết quả được mong đợi Mức độ ưu tiên cho các kiểm thử
Các nguyên lý
Kiểm thử phần mềm
Trang 3Các thu t ng c b n ậ ữ ơ ả
Kiểm thử (IEEE): Kiểm thử là tiến trình vận
hành hệ thống hoặc thành phần dưới những điều kiện xác định, quan sát hoặc ghi nhận kết quả và đưa ra đánh giá về hệ thống hoặc
thành phần đó
3
Trang 4Failure là một sự kiện, fault là một
Failure là một sự kiện, fault là một
trạng thái gây ra bởi một error
Trang 5Một người tạo ra
một error
… nó tạo ra một fault trong phần mềm
…nó có thể gây ra một failure trong vận hành phần mềm
5
Trang 6Đ tin c y và sai sót ộ ậ
Độ tin cậy: là xác xuất để phần mềm chạy
không có thất bại trong một khoảng thời gian nhất định dưới những điều kiện nhất định
free” có ph i luôn luôn tin c y không? ả ậ
free” có ph i luôn luôn tin c y không? ả ậ
Trang 7T i sao x y ra sai sót trong ph n ạ ẩ ầ
m m? ề
Phần mềm được viết bởi con người
Con ngCon ngườười bi t m t s th ch không bi t m i thi bi t m t s th ch không bi t m i thếế ộ ố ứộ ố ứ ứứ ếế ọọ ứứ
Con ngCon ngườười có các k năng nh ng không ph i là hoàn h oi có các k năng nh ng không ph i là hoàn h oỹỹ ưư ảả ảả
Con ngCon ngườ ạườ ại t o ra sai l m (l i)i t o ra sai l m (l i)ầầ ỗỗ
Phát triển phần mềm dưới các sức ép giới hạn
Trang 8Chi phí l i ph n m m là bao nhiêu? ỗ ầ ề
Trang 10T i sao ki m th là c n thi t? ạ ể ử ầ ế
B i vì ph n m m có kh năng b sai sótB i vì ph n m m có kh năng b sai sótởở ầầ ềề ảả ịị
Đ h c v đ tin c y c a ph n m mĐ h c v đ tin c y c a ph n m mể ọể ọ ề ộề ộ ậậ ủủ ầầ ềề
Đ l p đ y kho ng th i gian chuy n giao gi a Đ l p đ y kho ng th i gian chuy n giao gi a ể ậể ậ ầầ ảả ờờ ểể ữữ
phân ph i ph n m m và ngày phát hànhố ầ ề
phân ph i ph n m m và ngày phát hànhố ầ ề
Đ ch ng minh ph n m m không có sai sótĐ ch ng minh ph n m m không có sai sótểể ứứ ầầ ềề
B i vì ki m th n m trong k ho ch d ánB i vì ki m th n m trong k ho ch d ánởở ểể ử ằử ằ ếế ạạ ựự
B i vì th t b i có th r t đ t đB i vì th t b i có th r t đ t đởở ấ ạấ ạ ể ấ ắ ỏể ấ ắ ỏ
Đ tránh b khách hang ki nĐ tránh b khách hang ki nểể ịị ệệ
Đ t n t i trong kinh doanhĐ t n t i trong kinh doanhể ồ ạể ồ ạ
Trang 11T i sao không ki m th m i th ? ạ ể ử ọ ứ
Hệ thống có
20 màn hình Average: 10 fields / screen 2 types input / field
(date as Jan 3 or 3/1) (number as integer or decimal) Around 100 possible values
Total for 'exhaustive' testing:
Trang 12Ki m th toàn di n? ể ử ệ
Kiểm thử toàn diện là gì
Khi t t c các tester ki t s cKhi t t c các tester ki t s cấ ảấ ả ệ ứệ ứ
Khi t t c các ki m th đKhi t t c các ki m th đấ ảấ ả ểể ử ượử ược lên k ho ch đc lên k ho ch đếế ạạ ượược c
Trang 13 Khi khách hang/ ngKhi khách hang/ ngườười dung c m th y vui vi dung c m th y vui vảả ấấ ẻẻ
Khi b n ch ng minh đKhi b n ch ng minh đạạ ứứ ượược là h th ng làm vi c c là h th ng làm vi c ệ ốệ ố ệệ
Trang 14V y thì ki m th bao nhiêu? ậ ể ử
Nó phụ thuộc vào rủi ro
R i ro c a các sai sót quan tr ng còn thi uR i ro c a các sai sót quan tr ng còn thi uủủ ủủ ọọ ếế
R i ro c a chi phí th t b i phát sinhR i ro c a chi phí th t b i phát sinhủủ ủủ ấ ạấ ạ
R i ro c a ph n m m ch a đR i ro c a ph n m m ch a đủủ ủủ ầầ ềề ưư ượược ki m tra ho c c ki m tra ho c ểể ặặ
đang ki m traể
đang ki m traể
R i ro c a vi c chia s th trR i ro c a vi c chia s th trủủ ủủ ệệ ẻ ị ườẻ ị ường và m t uy tínng và m t uy tínấấ
R i ro c a vi c thi u cánh c a th trR i ro c a vi c thi u cánh c a th trủủ ủủ ệệ ếế ửử ị ườị ườngng
R i ro c a các ki m th không hi u qu R i ro c a các ki m th không hi u qu ủủ ủủ ểể ửử ệệ ảả r i ro r i ro ủủnày còn l n h n c ch a ki m thớ ơ ả ư ể ử
này còn l n h n c ch a ki m thớ ơ ả ư ể ử
Trang 15 Ki m th cái gì trKi m th cái gì trểể ửử ướướcc
Ki m th cái gì nhi u nh tKi m th cái gì nhi u nh tểể ửử ềề ấấ
Làm th nào đ ki m tra k t ng h ng m cLàm th nào đ ki m tra k t ng h ng m cếế ể ểể ể ỹ ừỹ ừ ạạ ụụ
Cái gì không ki m tra (t i th i đi m này)Cái gì không ki m tra (t i th i đi m này)ểể ạạ ờờ ểể
15
Trang 16Ki m th và ch t l ể ử ấ ượ ng
Kiểm thử là thước đo chất lượng phần mềm Kiểm thử có thể tìm ra lỗi; khi chúng bị loại đi chất lượng phần mềm có thể được cải thiện
Kiểm thử kiểm tra những cái gì
Ch c năng h th ng, tính chính xác c a các ho t Ch c năng h th ng, tính chính xác c a các ho t ứứ ệ ốệ ố ủủ ạạ
đ ngộ
đ ngộ
Ch t lCh t lấ ươấ ương phi ch c năng: đ tin c y, tính s ng phi ch c năng: đ tin c y, tính s ứứ ộộ ậậ ửử
d ng, kh năng b o trì, tái s d ng, kh năng ụ ả ả ử ụ ả
d ng, kh năng b o trì, tái s d ng, kh năng ụ ả ả ử ụ ả
ki m th để ử ược
ki m th để ử ược
Trang 18Nội dung
Tại sao cần kiểm thử
Quá trình kiểm thử cơ bản
Tâm lý học kiểm thử Kiểm thử hồi quy và kiểm thử lại Các kết quả được mong đợi Mức độ ưu tiên cho các kiểm thử
Các nguyên lý
Kiểm thử phần mềm
Trang 19K ho ch ki m th các m c đ khác ế ạ ể ử ứ ộ
nhau
Chính sách kiểm thử
Chiến lược kiểm thử
Mức độ công ty
High Level Test Plan
Kế hoạch kiểm thử mức cao
Mức độ dự án (IEEE 829)
Detailed Test Plan
Detailed Test Plan
Detailed Test Plan
Kế hoạch Kiểm thử chi tiết
Mức độ giai đoạn kiểm thử(IEEE 829) (vd giai đoạn kiểm thử hệ thống,
Trang 20Ti n trình ki m th ế ể ử
Đ c tặ ả Th c thiự Ghi chép Ki m tra s hoàn thànhể ự
Lên k ho ch (m c đ chi ti t) ế ạ ứ ộ ế
Trang 21Lên k ho ch ki m th ế ạ ể ử
Làm thế nào chiến lược và kế hoạch kiểm thử
dự án áp dụng cho phần mềm
Tài liệu hóa bất cứ ngoại lệ nào cho chiến
lược kiểm thử
Ví d ch áp d ng duy nh t m t k thu t thi t k Ví d ch áp d ng duy nh t m t k thu t thi t k ụụ ỉỉ ụụ ấấ ộ ỹộ ỹ ậậ ế ếế ế
test case cho mi n ch c năng b i vì nó ít quan ề ứ ở
test case cho mi n ch c năng b i vì nó ít quan ề ứ ở
Trang 22Đ c t ki m th ặ ả ể ử
Đ c tặ ả Th c thiự Ghi chép Ki m tra s ể ự
hoàn thành
Chỉ ra các điều kiện Thiết kế test cases xây dựng kiểm thử
Lên k ho ch (m c đ chi ti t) ế ạ ứ ộ ế
Trang 24Đ c t ki m th ặ ả ể ử
Đặc tả kiểm thử có thể được chia nhỏ thành 3
nhiệm vụ riêng biệt :
1. Xác đ nh:ị
1. Xác đ nh:ị quy t đ nh cài gì s đquy t đ nh cài gì s đế ịế ị ẽ ượẽ ược ki m th (xác c ki m th (xác ểể ửử
đ nh đi u ki n ki m th ) và đ u tiên c a chúng ị ề ệ ể ử ộ ư ủ
đ nh đi u ki n ki m th ) và đ u tiên c a chúng ị ề ệ ể ử ộ ư ủ
2. Thi t k : ế ế
2. Thi t k : ế ế quy t đ nh làm th nào nh ng gì đquy t đ nh làm th nào nh ng gì đế ịế ị ếế ữữ ượược c
l a ch n ki m th s đự ọ ể ử ẽ ược ki m th (i.e. thi t k test ể ử ế ế
l a ch n ki m th s đự ọ ể ử ẽ ược ki m th (i.e. thi t k test ể ử ế ế
cases)
3. Xây d ng: Xây d ng:ựự cài đ t các ki m th (d li u, k ch b n, cài đ t các ki m th (d li u, k ch b n, ặặ ểể ử ữ ệử ữ ệ ịị ảảvv)
Trang 25Task 1: xác đ nh các đi u ki n ki m ị ề ệ ể
thử
Liệt kê các điều kiện chúng ta muốn kiểm tra:
S d ng k thu t thi t k test case đS d ng k thu t thi t k test case đử ụử ụ ỹỹ ậậ ế ếế ế ượược đ c t trong c đ c t trong ặ ảặ ả
Quyền ưu tiên cho các điều kiện kiểm thử
Ph i đ m b o h u h t các đi u ki n qu n tr ng đPh i đ m b o h u h t các đi u ki n qu n tr ng đả ảả ả ảả ầầ ếế ềề ệệ ảả ọọ ượược c
ki m thể ử
ki m thể ử
25
Trang 26Task 2: Thi t k các test case ế ế
Thiết kế dữ liệu đầu vào và đầu ra kiểm thử
Quyết định các kết quả được mong đợi (dự
đoán kết quả đầu ra của mỗi ca kiểm thử)
Thiết kế tập kiểm thử
T o ra các t p ki m th khác nhau cho các m c T o ra các t p ki m th khác nhau cho các m c ạạ ậậ ểể ửử ụụ
tiêu khác nhau nh là: ki m th h i quy, xây d ng ư ể ử ồ ự
tiêu khác nhau nh là: ki m th h i quy, xây d ng ư ể ử ồ ự
đ tin tộ ưởng, tìm l iỗ
đ tin tộ ưởng, tìm l iỗ
Trang 27Task 3: Xây d ng các ca ki m th ự ể ử
Chuẩn bị các kịch bản kiểm thử
Chuẩn bị dữ liệu kiểm thử
Chuẩn bị các kết quả mong đợi
27
Trang 29Th c thi ự
Thực hiện các test case đã được chỉ định
Các test case quan tr ng th c thi trCác test case quan tr ng th c thi trọọ ựự ướướcc
S không th c hi n h t t t c các test case n uS không th c hi n h t t t c các test case n uẽẽ ựự ệệ ế ấ ảế ấ ả ếế
• Chỉ kiểm thử để sửa lỗi
• Có quá nhiều lỗi được tìm thấy bởi các trường hợp kiểm thử đơn giản
Trang 30Ghi chép ki m th ể ử
Đ c tặ ả
Lên k ho ch (m c đ chi ti t) ế ạ ứ ộ ế
Th c thiự Ghi chép Ki m tra s hoàn thànhể ự
Trang 31Ghi chép kiểm thử bao gồm
Các ch đ nh và phiên b n (rõ ràng) c a ph n m m khi Các ch đ nh và phiên b n (rõ ràng) c a ph n m m khi ỉ ịỉ ị ảả ủủ ầầ ềề
ki m th và các đ c t ki m th ể ử ặ ả ể ử
ki m th và các đ c t ki m th ể ử ặ ả ể ử
Kế hoạch kế tiếp
Ch n l acj ti n trình trên k ch b n ki m thCh n l acj ti n trình trên k ch b n ki m thọ ưọ ư ếế ịị ảả ểể ửử
Tài li u hóa đ u ra th c s t các ki m thTài li u hóa đ u ra th c s t các ki m thệệ ầầ ự ự ừự ự ừ ểể ửử
Ghi nh n b t k ý tGhi nh n b t k ý tậậ ấ ỳấ ỳ ưởưởng nào b n có cho các ca ki m ng nào b n có cho các ca ki m ạạ ểể
th m iử ớ
th m iử ớ
Ghi chú các b n ghi đGhi chú các b n ghi đảả ượ ử ụượ ử ục s d ng đ thi t l p t t c c s d ng đ thi t l p t t c ểể ế ậ ấ ảế ậ ấ ả
các ho t đ ng ki m th đã đạ ộ ể ử ược th c hi n nh đúng ự ệ ư
các ho t đ ng ki m th đã đạ ộ ể ử ược th c hi n nh đúng ự ệ ư
đ c tặ ả
Trang 32So sánh đầu ra thực sự với đầu ra mong đợi ghi chép lại các khác biệt xây ra theo các nhóm
Sai sót ph n m mSai sót ph n m mầầ ềề
Sai sót ki m th (vd k t qu mong đ i sai)Sai sót ki m th (vd k t qu mong đ i sai)ểể ửử ếế ảả ợợ
Sai môi trSai môi trườường hay phiên b nng hay phiên b nảả
Ki m th ch y không đúngKi m th ch y không đúngểể ửử ạạ
Ghi chép mức độ bao phủ đạt được (ứng với các độ
đo được đặc tả như là các tiêu chí hoàn tất kiểm thử) Sau khi mỗi sai sót được điều chỉnh, lặp lại các hoạt động kiểm thử được yêu cầu (thực thi, thiết kế, lên kế hoạch)
Trang 33Ki m tra s hoàn t t ki m th ể ự ấ ể ử
Lên k ho ch (m c đ chi ti t) ế ạ ứ ộ ế
33
Đ c tặ ả Th c thiự Ghi chép Ki m tra s hoàn thànhể ự
Trang 34Ki m tra s hoàn t t ki m th ể ự ấ ể ử
Các tiêu chí hoàn tất kiểm thử được đặc tả
trong kế hoạch kiểm thử
Nếu chưa đạt được, cần lặp lại các hoạt động kiểm thử Vd thiết kế thêm test case
Đ c tặ ả Th c thiự Ghi chép Kiểm tra sự hoàn tất
Mức độ bao phủ quá thấp
Bao phủ OK
Trang 35Các tiêu chí hoàn t t ki m th ấ ể ử
Tiêu chí hoàn tất hay kết thúc áp dụng cho
mọi mức độ kiểm thử để quyết định khi nào
dừng.
Bao ph , s d ng m t k thu t đo lBao ph , s d ng m t k thu t đo lủ ử ụủ ử ụ ộ ỹộ ỹ ậậ ườườngng
• Bao phủ nhánh cho kiểm thử đơn vị
• Các yêu câu người dung
• Hầu hết các giao dịch được sử dụng thường xuyên
Các sai sót đCác sai sót đượược tìm th y (so v i d ki n)c tìm th y (so v i d ki n)ấấ ớ ự ếớ ự ế
Chi phí hay th i gianChi phí hay th i gianờờ
35
Trang 36Nội dung
Tại sao cần kiểm thử Quá trình kiểm tra cơ bản Tâm lý học kiểm thử Kiểm thử hồi quy và kiểm thử lại Các kết quả được mong đợi Mức độ ưu tiên cho các kiểm thử
Các nguyên lý
Kiểm thử phần mềm
Trang 38Fault found Các lỗi tìm thấy
S tín nhi m ự ệ
Thời gian Tín nhiệm
Không có lỗi tìm thấy = tín nhiệm?
Trang 39Cách ti p c n ki m th truy n ế ậ ể ử ề
Thành công: hệ thống làm việc
Trang 40Mục tiêu: tìm lỗi Thành công: hệ thống lỗi
Kết quả: một vài lỗi còn
sót Kết quả: một vài lỗi còn
sót
Trang 41Mục đích kiểm thử: xây dựng lòng tin
Tìm ra lỗi phá hủy lòng tin ? Mục đích của kiểm thử: phá hủy lòng tin
41
Trang 42S đ c l p ự ộ ậ
Kiểm thử công việc của chính mình
Tìm ra 30% 50% các l i c a chính mìnhTìm ra 30% 50% các l i c a chính mìnhỗ ủỗ ủ
Quá trình suy nghĩ và gi đ nh là nh nhauQuá trình suy nghĩ và gi đ nh là nh nhauả ịả ị ưư
Xem xét cái b n d đ nh hay cái b n mu n nhìn Xem xét cái b n d đ nh hay cái b n mu n nhìn ạạ ự ịự ị ạạ ốố
th y, không ph i đang t n t iấ ả ồ ạ
th y, không ph i đang t n t iấ ả ồ ạ
G n bó tình c mG n bó tình c mắắ ảả
• Không muốn tìm ra lỗi
• Chủ động muốn NOT để tìm lỗi
Trang 43Các m c đ đ c l p ứ ộ ộ ậ
Tuyết đối không: các kiểm tra được thiết kế bởi chính người viết phần mềm
Kiểm tra được thiết kế bởi một người khác
Kiểm tra được thiết kế bởi một ai đó từ một
nhóm hay ban khác (e.g test team)
Kiểm tra được thiết kế bởi ai đó từ một tổ
chức khác
Các kiểm tra được sinh ra bởi công cụ
43
Trang 44Nội dung
Tại sao cần kiểm thử Quá trình kiểm tra cơ bản Tâm lý học kiểm thử
Kiểm thử hồi quy và kiểm thử lại
Các kết quả được mong đợi Mức độ ưu tiên cho các kiểm thử
Các nguyên lý
Kiểm thử phần mềm
Trang 45Tái ki m th sau khi có các sai sót ể ử
đ ượ ử c s a ch a ữ
Chạy kiểm thử lỗi báo cáo lỗi
Phiên bản mới của phần mềm với lỗi được fix Thực hiện lại cùng kiểm thử (i.e.re-test)
New version of software with fault “fixed”
Ph i làm l i m t cách chính xác nh t có thPh i làm l i m t cách chính xác nh t có thảả ạạ ộộ ấấ ểể
Cùng môi trCùng môi trườường, phiên b n (ngo i tr ph n m m ng, phiên b n (ngo i tr ph n m m ảả ạ ừạ ừ ầầ ềề
b thay đ i có ch ý) ị ổ ủ
b thay đ i có ch ý) ị ổ ủ
Cùng các đ u vào và ti n đi u ki nCùng các đ u vào và ti n đi u ki nầầ ềề ềề ệệ
Nếu kiểm thử bây giờ đã pass thì nghĩa là lỗi
Trang 46Tái ki m th ể ử (th c thi l i các ki m th th t ự ạ ể ử ấ
Các lỗi mới được đưa ra bởi lỗi đầu tiên không
được tìm thấy sau khi tái kiểm thử
Trang 47Ki m th h i quy ể ử ồ
Để tìm kiếm bất kỳ hiệu ứng lề nào không
được mong đợi
Trang 48Ki m th h i quy ể ử ồ
Bộ tiêu chuẩn kiểm tra – gói kiểm thử hồi quy
Ở mọi mức độ(unit, integration, system,
acceptance)
Tự động hóa có giá trị tốt
Tài sản đang phát triển cần được bảo trì
Trang 49Ki m th h i quy … ể ử ồ
Các kiểm thử hồi quy được thực hiện
Sau khi ph n m m thay đ i v i các sai sót đSau khi ph n m m thay đ i v i các sai sót đầầ ềề ổ ớổ ớ ượược c
Cho các b n s a l i kh n c pCho các b n s a l i kh n c pả ử ỗả ử ỗ ẩẩ ấấ
Bộ kiểm thử hồi quy
Ti n hóa theo th i gianTi n hóa theo th i gianếế ờờ
ĐĐượược th c hi n thc th c hi n thựự ệệ ườường xuyênng xuyên
Có th tr nên l n h nCó th tr nên l n h nể ởể ở ớớ ơơ 49
Trang 50Ki m th h i quy… ể ử ồ
Bảo trì gói kiểm thử hồi quy
Lo i b các ki m th l p đi l p l i (các ki m th Lo i b các ki m th l p đi l p l i (các ki m th ạ ỏạ ỏ ểể ử ặử ặ ặ ạặ ạ ểể ửử
mà các đi u ki n ki m th tề ệ ể ử ương t nhau)ự
mà các đi u ki n ki m th tề ệ ể ử ương t nhau)ự
K t h p các ki m th (vd n u chúng luôn th c K t h p các ki m th (vd n u chúng luôn th c ế ợế ợ ểể ửử ếế ựự
hi n cùng v i nhau)ệ ớ
hi n cùng v i nhau)ệ ớ
L a ch n m t t p con khác c a b ki m th h i L a ch n m t t p con khác c a b ki m th h i ựự ọọ ộ ậộ ậ ủủ ộ ểộ ể ử ồử ồ
quy đ y đ đ th c hi n m i l n ki m th h i ầ ủ ể ự ệ ở ỗ ầ ể ử ồ
quy đ y đ đ th c hi n m i l n ki m th h i ầ ủ ể ự ệ ở ỗ ầ ể ử ồ
quy đượ ầc c n đ nế
quy đượ ầc c n đ nế
Lo i b các ki m th không tìm th y l i trong Lo i b các ki m th không tìm th y l i trong ạ ỏạ ỏ ểể ửử ấ ỗấ ỗ
m t th i gian dài (vd các ki m th s a l i cũ)ộ ờ ể ử ử ỗ
Trang 51Ki m th h i quy và t đ ng hóa ể ử ồ ự ộ
Các công cụ thực thi kiểm thử (vd capture replay) là các công cụ kiểm thử hồi quy – chúng thực hiện các kiểm thử đã được thực hiện
Một khi được tự động hóa , các kiểm thử hồi quy có thể được thực hiện thường xuyên như mong muốn Các kiểm thử tự động không phải là không quan
trọng (kiểm thử thủ công có khi phải lâu mất 2-10 lần) Không tự động hóa mọi thứ- lên kế hoạch cái gì cần
tự động hóa trước, chỉ tự động hóa nếu thấy cần thiết
51