TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP HCM
HỆ THỐNG ĐÀO TẠO CNTT T3H – CƠ SỞ HÀ NỘI
Bài 3:
Các kỹ thuật kiểm thử
GV: Trương Khánh Cường
Nội dung chính
Hai loại chính của kiểm thử và các kỹ
thuật của nó:
Kiểm thử tĩnh (Static testing)
Kiểm thử động (Dynamic testing)
Hai cách tiếp cận kiểm thử
Testing
Static testing
Dynamic testing
Static techniques
Dynamic
techniques
Hai cách tiếp cận kiểm thử (t)
Static testing (Kiểm thử tĩnh):
Các câu hỏi nảy sinh:
+ Có thể đánh giá và phân tích các tài liệu: requirement, design, test
plan, hoặc user manual (tài liệu hướng dẫn sử dụng)?
+ Làm thế nào để kiểm tra trước source code một cách hiệu quả
trước khi execution?
Static testing (e.g.
reviews )
Tất cả các sản
phẩm phần mềm
(software work
products) đều có thể
được kiểm thử bằng
các kỹ thuật review
Hai cách tiếp cận kiểm thử (t)
Static testing (Kiểm thử tĩnh) (t):
Sản phẩm phần mềm (software work products) được kiểm tra
bằng tay, hoặc bằng 1 tập các tool, nhưng không được thực thi.
Dynamic testing (Kiểm thử động):
Phần mềm (software) được thực thi bằng cách sử dụng tập các
giá trị đầu vào; và tập các giá trị đầu ra tương ứng của nó được
kiểm tra và so sánh với những gì mong đợi.
Chỉ có thể được áp dụng cho mã nguồn (software code)
Tìm defect & xác định các thuộc tính chất lượng của mã nguồn
Không được sử dụng cho đa số các sản phẩm phần mềm
(software work products)
Hai cách tiếp cận kiểm thử (t)
Hai phương pháp này:
Bổ sung cho nhau
Tìm ra các loại defect khác nhau một cách hiệu quả
(effectively and efficiently)
Static testing
Dynamic
testing
1.1. Static testing – Tổng quan
Lợi ích:
Được tiến hành sớm trong vòng đời => sớm nhận được các phản
hồi về các vấn đề chất lượng
Phát hiện sớm defect ở giai đoạn đầu => chi phí làm lại tương đối
thấp => cải thiện được chất lượng với giá thành rẻ
Công sức làm lại giảm đáng kể => năng suất phát triển tăng
Góp phần làm tăng nhân thức về các vấn đề chất lượng
Loại defect tìm thấy:
Sai khác với các chuẩn, lỗi requirement, lỗi thiết kế, các
đoạn code không thể maintain, không thống nhất về đặc
tả giao diện
=> Tìm ra defect hơn là failure
1.2. Static testing – Quy trình review
Các loại review thay đổi từ rất khơng hình thức đến hình thức:
- Có thể khơng theo quy
trình
- Khơng u cầu tài liệu
- Tn theo quy
trình chính thức
- Phải lập tài liệu
1.2. Static testing – Quy trình review
Quy trình formal review
Plan:
- Định nghĩa các tiêu chí review
- Lựa chọn người tham gia
- Phân chia vai trò
- Định nghĩa các tiêu chí đầu vào, đầu ra
- Chọn phần tài liệu để review
- Kiểm tra tiêu chí đầu ra
1.2. Static testing – Quy trình review
Quy trình formal review
Kick-off:
- Chuyển tài liệu
- Giải thích mục tiêu, quy trình và tài liệu cho những người tham gia
Individual preparation (Chuẩn bị của cá nhân):
- Chuẩn bị cho review meeting bằng cách xem trước tài liệu
- Ghi chú lại các lỗi tiềm năng, đặt câu hỏi và comment
1.2. Static testing – Quy trình review
Quy trình formal review
Review meeting (kiểm tra, đánh giá, ghi chép lại kết quả):
- Thảo luận hoặc ghi lại bằng các tài liệu kết quả hoặc biên bản
- Ghi chú lại defect, đưa ra chỉ dẫn để xử lý defect, ra quyết định về
defect
- Kiểm tra, đánh giá và ghi lại những vấn đề của buổi meeting cũng
như qua các trao đổi điện tử (email)
Rework:
- Fix defect tìm thấy
- Ghi lại trạng thái của defect
1.2. Static testing – Quy trình review
Quy trình formal review
Follow-up:
- Kiểm tra lại defect đã được giải quyết hay chưa?
- Thu thập số liệu
- Kiểm tra kết quả đầu ra
1.2. Static testing – Vai trò và trách nhiệm
Trong formal review, vai trò từng cá nhân:
Manager (người quản lý): Quyết định review, lên lịch và xác định
mục tiêu
Moderator (Người điều khiển buổi review): chỉ dẫn review các tài
liệu hoặc tập tài liệu, điều hành meeting, theo dõi sau meeting
Author (Tác giả): người viết tài liệu được review
Reviewer: có kiến thức => Cho ý kiến
Scibe (người làm tài liệu): ghi chép lại các vấn đề trong suốt buổi
meeting
1.2. Static testing – Các loại review
Informal review:
- Không có quy trình
- Hai người lập trình review chéo hoặc technical leader review
code/design
- Giá trị phụ thuộc vào người review
- Mục đích: 1 cách khơng đắt để lấy một số lợi ích
1.2. Static testing – Các loại review
Walkthrough:
- Meeting được tổ chức bởi author
- Thực hiện dạng scenarios, dry run, các nhóm tham gia chéo
- Các phần của buổi meeting có thể tùy chọn
- Tùy chọn có người ghi chép (scribe)
- Thực tế có nhiều dạng từ informal đến formal
- Mục đích: học hỏi, thu thập hiểu biết, tìm lỗi
1.2. Static testing – Các loại review
Technical review:
- Lập tài liệu, định nghĩa quy trình phát hiện defect bao gồm sự tham
gia của các chuyên gia kỹ thuật và các nhóm chéo. Tùy chọn có sự
tham gia quản lý hay không.
- Thực hiện như 1 peer review mà không có sự tham gia của quản lý
- Lý tưởng là moderator được đào tạo
- Chuẩn bị tài liệu
- Có thể dùng checklist
- Thực hiện report
- Từ informal đến formal
- Mục đích: thảo luận, ra quyết định, đánh giá giải pháp thay thế, tìm
defect, xử lý vấn đề kỹ thuật, kiểm tra sự thống nhất của đặc tả,
plan, quy định và chuẩn
1.2. Static testing – Các loại review
Inspection:
- Tổ chức bởi trained moderator
- Kiểm tra chéo
- Định nghĩa vai trò
- Thu thập số liệu
- Quy trình chính thức theo chuẩn và checklist
- Xác định tiêu chí đầu vào và đầu ra
- Chuẩn bị meeting
- Report
- Follow-up
- Tùy chọn người đọc
- Mục đích: tìm defect
1.3. Static testing – Phân tích tĩnh bởi tool
Một số điểm chính:
- Được thực hiện ở requirement, design hoặc code mà không cần
thực thi (execute)
- Lý tưởng là được thực hiện trước khi review
- Không liên quan đến các thuộc tính động của requirement, design,
code (như test coverage)
- Mục đích: tìm defect
2. Dynamic testing – Các kĩ thuật thiết kế kiểm thử
Các kỹ thuật kiểm thử nói chung
2. Dynamic testing – Kiểm thử hộp đen
Kỹ thuật phân vùng tương đương: Chia tập giá trị đầu vào thành
những miền tương đương, phản ứng như nhau với chương trình.
- VD:
2. Dynamic testing – Kiểm thử hộp đen
Kiểm thử xác định giá trị biên: (Boundary Value Analysis)
Dựa trên điểm giới hạn giữa các phân vùng
2. Dynamic testing – Kiểm thử hộp đen
Kiểm thử xác định giá trị biên:
Test form đăng ký vay tiền sau:
Customer Name
2 – 64 char
Account number
6 digits, 1st non-zero
Loan
500 - 9000
Term
1 – 30 years
Monthly repay
Min 10$
2. Dynamic testing – Các kĩ thuật thiết kế kiểm thử
Kỹ thuật dùng bảng quyết định:
- VD: Login với giá trị Email và Password là True/False
2. Dynamic testing – Các kĩ thuật thiết kế kiểm thử
Kỹ thuật dùng bảng quyết định:
- VD: Login với giá trị Email và Password là Blank/Valid/Invalid
2. Dynamic testing – Các kĩ thuật thiết kế kiểm thử
Optimize TCs: