Cá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 Nội dung Tại sa[.]
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
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ử
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 đó
Trang 4M t “bug” là gì? ộ
Error (lỗi): một hành động của con người tạo ra một kết quả không đúng.
Fault (sai sót): là biểu hiện của một lỗi (error) trong phần mềm
Nó cũng đNó cũng đượược bi t đ n nh là m t khi m khuy t c bi t đ n nh là m t khi m khuy t ế ếế ế ưư ộộ ếế ếế
(deffect) hay m t bug ộ
(deffect) hay m t bug ộ
N u đN u đếế ượược th c thi m t sai sót (fault) có th gây ra m t c th c thi m t sai sót (fault) có th gây ra m t ựự ộộ ểể ộộ
th t b i ấ ạ
th t b i ấ ạ
Failure (thất bại): sự lệch lạc của phần mềm so với kết quả và dịch vụ được mong đợi
Failure là một sự kiện, fault là một
trạng thái gây ra bởi một error
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
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
M t h th ng có th không có sai sót (không có sai M t h th ng có th không có sai sót (không có sai ộ ệ ốộ ệ ố ểể
sót, đúng ngay t l n đ u tien)ừ ầ ầ
sót, đúng ngay t l n đ u tien)ừ ầ ầ
M t h th ng ph n m m có th đáng tin c y M t h th ng ph n m m có th đáng tin c y ộ ệ ốộ ệ ố ầầ ềề ểể ậậ
nh ng v n có l i không?ư ẫ ỗ
nh ng v n có l i không?ư ẫ ỗ
M t ng d ng ph n m m không sai sót “faultM t ng d ng ph n m m không sai sót “faultộ ứộ ứ ụụ ầầ ềề
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
nghiệm ngặt
Không có th i gian đ ki m tra nh ng gi đ nh có th saiKhông có th i gian đ ki m tra nh ng gi đ nh có th saiờờ ể ểể ể ữữ ả ịả ị ểể
Các h th ng có th không hoàn ch nhCác h th ng có th không hoàn ch nhệ ốệ ố ểể ỉỉ
Nếu bạn đã từng viết phần mềm bạn sẽ…
Trang 8Chi phí l i ph n m m là bao nhiêu? ỗ ầ ề
Các khoản tiền rất lớn
Ariane 5 ($7billion)
Mariner space probe to Venus ($250m)
American Airlines ($50m)
Rất nhỏ hoặc không có gì
M t s b t ti n nhM t s b t ti n nhộ ự ấ ệộ ự ấ ệ ỏỏ
Tác đ ng b t l i không th y đTác đ ng b t l i không th y độộ ấ ợấ ợ ấấ ượược ho c vô hìnhc ho c vô hìnhặặ
Phần mềm không tuyến tính
Đ u vào nh có th có tác đ ng r t l nĐ u vào nh có th có tác đ ng r t l nầầ ỏỏ ểể ộộ ấ ớấ ớ
Trang 9Các h th ng an toàn – quan tr ng ệ ố ọ
Lỗi phần mềm có thể gây tử vong hoặc chấn thương
Đi u tr b ng b c x gây ch t b nh nhân(TheracĐi u tr b ng b c x gây ch t b nh nhân(Theracềề ị ằị ằ ứứ ạạ ế ệế ệ
25)
Tai n n máy bay (Airbus & Korean Airlines)Tai n n máy bay (Airbus & Korean Airlines)ạạ
Th nháp th u chi ngân hàng gây ra các v t tTh nháp th u chi ngân hàng gây ra các v t tưư ấấ ụ ự ửụ ự ử
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:
20 x 4 x 3 x 10 x 2 x 100 = 480,000 tests
If 1 second per test, 8000 mins, 133 hrs, 17.7 days (not counting finger trouble, faults or retest)
Avr 4 menus
3 options / menu
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
th c hi nự ệ
th c hi nự ệ
Th c hi n t t c các k t h p gi a đ u vào và ti n Th c hi n t t c các k t h p gi a đ u vào và ti n ựự ệ ấ ảệ ấ ả ế ợế ợ ữữ ầầ ềề
đi u ki nề ệ
đi u ki nề ệ
Bỏ bao nhiêu thời gian để kiểm thử toàn diện?
Th i gian vô h nTh i gian vô h nờờ ạạ
Không m t nhi u th i gian l mnot much timeKhông m t nhi u th i gian l mnot much timeấấ ềề ờờ ắắ
M t kho ng th i gian không th c tM t kho ng th i gian không th c tộộ ảả ờờ ự ếự ế 12
Trang 13Ki m th bao nhiêu thì là đ ? ể ử ủ
Không bao gi là đKhông bao gi là đờờ ủủ
Khi b n th c hi n xong cái mà b n đã lên k Khi b n th c hi n xong cái mà b n đã lên k ạạ ựự ệệ ạạ ếế
ho chạ
ho chạ
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 ệ ốệ ố ệệ
đúng đ nắ
đúng đ nắ
Khi b n t tin là h th ng c a b n làm vi c đúng Khi b n t tin là h th ng c a b n làm vi c đúng ạ ựạ ự ệ ốệ ố ủủ ạạ ệệ
đ nắ
đ nắ
Nó ph thu c vào r i ro cho h th ng c a b nNó ph thu c vào r i ro cho h th ng c a b nụụ ộộ ủủ ệ ốệ ố ủủ ạạ
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 15Sử dụng rủi ro để
Phân b th i gian s n có cho vi c ki m th b ng Phân b th i gian s n có cho vi c ki m th b ng ổ ờổ ờ ẵẵ ệệ ểể ử ằử ằ
cách phân quy n u tiên ki m th ề ư ể ử
cách phân quy n u tiên ki m th ề ư ể ử
Vì ít th i gian nên ph i ki m tra ờ ả ể
nhi u ề
Thời gian kiểm tra sẽ luôn luôn bị giới hạn
Sử dụng rủi ro để quyết định
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)ểể ạạ ờờ ểể
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 17Các nhân t khác tác đ ng đ n ố ộ ế
ki m th ể ử
Các yêu cầu hợp đồng
Yêu cầu pháp lý
Các yêu cầu đặc trù công nghiệp
Thật là khó khan để quyết định
kiểm thử bao nhiêu là đủ nhưng nó không có nghĩa là
không thể
Thật là khó khan để quyết định
kiểm thử bao nhiêu là đủ nhưng nó không có nghĩa là
không thể
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ử
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
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ể ự