bai01 k tr-pm@softtesting-nntu

50
Lý thuyết Kim Tra PhnMm GV: Nguyn Ngc Tú Email: [email protected] Bmôn: Kthut Phnmm Bài 01: Gii thiu Kim tra Phnmm

Upload: an-pham

Post on 07-Nov-2014

728 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Bai01 k tr-pm@softtesting-nntu

Lý thuyếtKiểm Tra Phần Mềm

GV: Nguyễn Ngọc TúEmail: [email protected]ộ môn: Kỹ thuật Phần mềm

Bài 01: Giới thiệu Kiểm tra Phần mềm

Page 2: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 2

Nội dung

Tại sao phải kiểm tra ? Các hệ thống phần mềmNguyên nhân các khiếm khuyết phần mềmVai trò của việc kiểm tra trong quá trình phát triển phần mềmQuan hệ Kiểm tra và chất lượng phần mềmKiểm tra đến mức nào là đủ ?

Kiểm tra phần mềm là gì ?Các nguyên lý tổng quát của việc kiểm tra phần mềmQuy trình kiểm tra cơ bản

Lập kế hoạch và điều khiểnPhân tích và thiết kếHiện thực và việc thực thiĐánh giá các tiêu chuẩn và lập báo cáoKiểm tra các hoạt động cuối

Triết lý của việc kiểm tra phần mềm

Page 3: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 3

Tại sao phải kiểm tra ?

Xét ví dụ đơn giảnXác định dạng tam giác từ độ dài ba cạnh: a,b,c.

a

b

c

Page 4: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 4

Tại sao phải kiểm tra ?

Xét ví dụ đơn giảnXác định ngày kế tiếp

Nhập vào 3 số mô tả ngày/tháng/năm hiện tạiĐánh giá dữ liệu đầu vào và xác định ngày kế tiếp làngày nào ?

02 11 79 ? ? ?

Page 5: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 5

Tại sao phải kiểm tra ?

Xét ví dụ đơn giảnBài toán tính huê hồng bán hàngHệ thống ATMChuyển đổi tiền tệĐiều khiển lau kính xe hơi…

Page 6: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 6

Các hệ thống phần mềm

Gia tăng tiện nghi của cuộc sốngNgân hàng – ATMSản phẩm tiêu dùng – xe, thiết bị di động…

Qua Thực tếKhông như kỳ vọngHoạt động không đúng – gây ra nhiều vấn đề

Tiền bạcThời gianTổn hại con người

Page 7: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 7

Các hệ thống phần mềm

“Lỗi phần mềm là chuyện hiển nhiên của cuộc sống. Chúng ta dù cố gắng đến mức nào thì thực tế là ngay cảnhững lập trình viên xuất sắc nhất cũng không có thểlúc nào cũng viết được những đoạn mã không có lỗi. Tính trung bình, ngay cả một lập trình viên loại tốt thìcũng có từ 1 đến 3 lỗi trên 100 dòng lệnh. Người ta ướclượng rằng việc kiểm tra để tìm ra các lỗi này chiếmphân nửa khối lượng công việc phải làm để có được mộtphần mềm hoạt động được”.

(Software Testing Techniques, Second Edition, by Boris Beizer, Van Nostrand Reinhold, 1990, ISBN

1850328803).

Page 8: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 8

Nguyên nhân các khiếm khuyết

Con người tạo ra lỗi (error – mistake)Hệ quả là xuất hiện khiếm khuyết (sai lầm / sai sót - fault , rối -bug)

mã, hệ thống, phần mềm, tài liệuđưa ra dư thừa – chúng ta đưa một vài thứ không chính xác vào môtả yêu cầu phần mềm, …do bỏ sót, thiếu một số phần đáng ra phải có trong mô tả yêu cầuphần mềm, …

Khi mã thực thi, hệ thống thực hiện công việc sai xót thựchiện không mong đợi (failure – hỏng hóc)Hệ quả không mong đợi (Incident) Khiếm khuyết có thể gây ra hiện tượng không mong đợi

không phải tất cả khiếm khuyết đều như vậy

Page 9: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 9

Nguyên nhân các khiếm khuyết

Hành vi con ngườiError

Biến đổi logic chương trìnhFault

Hành vi của chương trìnhFailure

Hệ quả của chuỗi quá trình không mong đợiIncident

Page 10: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 10

Nguyên nhân các khiếm khuyết

Khiếm khuyết có thể xảy ra bởiÁp lực về thời gianMã phức tạpHạ tầng phức tạpThay đổi công nghệTương tác nhiều hệ thống

Page 11: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 11

Nguyên nhân các khiếm khuyết

Thực thi không mong đợi có thể dẫn tới từđiều kiện môi trường

Sự bức xạNăng lượngTrường điện từÔ nhiễm môi trường…

Phần dẻo (firmware) bị ảnh hưởngTác động tới SW do thay đổi điều kiện HW

Page 12: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 12

Vai trò của việc kiểm tra

Kiểm tra nghiêm ngặtKhiếm khuyết tìm thấy được chỉnh sửa trước khiđưa ra sử dụngGiảm thiểu rủi ro trong suốt quá trình thực hiện vàphân phối đối với chất lượng phần mềm

Có thể được yêu cầu để đáp ứng cácYêu cầu trong hợp đồngYêu cầu của luậtChuẩn công nghiệp, …

Page 13: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 13

Quan hệ Kiểm tra và chất lượng

Với sự trợ giúp của việc kiểm tra, tìm cáckhiếm khuyết

Yêu cầu – đặc tính phần mềmChức năngPhi chức năng

Tin cậy, khả dụng, hiệu quả, khả năng bảo trì, khảchuyển

Tạo sự tin tưởng chất lượng của phần mềm

Page 14: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 14

Quan hệ Kiểm tra và chất lượng

Rút ra bài học từ các dự án thực hiệnHiểu “gốc rễ” của nguyên nhân các khiếmkhuyết

Cải tiến quá trình với dự án mớiTránh tái diễn sai lầm cũ

Tích hợp như một phần của các hoạt độngQA

Page 15: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 15

Kiểm tra đến mức nào là đủ ?

Việc quyết định bao nhiêu là đủ lên dựa vàobảng miêu tả các rủi ro

rủi ro kỹ thuật, nghiệp vụ, dự áncác ràng buộc về thời gian lẫn ngân sách.

Việc kiểm tra lên cung cấp thông tin đủ “thẩmquyền” để đảm bảo ra quyết định

phiên bản xuất xưởng của phần mềmhệ thống được kiểm trabước phát triển kếbàn giao phần mềm

Page 16: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 16

Kiểm tra phần mềm là gì ?

Các nhận thức sai lầmChỉ bao gồm việc thực thi các mẫu thử

Đây chỉ là 1 phần công việcQuá trình chạy mẫu mà lỗi không xuất hiệnMục đích chỉ cho thấy chương trình thực hiệnđúng các chức năngQuá trình tạo sự tin tưởng chương trình thực thinhững gì chương trình “hỗ trợ”

Page 17: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 17

Kiểm tra phần mềm là gì ?

Vậy kiểm tra phần mềm là gì ?

Page 18: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 18

Kiểm tra phần mềm là gì ?

Việc kiểm tra là quá trình thực thi một chương trình với mụcđích là tìm ra lỗi.

(Glen Myers)

Page 19: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 19

Kiểm tra phần mềm là gì ?

Các hoạt động của kiểm tra bao gồm cáccông việc trước và sau khi “chạy” chươngtrình

Lập kế hoạch – điều khiểnChọn điều kiện kiểm traThiết kế kịch bản / Mẫu (kiểm) thử (Test-Case)Kiểm tra kết quảĐánh giá các tiêu chuẩnLập báo cáo quá trình Kiểm tra – hệ thống đượckiểm tra

Page 20: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 20

Kiểm tra phần mềm là gì ?

Cả hai hướng kiểm tra động và tĩnhĐều hướng tới cùng mục tiêuCung cấp thông tin cải tiến hệ thống lẫn quy trình

Page 21: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 21

Kiểm tra phần mềm là gì ?

Mục tiêuTìm khiếm khuyếtNgăn ngừa khiếm khuyếtChứng minh được phần mềm hoạt động đúng như đã thiếtkế.Chứng minh được phần mềm đáp ứng yêu cầu của user

Góp phần chứng minh chất lượng của phần mềm. Tăng tin tưởng mức chất lượng và thông tin cung cấp

Page 22: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 22

Kiểm tra phần mềm là gì ?

Khác biệt giữa Gỡ rối (Debug) và kiểm tra (Testing)Kiểm tra:

cho thấy các trường hợp không mong đợi do khiếm khuyếtphần mềmTesters

Gỡ rối:Hoạt động phát triểnXác định nguyên nhânSửa chữa mãKiểm tra lại khiếm khuyết có được sửa đúngDevelopers

Page 23: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 23

Kiểm tra phần mềm là gì ?

Kiểm tra sớm từ lúc thiết kế ngăn ngừa khiếmkhuyết khi phát triển mã

Rà soát lại tài liệu yêu cầu phần mềm cũng giúpngăn ngừa các khiếm khuyết

Page 24: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 24

Kiểm tra phần mềm là gì ?

Các góc nhìn khác nhau về kiểm tra tạo racác mục tiêu khác nhau

Kiểm tra phát triểnKiểm tra thành phần, tích hợp hệ thốngXác định nguyên nhân các hoạt động lỗi nhằm sửakhiếm khuyết

Kiểm tra chấp nhậnChứng thực hê thống làm việc như kỳ vọng/yêu cầu củakhách hàngNhằm ước lượng chất lượng phần mềm có thông tin xác định rủi ro phát hành hệ thống với thời gian đã xácđịnh

Page 25: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 25

Kiểm tra phần mềm là gì ?

Kiểm tra bảo trìBao gồm các kiểm tra để đảm bảo không có nhữngkhiếm khuyết mới qua việc mở rộng phát triển khi cóyêu cầu thay đổi

Kiểm tra tác vụ (operational Testing)Ước lượng các đặc tính của hệ thống: độ tin cậy – tínhsẵn sàng

Page 26: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 26

Kiểm tra phần mềm là gì ?

Quá trình kiểm nghiệm phần mềm là tốt khiCó khả năng tìm ra lỗi cao.Không dư thừa.Biết chọn lọc

chỉ kiểm nghiệm những phần nào có khả năng tìm ra lỗiđặc trưng.

Không quá phức tạp cũng không quá đơn giản.

Page 27: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 27

Các nguyên lý tổng quát

Đúc kết thông qua quá trình phát triển và qua các hướng dẫn tổng quát nhất cho việc kiểmtraCó 7+ nguyên lý chính

Page 28: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 28

Các nguyên lý tổng quát

#1: phơi bày biểu hiện của khiếm khuyếtCho thấy các khiếm khuyết đang tồn tại

Không thể chứng minh : không có khiếm khuyếtGiảm xác suất xuất hiện khiếm khuyết chưa pháthiện trong phần mềm

Ngay cả khi không có khiếm khuyết : vẫn không thểchứng minh nó chính xác.

Page 29: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 29

Các nguyên lý tổng quát

#2: Không thể vét cạn hết các trường hợpKiểm tra mọi thứ không khả thi

Tổ hợp của tất cả các trạng thái dữ liệu đầu vào và cácđiều kiện thực thi

Không thể kiểm nghiệm triệt để một phần mềm.Ngoại trừ trường hợp không đáng kểThay vào đó:

Phân tích rủi ro.Ưu tiên tập trung vào nỗ lực kiểm traViệc kiểm nghiệm nên hướng về yêu cầu của kháchhàng

Page 30: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 30

Các nguyên lý tổng quát

#3: Kiểm tra sớmNên bắt đầu sớm nhất có thể trong chu kỳ pháttriểnTập trung vào các mục tiêu đã xác định

Page 31: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 31

Các nguyên lý tổng quát

#4: Gom nhóm các khiếm khuyếtThông thường một nhóm nhỏ các module phầnmềm gây ra phần lớn các khiếm khuyết của hệthốngÁp dụng nguyên lý Pareto: 80% lỗi có nguyênnhân từ 20% các module

⇒ cô lập và kiểm tra những module khả nghi nhất.

Page 32: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 32

Các nguyên lý tổng quát

#5: Nghịch lý thuốc trừ sâu (Pesticide paradox)

Lặp lại cùng mẫu kiểm tra:Không tìm thấy khiếm khuyết mới

Kịch bản cần rà soát và xem xét lại đều đặnKiểm tra mới-khác cần được viết cho các phầnkhác để có khả năng tìm nhiều khiếm khuyết

Page 33: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 33

Các nguyên lý tổng quát

#6: Phụ thuộc ngữ cảnhThực hiện khác nhau trong những ngữ cảnh khácnhau

#7: Ảo tưởng “không lỗi” (Absence-of-errors fallacy)

Tìm và khắc phục khiếm khuyết là vô nghĩa nếuhệ thống xây dựng

Vô dụngKhông đáp ứng yêu cầu cần thiếtKhông đáp ứng kỳ vọng người sử dụng

Page 34: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 34

Các nguyên lý tổng quát

Nên được hoạch định trước một thời gian dài.Nên tiến hành từ nhỏ đến lớn: bắt đầu từ nhữngmodule riêng biệt rồi sau đó tích hợp các module lại.Nên được thực hiện bởi những đối tượng KHÔNG tham gia vào quá trình phát triển phần mềm.Nguyên tắc ngẫu nhiên:

dữ liệu và chức năng được chọn, tuy có chủ đích nhưngkhông phải xuất hiện theo thứ tự nhất định.

Nguyên tắc "người sử dụng kém": Người có trình độ thấp mức chấp nhận được dùng thử.

có thể gây các sự cố không lường trước được

Nguyên tắc "kẻ phá hoại": hệ thống rơi vào tay có trình độ nghiệp vụ cao, chủ ý pháhoại.

Page 35: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 35

Quy trình kiểm tra cơ bản

Lập kế hoạch và điều khiểnPhân tích và thiết kếHiện thực và việc thực thiĐánh giá các tiêu chuẩn và lập báo cáoCác hoạt động cuối

Page 36: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 36

Quy trình kiểm tra cơ bảnLập kế hoạch

Test

Bắt đầuBắt đầu

PT Thiết kếTest Case

Test Plan

Chuẩn bịDữ liệu/Kịch bản

Thực thi ứng dụngvới Bộ Dữ Liệu

So sánh kết quả kiểm thửvới Test Case

Các hoạt động cuối Kết thúcKết thúc

Test Case

Test Reports

Test Data/S

Test ResultsKnowledge

Page 37: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 37

Lập kế hoạch và điều khiển

Hoạt độngXác nhận các nhiệm vụ kiểm traĐịnh nghĩa mục tiêuĐặc tả các hoạt động kiểm tra đáp ứng mục tiêu và nhiệmvụ

Điều khiển kiểm traLiên tục đối chiếu tiến trình thực sự với kế hoạchLập báo cáo tình trạng

Cả việc lệch hướngNắm giữ các hoạt động cần thiết để đáp ứng nhiệm vụ/mụctiêu dự ánCần theo dõi thông qua thực hiện dự án

Page 38: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 38

Phân tích và thiết kế

Các mục tiêu kiểm tra chuyển đổi thànhCác điều kiện kiểm tra rõ ràngKịch bản

Các nhiệm vụ chínhXem xét cơ sở cho việc kiểm tra

yêu cầu, kiến trúc, thiết kế, giao tiếp, …Đánh giá khả năng kiểm tra của các cơ sở, mục tiêuXác định và lập ưu tiên các điều kiện kiểm traThiết kế và lập ưu tiên các kịch bảnXác định tập dữ liệu cần thiết hỗ trợ điều kiện kiểm tra vàkịch bảnThiết kế việc thiết lập môi trường; hạ tầng; công cụ

Page 39: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 39

Hiện thực và việc thực thi

Các thủ tục hoặc các đoạn mã script kiểm tra đượcđặc tả từ việc kết hợp các kịch bản kiểm tra theothứ tự cụ thểBao gồm các thông tin khác cần cho kiểm tra

Môi trường được thiết lậpKiểm tra được thực hiện

Page 40: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 40

Hiện thực và việc thực thi

Các nhiệm vụ chínhPhát triển, hiện thực, lập thứ tự ưu tiên các kịch bảnPhát triển và lập ưu tiên thủ tục kiểm tra, tạo tập dữ liệu; chuẩn bị kiểm tra và viết mã kiểm tra tự độngTạo các bộ kiểm thử từ các thủ tục kiểm tra để thực hiệnhiệu quảXác nhận môi trường được thiết lập đúngThực thi kiểm tra bằng tay / công cụGhi nhận tác động của thực hiện kiểm tra; ghi nhận địnhdanh và phiên bản

Page 41: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 41

Hiện thực và việc thực thi

Đối sánh kết quả thực và kỳ vọngLập báo cáo phần thiếu nhất quán, phân tích xác địnhnguyên nhânLặp lại hoạt động kiểm tra như một hệ quả tất yếu với cácphần thiếu nhất quán …

Xác nhận lỗi đã sửaĐã sửa lỗi và không phát sinh khiếm khuyết mới

Page 42: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 42

Đánh giá - Lập báo cáo

Thực hiện khi thực hiện kiểm tra được ước lượngthấy tương phản với mục tiêu đề raCần thực hiện qua mỗi mức kiểm thửCác nhiệm vụ chính

Kiểm tra phần ghi nhận tương phản với tiêu chuẩn đề ratrong bản kế hoạchƯớc định

nếu cần nhiều kiểm traTiêu chuẩn cần được thay đổi

Viết báo cáo tổng kết kiểm thử

Page 43: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 43

Hoạt động kết thúc kiểm tra

Tập hợp dữ liệu từ các hoạt động kiểm tra thànhcông để củng cố

Kinh nghiệmTestwareSự kiệnTrị số

Công việc chínhKiểm tra công việc đã phân theo kế hoạchTestware hoàn tất , cất giữ; môi trường kiểm tra, hạ tầng, … được sử dụng lại sauBàn giao testware đến tổ chức bảo trìPhân tích bài học học được

Page 44: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 44

Triết lý của việc kiểm tra PM

Cách suy nghĩ khi kiểm thử-rà soát khác so với khiphát triển phần mềm

Người phát triển có suy nghĩ đúng có thể tự kiểm tra mãmình viếtViệc tách riêng cho Tester là đặc thù giúp hỗ trợ tập trungvà cung cấp lợi ích gia tăng

Ở mức độ độc nào đó, thường hiệu quả trong tìmkiếm khiếm khuyết và hoạt động không mong đợi

Page 45: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 45

Triết lý của việc kiểm tra PM

Các mức độc lậpThiết kế kiểm thử bởi người viết mãThiết kế kiểm thử bởi người khácThiết kế kiểm thử bởi người từ tổ chức khácThiết kế kiểm thử bởi nhóm người từ tổ chứckhác

Page 46: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 46

Triết lý của việc kiểm tra PM

Hướng theo mục tiêuGióng theo kế hoạch

Mục tiêu lập bởi người quản lýKý kết

Xác định lỗi thông qua kiểm thửHoạt động phê bình tương phản tác giả, tác phẩm

Page 47: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 47

Triết lý của việc kiểm tra PM

Xảy ra lỗi , khiếm khuyết, hoạt động không mongđợi

Truyền thông theo cách tích cực – xây dựngCần kỹ năng giao tiếp, quan hệ tốt

Bắt đầu với sự cộng tác hơn là đối đầuTruyền thông những kết quả lỗi theo ý trung lập, tập trungsự kiện, không chỉ tríchCố gắng hiểu người khác cảm nhận ra sao và tại sao họphản ứng lạiXác nhận lại những gì đã hiểu và chưa hiểu

Page 48: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 48

Bài tập - đọc hiểu

Page 49: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 49

Đọc thêm

[1]. Chapter 01[1]. Chapter 02[2]. Chapter 17[4]. Chapter 01[5]. Chapter 01[3]. Chapter 01

Page 50: Bai01 k tr-pm@softtesting-nntu

NNTu Software Testing S2008 50

Q/A