1. Trang chủ
  2. » Công Nghệ Thông Tin

bài 4. các kỹ thuật kiểm thử

51 966 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Các kỹ thuật kiểm thử
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật phần mềm
Thể loại Bài giảng
Năm xuất bản 2014
Thành phố Hà Nội
Định dạng
Số trang 51
Dung lượng 1,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

PHÂN CHIA LỚP TƯƠNG ĐƯƠNG EQUIVALENCE PARTITIONING  Equivalence partitioning equivalence class là một tập các test case kiểm tra những trường hợp tương tự nhau hoặc để khám phá ra nhữn

Trang 1

BÀI 4 CÁC KỸ THUẬT KIỂM THỬ

 4.1 Phân chia lớp tương đương (Equivalence class partitioning)

 4.2 Kiểm tra luồng điều khiển (Control flow testing)

 4.3 Kiểm tra luồng dữ liệu (Data flow testing)

 4.4 Kiểm tra sự giao dịch (Transaction testing)

 4.5 Kiểm tra miền (Domain testing)

 4.6 Kiểm tra lặp (Loop testing)

 4.7 Kiểm tra cú pháp (Syntax testing)

 4.8 Kiểm tra trạng thái (State machine testing)

 4.9 Kiểm tra khả năng thực thi, chịu tải và vận hành PM (Performance, Load and stress testing)

Trang 2

4.1 PHÂN CHIA LỚP TƯƠNG ĐƯƠNG

(EQUIVALENCE PARTITIONING)

Equivalence partitioning (equivalence class) ) là quá trình

làm giảm số lượng các test case nhưng vẫn đảm bảo đạt

được hiệu quả tương đương như khi kiểm thử với số

lượng các test case cũ

Ví dụ về Windows calculator:

 1+1, 1+2, 1+3,… => đại diện bởi 1+13

 1+ 99999999999999999999999999999999

Trang 3

4.1 PHÂN CHIA LỚP TƯƠNG ĐƯƠNG

(EQUIVALENCE PARTITIONING)

Equivalence partitioning (equivalence class) là một tập các test case kiểm

tra những trường hợp tương tự nhau hoặc để khám phá ra những lỗi tương tự nhau

Khi tìm kiếm những equivalence partition:

1 equivalence partition nhóm những dữ liệu đầu vào tương tự nhau, dữ

liệu đầu ra tương tự nhau, và những điều khiển tương tự của phần mềm

⇒ 2 trường hợp, mà phần mềm có cách điều khiển khác nhau, nằm trong 2

equivalence partition khác nhau

⇒ Nếu tester có kiến thức về lập trình => thuận lợi hơn

Trang 4

4.1 PHÂN CHIA LỚP TƯƠNG ĐƯƠNG

(EQUIVALENCE PARTITIONING)

Ví dụ 1: 5 cách thực hiện copy trong

Windows Calculator:

 Click menu “Edit” => click “copy”

 Click menu “Edit” => Nhấn “Shift +c”

 Click menu “Edit” => Nhấn “c”

 Nhấn “Ctrl + Shift +c”

 Nhấn “Ctrl + c”

Phân làm 3 Equivalence partitioning

Thậm chí, là 1 Equivalence partitioning

Trang 5

4.1 PHÂN CHIA LỚP TƯƠNG ĐƯƠNG

(EQUIVALENCE PARTITIONING)

Ví dụ 2: Kiểm tra khả năng đưa một “file name” vào hộp thoại “Save As” chuẩn của Windows:

Một filename của Windows của thể chứa các ký tự, ngoại trừ \/ : * ? " < > | và có thể có từ 1 đến 25 ký tự: (4 EP)

• Ký tự hợp lý

• Ký tự không hợp lý

• Tên với độ dài hợp lý

• Tên quá ngắn hoặc tên quá dài

Trang 6

4.1 PHÂN CHIA LỚP TƯƠNG ĐƯƠNG

(EQUIVALENCE PARTITIONING)

Việc phân chia các equivalence partitioning:

 Mang tính chủ quan

 Đảm bảo tính khoa học, nhưng không theo khuôn mẫu

 Chứa đầy rủi ro => tester phải thận trọng

 Phân các test cases vào các class Mỗi class là một nhóm các test cases

tương tự nhau

 Trong mỗi class chọn test chỉ một vài test case

 Nên test nhiều class thay cho test nhiều test cases của cùng một class

Trang 7

 Tổng kết

 Các class lại có thể xếp vào 2 nhóm:

Positive tests (clean tests):

Test dựa trên defined requirements

Test những trường hợp, hoàn cảnh sử dụng thông thường

Negative tests (dirty tests):

Trang 8

 Ví dụ: Phương thức đọc 10 ký tự từ bàn phím

Example program:

Begin

Read (AAAAAAAAAA)

Trang 9

 Equivalence classes for “positive” tests:

 All 10 inputs consist of the same character in upper case,

repeated for each letter of the alphabet

 ALL 10 inputs consist of the same character in lower case,

repeated for each letter of the alphabet

 All 10 inputs are different, mixed case

Trang 10

 Ví dụ:

 Equivalence classes for “negative” tests:

 All 10 inputs are numeric

 Mixed numeric and alphabetic inputs

 Embedded blanks

 Input consists of one valid character

 Input consists of one invalid character

 Input includes special characters (*, & %, etc.)

 Input consists of 11 characters

 What would be a correct output for these cases?

4.1 PHÂN CHIA LỚP TƯƠNG ĐƯƠNG

(EQUIVALENCE PARTITIONING)

Trang 11

 Control flow testing

không phải là sơ đồ mô tả các câu lệnh trong code

4.2 CONTROL FLOW TESTING

07/05/14

Trang 12

 Sơ đồ luồng xử lý

Process 1

Process 2

? Yes No

Process 3

More Processing

4.2 CONTROL FLOW TESTING

Trang 14

 Áp dụng cho các hệ thống “data-intensive”

 Ví dụ các hệ thống sản sinh báo cáo, thống kê

 Ví dụ các hệ thống có tính toán thay đổi số liệu

 Phương pháp xây dựng test case:

 Lập sơ đồ luồng dữ liệu (Data flow diagram)

 Lần theo từng đường dẫn trong sơ đồ

Bắt đầu từ node output

Lần ngược lại tới khi gặp node input

 Ta đã được một test case

4.3 DATA FLOW TESTING

Trang 15

4.4 TRANSACTION TESTING

Trang 16

 Áp dụng cho các xử lý mà có xác định phạm vi (range) giá trị dữ liệu

 Chú trọng test các giá trị biên on và of

4.5 DOMAIN TESTING

Trang 17

Kiểm thử miền là kiểm tra những thông tin mà người sử dụng đưa

vào, các kết quả nhận được, và xem xét chúng có đúng không

 Số lượng test case quá lớn

Bí quyết để kiểm thử tốt là: giảm lượng test case bằng equivalence

partitioning dựa trên 1 số khái niệm cơ bản:

Trang 18

1 Các điều kiện biên (boundary conditions)

2 Các loại điều kiện biên (Types of Boundary Conditions)

3 Kiểm thử những trường hợp biên (Testing the

Boundary Edges)

4 Các điều kiên biên con (Sub-Boundary Conditions)

5 Default, Empty, Blank, Null, Zero, và None

6 Invalid, Wrong, Incorrect, và Garbage (vô nghĩa) Data

4.5 DOMAIN TESTING

Trang 19

1 Các điều kiện biên (boundary conditions)

Nếu phần mềm có thể điều khiển trên những vùng biên => gần như nó sẽ được

điều khiển tốt với những điều kiện thông thường

Ví dụ: Dim data(10) As Integer

Dim i As Integer For i = 1 To 10

data(i) = 1 Next i

End

4.5 DOMAIN TESTING

Trang 20

1 Các điều kiện biên (boundary conditions)

Nếu phần mềm có thể điều khiển trên những vùng biên => gần như nó sẽ được

điều khiển tốt với những điều kiện thông thường

Ví dụ: Dim data(10) As Integer

Dim i As Integer For i = 1 To 10

data(i) = 1 Next i

End

4.5 DOMAIN TESTING

Trang 21

2 Các loại điều kiện biên (Types of Boundary

Conditions)

Nhiều điểm mập mờ, chưa rõ ràng => thường nằm trên các giá trị biên

Điều kiên biên là trạng thái ở cạnh hay ở những giá trị giới hạn của phần mềm

4.5 DOMAIN TESTING

Trang 22

2 Các loại điều kiện biên (Types of Boundary

Trang 23

2 Các loại điều kiện biên: để tìm ra các điều kiên

biên, tester cần chú ý đến những từ ngữ sau trong bản đặc tả:

Trang 24

3 Kiểm thử những trường hợp biên (Testing the

Boundary Edges)

phân chia tập dữ liệu lộn xộn thành các equivalence partition

Phân vùng 1: chứa data mà hi vọng phần mềm làm việc tốt (dữ

liệu trong biên)

Phân vùng 2: chứ data mà phần mềm dễ phát sinh lỗi (dữ liệu tại

2 đầu của biên)

4.5 DOMAIN TESTING

Trang 25

3 Kiểm thử những trường hợp biên

Kiểm tra giá trị biên: (thêm, bớt các giá trị max, min 1 đơn vị):

 First-1/Last+1

 Start-1/Finish+1

 Less than Empty/More than Full

 Even Slower/Even Faster

Trang 26

3 Kiểm thử những trường hợp biên Ví dụ:

VD1: Nhập 1 số giới hạn [0-255]

VD2: Chương trình đọc và ghi CD-R

VD3: Phần mềm cho phép in nhiều trang trên 1 khổ giấy

(trong spec mô tả PM có thể in tối đa 8 trang/1 khổ giấy)

VD4: Chương trình mô phỏng các chuyến bay

4.5 DOMAIN TESTING

Trang 27

4 Các điều kiên biên con (Sub-Boundary Conditions

hay internal boundary conditions).

 Ví dụ: Phần mềm sử dụng ASCII, có 1 testbox cho phép nhập A-Z và a-z

4.5 DOMAIN TESTING

Trang 28

5 Default, Empty, Blank, Null, Zero, và None

Phần mềm yêu cầu nhập thông tin => người dùng không nhập => Ok => sinh

lỗi Spec thường không mô tả, coder dễ bỏ qua

Ví dụ: phần mềm Windows Paint

4.5 DOMAIN TESTING

Trang 29

6 Invalid, Wrong, Incorrect, và Garbage (vô nghĩa)

Data

Sau khi Test – to – pass với các boundary testing, sub-boundary testing, và

default testing, tester thấy phần mềm hoạt động tốt

Giờ, cần Test – to – fail để tìm ra lỗi với các các invalid, wrong, incorrect, và

garbage data.

Không có một quy tắc nào cho quá trình kiểm tra này cả, mà tester hãy “to

break the software”, “Be creative (sáng tạo)”, “Be devious (láu cá, xảo quyệt)” Rất thú vị!

4.5 DOMAIN TESTING

Trang 30

 Áp dụng trong whitebox testing: quan tâm đến vòng lặp trong code

 Áp dụng trong backbox testing: quan tâm đến vòng lặp trong hành vi của hệ thống

 Ví dụ khi hệ thống phải tìm ra tất cả các bản ghi thoả mãn một tiêu chí tìm kiếm nào đó

 Giả sử khả năng hệ thống có thể hỗ trợ tối đa Max vòng lặp, chỉ cần chọn thực hiện những test case sau là đủ:

0 lần, 1 lần, 2 lần qua vòng lặp

X lần (X: số ngẫu nhiên, giữ khoảng 0 và Max)

Max -1, Max, Max+1 lần

4.6 LOOP TESTING

Trang 31

Là kỹ thuật dùng để:

 Test các câu lệnh (commands)

 Test việc xử lý các trường phải tuân theo một định dạng xác định

Trang 32

Trình tự thực hiện:

 Phân tích, nắm rõ qui tắc syntax

 Thiết kế các positive test cases, sử dụng kỹ thuật Equivalence class partitioning

 Thiết kế các negative test

Mỗi lần làm sai một phần tử trong syntax

 Thực hiện test

4.7 SYNTAX TESTING

Trang 33

Áp dụng khi:

 Test các “menu driven application”

 Test các hệ thống thiết kế bằng phương pháp hướng đối tượng

 Test bất cứ hệ thống nào có sơ đồ chuyển đổi trạng thái (state)

Ví dụ về trạng thái:

 Account sử dụng Portal chưa có hiệu lực (inactive account)

 Account sử dụng Portal có hiệu lực (active account)

07/05/14

4.8 STATE MACHINE TESTING

Trang 34

Đặc trưng của trạng thái:

 Ở mỗi trạng thái, có một số hành động được phép thực hiện và một

số khác thì không

Phương pháp:

 Vẽ một sơ đồ chuyển đổi trạng thái cho đối tượng cần test

 Positive tests: thiết kế test cases cho từng lần chuyển đổi trạng thái

 Negative tests: thiết kế các test cases nhằm cố chuyển đổi trạng thái một cách bất hợp lệ

4.8 STATE MACHINE TESTING

Trang 35

1 Kiểm tra luồng dữ liệu logic của phần mềm (Testing the

Software's Logic Flow)

2 Tạo một bản đồ chuyển trạng thái (Creating a State Transition

Map)

3 Làm giảm số lượng các trạng thái và sự chuyển trạng thái để kiểm

tra (Reducing the Number of States and Transitions to Test)

4 Những gì cần được kiểm tra trong bản đặc tả (What to

Trang 36

1 Kiểm tra luồng dữ liệu logic của phần mềm:

Để kiểm tra luồng logic, tester phải tới thăm tất cả các state bằng

mọi path

 Trừ những chương trình rất đơn giản, tester không thể thực hiện

được tất cả các path để đi tới tất cả các state

Ví dụ: bài toán nổi tiếng: “đi du lịch tới các thành phố”

Áp dụng kỹ thuật equivalence partition để lựa chọn các state và các

path 1 cách thông minh => hạn chế tối đa sự rủi ro

4.8 STATE MACHINE TESTING

Trang 37

2 Tạo một bản đồ chuyển trạng thái:

 Trước tiên, tạo một sơ đồ chuyển trạng thái của phần mềm => coi là

Trang 38

2 Tạo một bản đồ chuyển trạng thái:

Sơ đồ trạng thái (Transition Map) mô tả các nội dung sau:

Tập các trạng thái của phần mềm

Điều kiện để chuyển từ trạng thái này đến trạng thái tiếp theo

Tập các điều kiện và thủ tục output khi đi vào hoặc đi ra một trạng

thái

4.8 STATE MACHINE TESTING

Trang 39

3 Làm giảm số lượng các trạng thái và sự chuyển trạng thái:

Kiểm tra mọi path, mọi state chỉ thực hiện được khi tester có thời

Trang 40

3 Làm giảm số lượng các trạng thái và sự chuyển trạng thái:

Ngoài kỹ thuật equivalence partitioning cho data, còn áp dụng kỹ

thuật này cho các state:

Tới thăm mỗi state ít nhất 1 lần

Kiểm tra sự chuyển từ trạng thái state – to - state chung nhất và phổ biến

nhất

Hãy kiểm tra những path thông dụng nhất giữa các state

Hãy tìm tất cả các trạng thái lỗi và quay trở lại từ các lỗi này

Kiểm tra sự chuyển trạng thái một cách ngẫu nhiên

4.8 STATE MACHINE TESTING

Trang 41

4 Những gì cần được kiểm tra trong bản đặc tả :

Ví dụ 1: danh sách các state variable trong trạng thái khởi động của Paint:

Cỡ của cửa sổ được thiết đặt khi vừa mở Windows Paint.

 Vùng để vẽ là trống

Tool box, color box và thanh trạng thái được hiển thị

Chỉ công cụ pencil được lựa chọn

Màu mặc định: foreground là black và background là white

Tên mặc định của picture là untitled

 Một số đặc điểm chưa có trong spec thì tester bổ sung và trao đổi với

coder và người viết bản đặc tả

4.8 STATE MACHINE TESTING

Trang 42

4 Những gì cần được kiểm tra trong bản đặc tả :

Ví dụ 2: the dirty document flag – cờ báo trạng thái dữ liệu Yêu cầu:

 Trước tiên, phần mềm load dữ liệu (ảnh, văn bản…) vào chương

trình => tài liệu ở trạng thái “clear state” => đóng lại bình thường

Thực hiện thao tác sửa tài liệu => tài liệu ở trạng thái “dirty state”

=> đóng lại => nhắc ghi lại tài liệu

Chỉnh sửa => trạng thái “dirty” => undo => trạng thái “clear” => đóng

lại => không có lời nhắc

4.8 STATE MACHINE TESTING

Trang 43

5 Kiểm thử trạng thái để phát hiện lỗi

Các hệ điều hành có thể thực thi đa nhiệm (multitasking)

 Nếu có 2 hoặc nhiều hơn các sự kiện làm rối loạn chương trình

=> race condition

 Phần mềm không thể ngắt giữa các điều khiển của nó khi thực

thi đa nhiệm => bad timing

4.8 STATE MACHINE TESTING

Trang 44

5 Kiểm thử trạng thái để phát hiện lỗi

Save và load cùng một tài liệu tại một thời điểm với 2 chương trình khác nhau

 Chia sẻ cùng máy in, cổng giao tiếp, hoặc thiết bị ngoại vi khác

Nhấn phím và kích chuột trong khi phần mềm đang load hoặc thay đổi trạng thái

Shutting down hoặc starting up 2 hoặc nhiều hơn các instances (trường hợp) của

phần mềm tại cùng một thời điểm.

 Sử dụng những chương trình khác để đồng thời truy cập vào cơ sở dữ liệu

chung (common database)

4.8 STATE MACHINE TESTING

Trang 45

Performance testing: nhằm xác định tốc độ, khả năng phân tải và mức

độ tin tưởng của PM trong môi trường nhiều người dùng, hoặc có nhiều

hoạt động đồng thời Từ đó đưa ra kết luận ứng dụng hoạt động tốt nhất

trong điều kiện nào.Ví dụ:

 Xác định giới hạn số lượng truy cập đồng thời của 1 website

 Xác định giới hạn số lượng giao dịch đồng thời trên phần mềm

 Xác định giới hạn khả năng xử lý đồng thời của phần mềm

07/05/14

4.9 PERFORMANCE, LOAD,

STRESS TESTING

Trang 46

Load testing: bắt hệ thống phải chịu tải lớn (thực hiện nhiều xử lý), ví dụ:

 Có nhiều client cùng lúc truy cập

Trang 47

Stress testing: bắt hệ thống vận hành trong điều kiện bất thường, ví dụ:

 Thiếu bộ nhớ

 Kết nối mạng bị ngắt khi đang vận hành

 Database server down

 Nhiều giao dịch thực hiện đồng thời trong 1 thời gian dài

07/05/14

4.9 PERFORMANCE, LOAD,

STRESS TESTING

Trang 48

BÀI 4 TỔNG KẾT

 Chương này cung cấp 1 số kỹ thuật rất cơ bản được áp dụng thường xuyên trong quá trình kiểm thử phần mềm

Trang 49

BÀI 4 CÂU HỎI

1. Khởi động Windows WordPad/Print Trong Print range đâu là những

điều kiện biên?

Trang 50

BÀI 4 CÂU HỎI

3 Giả sử rằng bạn có một textbox điền ZIP code có độ rộng10 ký tự

số, như biểu diễn trong hình dưới Bạn sẽ tạo những phân vùng

tương đương nào cho textbox nào?

4 Tester phải đến thăm tất cả các trạng thái mà một chương trình

phải đảm bảo bằng cách chuyển đổi giữa các trạng thái đó Điều này đúng hay sai?

Trang 51

BÀI 4 CÂU HỎI

5 Lấy ví dụ về những hành động thực hiện trên phần mềm khi bạn

cố gắng để phơi bày các lỗi race condition?

6 So sánh performance test, load test, stress test?

Ngày đăng: 05/07/2014, 12:47

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w