22
CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM Nhóm FSE23: - Nguyễn Duy Khanh - Nguyễn Thành Chung - Nguyễn Tiến Minh - Nguyễn Vương Quyền 6/21/22 KTPM 1

Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Embed Size (px)

Citation preview

Page 1: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 1

CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Nhóm FSE23: - Nguyễn Duy Khanh - Nguyễn Thành Chung - Nguyễn Tiến Minh - Nguyễn Vương Quyền

Page 2: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 2

Khái quát nội dung

• Kiểm thử phần mềm là gì?• Tại sao phải kiểm thử phần mềm?• Các kỹ thuật kiểm thử• Kết luận

Page 3: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 3

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

• Kiểm thử là công việc sau cùng trước khi đưa sản phẩm ra thị trường (realease). Kiểm thử được thực hiện qua các bài Test

• Thực tế là áp dụng các phương pháp, chiến lược cho các tập giá trị đầu vào để xem kết quả đầu ra có như ý muốn không?

Page 4: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 4

Tại sao phải kiểm thử phần mềm

• Đảm bảo chất lượng phần mềm khi đưa ra sử dụng

• Hoàn thiện và nâng cấp khả năng phần mềm

• Tránh rủi ro cho khách hàng và giảm bảo trì, bảo hành cho người viết phần mềm

Page 5: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 5

Khái quát các kỹ thuật KTPM

• White box testing

• Black box testing

• Grey box testing

Page 6: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 6

WHILE BOX TESTING

• Còn được gọi là clear box testing, glass box testing, transparent box testing. Thường thiết kế các trường hợp kiểm thử dựa vào cấu trúc bên trong của phần mềm

• WBT đòi hỏi ký thuật lập trình am hiểu cấu trúc bên trong của phần mềm ( các đường, luồng dữ liệu, chức năng, kết quả )

• Phương thức: chọn các đầu vào và xem các đầu ra

Page 7: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 7

WHILE BOX TESTING

• Đặc điểm– Phụ thuộc vào các cài đặt hiện tại của hệ thông

và của phần mềm, nếu có sự thay đổi thì bài test cũng phải thay đổi theo

– Được ứng dụng trong các kiểm tra ở cấp độ môđun ( điển hình ), tích hợp ( có khả năng ) và hệ thông của quá trình test phần mềm

Page 8: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 8

WHILE BOX TESTING

• Các phương pháp– Kiểm thử API: Là phương pháp kiểm thử ứng dụng sử

dụng các API công khai và riêng tư– Bao phủ mã lệnh (code coverage):tạo các kiểm tra để

đáp ứng 1 số tiêu chuẩn về kiểm thử mã lệnh– Các phương pháp gán lỗi (Fault Injection)– Các phương pháp kiểm thử hoán chuyển (Mutation

testing method)– Static Testing

Page 9: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 9

BLACK BOX TESTING

• Xem chương trình như 1 “ hộp đen”• Không quan tâm cấu trúc bên trong của

chương trình, tập trung tìm các trường hợp mà chương trình không thực hiện theo đặc tả của nó

• Kiểm thử dựa trên đặc tả

Page 10: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 10

BLACK BOX TESTING

• Các phương pháp:– Phân lớp tương đương – Equivalence partitioning.– Phân tích giá trị biên – Boundary value analysis.– Kiểm thử mọi cặp – All-pairs testing.– Kiểm thử fuzz – Fuzz testing. – Kiểm thử dựa trên mô hình – Model-based testing. – Ma trận dấu vết – Traceability matrix.– Kiểm thử thăm dò – Exploratory testing.– Kiểm thử dựa trên đặc tả – Specification-base testing.

Page 11: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 11

BLACK BOX TESTING

• Đặc điểm– Không cần biết tới code và cấu trúc chương

trình– Đánh giá chương trình khách quan– Hạn chế: nhiều trường hợp áp dụng nhiều ca

kiểm thử để kiểm tra trong khi chỉ cần 1 pha kiểm thử duy nhất “thăm dò mù”

Page 12: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 12

GREY BOX TESTING

• Định nghĩa:• Bao gồm các kiến thức về thuật toán• và cấu trúc bên trong chương • trình để thực hiện mục đích • thiết kế các testcase nhưng việc• test phải thực hiện như là end-user

INPUT

OUTPUT

Page 13: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 13

Ví dụ

• Một đoạn mã của 2 module/unit được xem xét để thiết kế các testcase nhưng khi thực hiện thì làm trên giao diện người dùng

Page 14: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 14

Cấp độ kiểm thử ứng dụng

• Có thể ứng dụng trong nhiều mức test khác nhau.

• Đặc biệt hữu dụng trong kiểm thử tích hợp(Integration Testing).

Page 15: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 15

Đặc điểm chính của GBT

• Là sự kết hợp của white box và black box testing.

• Một số test case phải là white box (người lập trình phải biết một chút về cách thức hoạt động bên trong của phần mềm).

• Một số test case là black box.

Page 16: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 16

Ưu nhược điểm của GBT

• Được quyết định bởi ưu nhược điểm của kiểm thử hộp trắng và kiểm thử hộp đen.

Page 17: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 17

Example of GBT

• Chương trình giải phương trình bậc 2:• Ax2+Bx+C=0

Page 18: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 18

Example (sources code)

Page 19: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 19

Example (cont)

• Kiểm thử với các trường hợp:• A=0,

Page 20: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 20

Example(testcase)

• A≠0:• delta=B2-4AC• delta<0

Page 21: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 21

Example(testcase)

• delta=0

Page 22: Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM

Wednesday, May 3, 2023

KTPM 22

Example(testcase)

• delta>0