Các kỹ thuật kiểm thử

Một phần của tài liệu BÁO cáo TIẾN độ THỰC tập CHUYÊN NGÀNH đề tài kiểm thử phần mềm và ứng dụng (Trang 32 - 40)

tĩnh 5.2 Kiểm thử động (Dynamic Testing)

Kiểm thử động được thực hiện khi code đang ở chế độ thực thi. Kiểm thử động được thực hiện trong môi trường thực thi chạy chương trình ứng dụng. Khi code được thực thi, thì đầu vào được truyền một giá trị, kết quả hoặc đầu ra của việc thực hiện được so sánh với kết quả dự kiến ban đầu đã đưa ra. Với việc này chúng ta có thể quan sát được các hành vi chức năng của phần mềm, giám sát hệ thống bộ nhớ, thời gian phản hồi của CPU, hiệu suất của hệ thống. Thử nghiệm dynamic còn được gọi là thử nghiệm xác nhận (Validation testing), đánh giá sản phẩm. Thử nghiệm động gồm hai loại: Kiểm tra chức năng và Kiểm tra phi chức năng.

Hình 6: các kỹ thuật kiểm thử động

26

6. Các kỹ thuật kiểm thử

Có nhiều kỹ thuật kiểm thử phần mềm, sau đây là 4 kỹ thuật phổ biến nhất trong kỹ thuật kiểm thử hộp đen là: kỹ thuật phân vùng tương đương, kỹ thuật phân tích giá trị biên, bảng quyết định và kỹ thuật đoán lỗi.

Trong quá trình kiểm thử, kiểm thử viên có thể áp dụng nhiều kỹ thuật khác nhau, kết hợp các phương pháp kiểm thử với nhau để có thể tìm các lỗi của phần mềm một cách tối đa.

6.1 Kỹ thuật phân vùng tương đương

Đây là phương pháp chia đầu vào thành những nhóm tương đương nhau. Nếu một giá trị trong nhóm hoạt động đúng thì tất cả các giá trị trong nhóm đó cũng hoạt động đúng và ngược lại.

- Mục đích: Giảm đáng kể số lượng test case cần phải thiết kế vì với mỗi lớp tương đương ta chỉ cần test trên các phần tử đại diện.

- Thiết kế test case bằng phân lớp tương đương tiến hành theo 2 bước: + Xác định các lớp tương đương. +Xác định các trường hợp kiểm thử. - Nguyên tắc: + Một lớp các giá trị lớn hơn + Một lớp các giá trị nhỏ hơn + Nhiều lớp các giá trị hợp lệ

Ví dụ: From Login bao gồm User:Text Box, Passwword: TextBox

Yêu cầu: Thiết kế testcase sao cho người dùng nhập vào ô textbox user chỉ cho nhập kí tự chữ với độ dài khoảng [6-20].

 Nếu nhập giá trị với số ký tự không nằm trong khoảng [6 -20] => hiển thị lỗi “ bạn chỉ được phép nhập chuỗi từ 6 => 20 ký tự”.

27

 Nếu để trống ô hoặc nhập ký tự khác ký tự chữ => hiển thị lỗi “Tên người dùng chưa hợp lệ! vui long nhập ký tự chữ”.

Dựa vào yêu cầu bài toán ta có thể có các lớp tương đương sau:

 Phân vùng 1: Nhập giá trị hơp lệ từ 6 =>20

 Phân vùng 2: Nhập các giá trụ không hợp lệ < 6 ký tự  Phân vùng 3: Nhập giá trị không hợp lệ > 20 ký tự

 Phân vùng 4: Trường hợp để trống không nhập gì hay nhập ký tự không phải dạng chữ.

Sau khi áp dụng phân vùng tương đương có thể chọn được các cá kiểm thử (testcase) sau:

 Case1: Nhập giá trị từ 6 =>20 =>pass

 Case 2: Nhập giá trị < 6 ký tự (có thể chọn nhập 1, 2,3,4 hoặc 5 ký tự) => hiển thị lỗi “bạn chỉ được phép nhập chuỗi từ 6 =>20 ký tự”.

 Case 3: Nhập giá trị > 20 ký tự => hiển thị lỗi “bạn chỉ được phép nhập chuỗi từ 6 =>20 ký tự”.

 Case 4: Để trống không nhập gì hay nhập ký tự không phải dạng chữ => hiển thị lỗi “Tên người dùng không hợp lệ ! vui lòng nhập ký tự chữ”.

Ưu điểm: Vì mỗi vùng tương đương ta chỉ cần test trên các phần tử đại diện nên số lượng test case được giảm đi khá nhiều nhờ đó mà thời gian thực hiện test cũng giảm đáng kể.

Nhược điểm: Không phải với bất kỳ bài toán nào cũng có thể áp dụng kĩ thuật này. Có thể bị hack lỗi ở biên nếu chỉ chọn giá trị ở khoảng giữa của miền tương đương.

28

6.2 Kỹ thuật phân tích giá trị biên

Đây là phương pháp kiểm thử mà chúng ta sẽ kiểm thử tất cả các giá trị ở vùng biên của dữ liệu vào và dữ liệu ra. Chúng ta sẽ tập trung vào các giá trị biên chứ không kiểm thử toàn bộ dữ liệu.

Mục đích: Thay vì chọn nhiều giá trị trong lớp đương tương để làm đại diện, phân tích giá trị biên yêu cầu chọn một hoặc vài giá trị là các cạnh của lớp tương đương để làm điều kiện kiểm thử. (adsbygoogle = window.adsbygoogle || []).push({});

Phân tích giá trị biên là kỹ thuật thiết kế test case và hoàn thành phân vùng tương đương.

Thiết kế test case bằng phương pháp phân tích giá trị biên chính là lựa chọn các test case để thực thi giá trị biên

Nguyên tắc:

 Giá trị nhỏ nhất

 Giá trị ngay dưới giá trị nhỏ nhất  Giá trị bình thường

 Giá trị ngay trên giá trị lớn nhất  Giá trị lớn nhất

Ví dụ : Điểm từ [0-10], ta có các giá trị biên là: - Giá trị nhỏ nhất: 0

- Giá trị ngay dưới giá trị nhỏ nhất: -1 - Giá trị bình thường: 5

- Giá trị ngay trên giá trị lớn nhất:11 - Giá trị lớn nhất:10

29

Đây là phương pháp test mà chúng ta sẽ test tất cả các giá trị ở vùng biên của dữ liệu. chúng ta sẽ tập trung vào các giá trị biên chứ không test toàn bộ dữ liệu. Phát triển thành các testcase: - Nhâp điểm = 0 -> hợp lệ - Nhập điểm = 5 -> hợp lệ - Nhập điểm = 10 -> hợp lệ - Nhập điểm = -1 -> không hợp lệ - Nhập điểm = 11 -> không hợp lệ 6.3 Bảng quyết định

Là phương pháp chính xác và tối ưu để mô hình hóa các điều kiện logic phức tạp. Điều kiện là các biểu thức rút ra từ việc rẽ nhánh trong chương trình, như lệnh if, white, switch …

Cấu trúc của bảng quyết định như sau: Các điều kiện (nguyên nhân)

Kết quả

Mỗi liên hệ giữa các điều kiện tương ứng với các kết quả sẽ cho biết hành động nào sẽ được thực hiện khi các điều kiện tương ứng thỏa mãn.

Các bước để xây dựng bảng điều kiện – kết quả 1. Xác định tất cả các điều kiện từ yêu cầu

2. Xác định tất cả các giá trị có thể có của các điều kiện 30

3. Xác định kết hợp giữa các điều kiện 4. Điền các kết hợp vào bảng

5. Loại bỏ các kết hợp không cần thiết (xung đột, hoặc dư thừa) 6. Điền các hành động vào bảng tương ứng với từng trường hợp

Bảng điều kiện – kết quả có nhiều loại, trong đó phổ biến và đơn giản nhất là bảng điều kiện – kết quả dưới hạn (Limited Entry Table). Với bảng điều kiện – kết quả kiểu này, điều kiện (condition) được thỏa mãn một cách đầy đủ và hành động (action) được thực hiện một cách trọn vẹn nhất.

Các ký hiệu dùng để mô tả bảng quyết định: Y: điều kiện thỏa mãn

N: điều kiện không thỏa mãn

-: điều kiện hoặc hành động không áp dụng X: hành dộng được thực hiện

Ví dụ: ngân hàng sử dụng các nguyên tắc sau đây để phân loại tài khoản ngân hàng mới mở:

Nếu người gửi tiền có tuổi <= 21 và số tiền gửi > 100 triệu thì tài khoản đó là loại A.

Nếu người gửi tiền có tuổi < 21 và số tiền gửi >= 100 triệu thì tài khoản đó là loại B.

Nếu người gửi số tiền có tuồi >= 21 và số tiền gửi < 100 triệu thì tài khoản đó là loại C.

Nếu người gửi tiền có tuổi < 21 và số tiền gửi < 100 triệu thì không mở tài khoản.

Để giải quyết bài toán này, nhân viên ngân hàng xây dựng bảng điều kiện – kết quả như sau: (adsbygoogle = window.adsbygoogle || []).push({});

31

Xác định điều kiện : có 2 điều kiện C1: Age >=21

C2: số tiền gửi >= 100 Xác định các hành động

Phân loại các tài khoản mới mở là A, B, C hoặc không mở tài khoản. Xác định các kết hợp

Có 02 điều kiện và mỗi điều kiện có 2 giá trị Y/N nên tất cả có 4 kết hợp

CONDITIONS C1: AGE >= 21 C2: số tiền gửi >= 100 ACTIONS A1: classify as A A2: classify as B A3: classify as B

A4: Do not open Account

6.3 Kỹ thuật đoán lỗi

Phương pháp này không có quy trình cụ thể vì có tính trực giác cao và không thể dự đoán trước

Phương pháp dựa vào kinh nghiệm, trực quan của kiểm thử viên để đưa ra các trường hợp kiểm thử. Trong quá trình kiểm thử, kiểm thử viên có thể áp dụng

nhiều kỹ thuật khác nhau, kết hợp các phương pháp kiểm thử với nhau để có thể tìm các lỗi của phần mềm một cách tối đa.

Ví dụ: ở màn hình login, đôi khi developer code hay gán username là “Admin” và pass là rỗng hoặc “123”, vì vậy khi thực hiện test chúng ra nên test cả case này.

Một phần của tài liệu BÁO cáo TIẾN độ THỰC tập CHUYÊN NGÀNH đề tài kiểm thử phần mềm và ứng dụng (Trang 32 - 40)