Kỹ Thuật Phân Vùng Tương Đương Và Giá Trị Biên, Bài Tập Về Kỹ Thuật Phân Vùng Tương Đương

Để bảo đảm được chất lượng của một hoặc nhiều dự án software QA cần phải tạo được bộ testcase thích hợp.Để thực hiện việc kiểm soát software với khoảng thời gian ngắn nhất mà vẫn đạt chất lượng đảm bảo nhất cần phải hiểu sâu về nghiệp vụ của software & linh động trong việc kiến trúc testcase. Kiến trúc testcase trong kiểm thử software là công cuộc xây dựng các mẹo kiểm thử có thể phát hiện lỗi, sai sót, điểm yếu của software để xây dựng software đạt đúng chuẩn.

Bạn đang xem: Kỹ thuật phân vùng tương tự

Trong mẹo kiểm thử hộp đen, có 2 kỹ thuật hay được sử dụng mà nếu ứng dụng một cách linh động thì sẽ cắt giảm rất là nhiều số lượng case thừa, tiết kiệm thời gian kiểm thử mà vẫn bảo đảm chất lượng software. Tôi sẽ giới thiệu ngay dưới đây.

1. Kỹ thuật phân vùng tương tự – Equivalence Patitioning

1.1 Khái niệm:

Phân vùng tương tự là mẹo chia các điều kiện đầu vào thành những vùng tương tự nhau. Toàn bộ các giá trị trong một vùng tương tự sẽ cho một kết quả đầu ra giống nhau. Vì thế tất cả chúng ta có thể check một giá trị đại diện trong vùng tương tự.Các lớp tương tự được xác nhận bằng bằng cách lấy mỗi hiện trạng đầu vào (thường là 1 câu hay 1 cụm từ trong đặc tả) & phân tách nó thành 2 hay nhiều nhóm.

Kiến trúc Check-case bằng phân lớp tương tự tiến hành theo 2 bước:

1.1.1. Xác nhận các lớp tương tự:

Có hai kiểu lớp tương tự được xác nhận:

Lớp tương tự hợp lệ miêu tả các đầu vào hợp lệ của chương trình, & lớp tương tự không hợp lệ miêu tả toàn bộ các hiện trạng có thể khác của điều kiện (chẳng hạn, các giá trị đầu vào không đúng). Với 1 đầu vào hay điều kiện bên ngoài đã cho, việc xác nhận các lớp tương tự hầu hết là 1 quy trình đưa tính kinh nghiệm. Để xác nhận các lớp tương tự ͼ có thể vận dụng tập các phép tắc dưới đây:

α. Nếu 1 hiện trạng đầu vào định rõ hạn chế của các giá trị, xác nhận 1 lớp tương tự hợp lệ & 2 lớp tương tự không hợp lệ.

ɓ. Nếu 1 hiện trạng đầu vào xác nhận số giá trị, xác nhận 1 lớp tương tự hợp lệ & 2 lớp tương tự bất hợp lệ.

ͼ. Nếu 1 hiện trạng đầu vào chỉ định tập các giá trị đầu vào & chương trình sử dụng mỗi giá trị là khác nhau, xác nhận 1 lớp tương tự hợp lệ cho mỗi loại & 1 lớp tương tự không hợp lệ.

{d}. Nếu 1 hiện trạng đầu vào chỉ định một tình huống “chắc chắn – must be”, xác nhận 1 lớp tương tự hợp lệ & 1 lớp tương tự không hợp lệ.

Nếu có bất kỳ nguyên nhân nào để tin rằng chương trình không giải quyết các phần tử trong cùng 1 lớp là như nhau, thì hãy chia lớp tương tự đó thành các lớp tương tự bé hơn.

1.1.2 Xác nhận các ca kiểm thử.

Với các lớp tương tự xác nhận được ở bước trên, bước thứ hai là sử dụng các lớp tương tự đó để xác nhận các ca kiểm thử. Công cuộc này như sau:

α. Gán 1 số duy nhất cho mỗi lớp tương tự.

ɓ. Cho đến khi toàn bộ các lớp tương tự hợp lệ được bao trùm bởi (thống nhất thành) các ca kiểm thử, viết 1 ca kiểm thử mới bao phủ càng nhiều các lớp tương tự đó chưa được bao trùm càng tốt.

Xem Thêm  Sự khác biệt giữa các khóa trong SQL - chìa khóa trong sql là gì

ͼ. Cho đến khi các ca kiểm thử của các bạn đã bao phủ toàn bộ các lớp tương tự không hợp lệ, viết 1 ca kiểm thử mà bao phủ một & chỉ một trong các lớp tương tự không hợp lệ chưa được bao trùm.

{d}. Nguyên nhân mà mỗi ca kiểm thử riêng bao phủ các trường hợp không hợp lệ là vì các kiểm soát đầu vào không đúng nào đó cất giấu hoặc thay thế các kiểm soát đầu vào không đúng khác.

Tham khảo thêm: Công Ty Thương Mại Điện Tử – Truyền Thông Châu Á, Công Ty Thương Mại Điện Tử

Mặc dầu việc phân lớp tương tự là rất tốt khi lựa chọn bỗng nhiên các ca kiểm thử, nhưng nó vẫn có những thiếu sót. Chẳng hạn, nó bỏ qua các kiểu check – case có ích nào đó. Hai mẹo kế tiếp, nghiên cứu giá trị biên & đồ thị lý do – kết quả , bao phủ được nhiều những thiếu sót này.

1.2. Chẳng hạn:

(*) Form nhập số tầng của tòa nhà bao gồm:

Floor: Text-box

Yêu cầu:

Kiến trúc check case sao cho người dùng nhập vào ô text-box Salary chỉ cho nhập ký tự là số với độ dài trong khoảng <0-10vàgt;

*

(*) Dựa trên yêu cầu bài toán ta có thể có các lớp tương tự(phân vùng) sau:

Phân vùng 1: Nhập giá trị hợp lệ từ 0=> 10 ký tự

Phân vùng 2: Nhập giá trị không hợp lệ

Phân vùng 3: Nhập giá trị không hợp lệ > 10 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 số

Sau thời điểm vận dụng phân vùng tương tự có thể chọn được các ca kiểm thử (check case) sau:

Case 1: Nhập giá trị từ 0 => 10 (có thể chỉ nhập số 5)=> pass

Case 2: Nhập giá trị hiển thị lỗi

Case 3: Nhập giá trị > 10 => hiển thị lỗi

Case 4: Để trống không nhập gì hay nhập ký tự không phải dạng số => hiển thị lỗi

1.3. Ưu/ khuyết điểm:

(*) Ưu thế:

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

(*) Khuyết điểm:

Không phải với bất kỳ bài toán nào đều có thể vận dụng kỹ thuật này. Có thể bị lack lỗi ở biên nếu chỉ chọn giá trị ở khoảng giữa của miền tương tự.Vì thế khi phần đông các lỗi được tìm ra lúc kiểm soát giá trị ở biên của các phân vùng thì tất cả chúng ta nên xem thêm một kỹ thuật nữa là Boundary value analysis (nghiên cứu giá trị biên).

2. Kỹ thuật nghiên cứu giá trị biên

2.1 Khái niệm:

*

Đây là một trong những kỹ thuật kiểm thử software, trong đó các testcase được kiến trúc bao gồm các giá trị tại các biên. Nếu dữ liệu đầu vào được sử dụng là trong hạn chế giá trị biên, nó được nghĩ rằng Positive testing. Nếu dữ liệu đầu vào được sử dụng là ngoài hạn chế giá trị biên, nó được nghĩ rằng Negative testing.Mục tiêu là lựa chọn các check case để thực thi giá trị biên.

Xem Thêm  Danh sách họ phông chữ CSS - Hướng dẫn - danh sách css gia đình phông chữ

*

Kinh nghiệm cho thấy các ca kiểm thử mà thăm dò tỷ mỷ các điều kiện biên có tỷ lệ % cao hơn các ca kiểm thử khác. Các điều kiện biên là những điều kiện mà các tình huống ngay tại, trên & dưới các cạnh của các lớp tương chống chọi vào & các lớp tương chống chọi ra.

Phân tích các giá trị biên là mẹo kiến trúc ca kiểm thử bổ sung thêm cho phân lớp tương tự, nhưng khác với phân lớp tương tự ở 2 góc cạnh:

Phân tích giá trị biên không lựa chọn phần tử bất kỳ nào trong 1 lớp tương tự là điển hình, mà nó yêu cầu là 1 hay nhiều phần tử được lựa chọn như thế mà mỗi cạnh của lớp tương tự đó chính là đối tượng kiểm soát.Ngoài việc chỉ chăm chú Note vào các hiện trạng đầu vào (không gian đầu vào), các ca kiểm thử cũng thu được bằng việc suy xét không gian kết quả (các lớp tương chống chọi ra).

Phân tích giá trị biên không lựa chọn phần tử bất kỳ nào trong 1 lớp tương tự là điển hình, mà nó yêu cầu là 1 hay nhiều phần tử được lựa chọn như thế mà mỗi cạnh của lớp tương tự đó chính là đối tượng kiểm soát.Ngoài việc chỉ chăm chú Note vào các hiện trạng đầu vào (không gian đầu vào), các ca kiểm thử cũng thu được bằng việc suy xét không gian kết quả (các lớp tương chống chọi ra).

Phân tích giá trị biên yêu cầu óc sáng kiến & lượng chuyên môn hóa khẳng định & nó là một công cuộc đưa tính kinh nghiệm rất cao. Không những thế, có một số nguyên tắc chung như sau:

Nếu 1 hiện trạng đầu vào định rõ hạn chế của các giá trị, hãy viết các ca kiểm thử cho các giá trị cuối của hạn chế, & các ca kiểm thử đầu vào không hợp lệ cho các trường hợp vượt ra ngoài phạm vi.Nếu 1 hiện trạng đầu vào định rõ số lượng giá trị, hãy viết các ca kiểm thử cho con số lớn nhất & nhỏ nhất của các giá trị & một giá trị trên, một giá trị dưới những giá trị này.Sử dụng nguyên tắc 1 cho mỗi hiện trạng đầu vào.

Nếu 1 hiện trạng đầu vào định rõ hạn chế của các giá trị, hãy viết các ca kiểm thử cho các giá trị cuối của hạn chế, & các ca kiểm thử đầu vào không hợp lệ cho các trường hợp vượt ra ngoài phạm vi.Nếu 1 hiện trạng đầu vào định rõ số lượng giá trị, hãy viết các ca kiểm thử cho con số lớn nhất & nhỏ nhất của các giá trị & một giá trị trên, một giá trị dưới những giá trị này.Sử dụng nguyên tắc 1 cho mỗi hiện trạng đầu vào.

Chẳng hạn, nếu 1 chương trình tính toán sự khấu trừ FICA hàng tháng & nếu mức ít nhất là 0.00$, & tối đa là 1,165.25$, hãy viết các ca kiểm thử mà khấu trừ 0.00$ & 1,165.25, khấu trừ âm & khấu trừ to hơn 1,165.25$. Lưu ý là việc suy xét hạn chế của không gian kết quả là trọng yếu vì không phải bao giờ các biên của miền đầu vào cũng miêu tả cùng một tập buổi lễ như biên của hạn chế đầu ra (chẳng hạn, xét chương trình con tính SIN). Không những thế, không phải bao giờ cũng có thể tạo thành 1 kết quả bên ngoài hạn chế đầu ra, nhưng không những thế rất đáng để suy xét tiềm tàng đó.

Xem Thêm  Cookie PHP - Cookies trong php là gì

Sử dụng phép tắc 2 cho mỗi hiện trạng đầu ra.Nếu đầu vào hay đầu ra của 1 chương trình là tập được sắp thứ tự ( chẳng hạn,1 file tuần tự hay 1 mục lục định tuyến hay 1 bảng) chăm chú Note vào các phần tử trước hết & cuối cùng của tập hợp.Sử dụng sự khéo léo của các bạn để tìm các điều kiện biên.

Sử dụng phép tắc 2 cho mỗi hiện trạng đầu ra.Nếu đầu vào hay đầu ra của 1 chương trình là tập được sắp thứ tự ( chẳng hạn,1 file tuần tự hay 1 mục lục định tuyến hay 1 bảng) chăm chú Note vào các phần tử trước hết & cuối cùng của tập hợp.Sử dụng sự khéo léo của các bạn để tìm các điều kiện biên.

Các case chuẩn được lựa chọn dựa theo nguyên tắc sau:

Giá trị biên nhỏ nhất – 1

Giá trị biên nhỏ nhất

Giá trị biên lớn nhât

Giá trị biên lớn nhất + 1

Nhưng nếu bạn mong muốn kiểm soát sâu hơn thì bạn cũng có thể lựa chọn theo nguyên tắc:

Giá trị biên nhỏ nhất – 1

Giá trị biên nhỏ nhất

Giá trị biên nhỏ nhất + 1

Giá trị biên lớn nhất – 1

Giá trị biên lớn nhất

Giá trị biên lớn nhất + 1

2.2. Chẳng hạn:

*

(*) Form nhập số tầng của tòa nhà bao gồm:

Floor: Text-box

Ứng dụng kỹ thuật nghiên cứu giá trị biên ta chọn được các case sau:

Case 1: Nhập giá trị là -1 => hiển thị lỗi

Case 2: Nhập giá trị là 0 => pass

Case 3: Nhập giá trị với 10 => pass

Case 4: Nhập giá trị với 11 => hiển thị lỗi

Case 5: Để trống không nhập gì hay nhập ký tự không phải dạng văn bản => hiển thị lỗi

2.3. Ưu/ khuyết điểm:

(*) Ưu thế:

Thay vì phải check hết toàn thể các giá trị trong từng vùng tương tự, kỹ thuật nghiên cứu giá trị chỉnh sửa trung vào việc kiểm thử các giá trị biên của miền giá trị inputs để kiến trúc check case do “lỗi thường tiềm ẩn tại các ngõ ngách và tập hợp tại biên”.

Tiết kiệm thời gian kiến trúc check case & thực hiện check.

(*) Khuyết điểm:

Bí quyết này chỉ hiệu quả trong trường hợp các đối số đầu vào (input variables) độc lập với nhau & mỗi đối số đều có một miền giá trị hữu hạn.

3.Kết luận:

Ngoài 2 kỹ thuật kiến trúc check case đã nói ở trên, bạn cũng có thể tìm tòi & sử dụng rất là nhiều các kỹ thuật khác nữa như: đoán lỗi (Error Guessing), kiến trúc check case dựa theo đồ thị lý do – kết quả(Cause-Effect Diagram), dựa theo bảng quyết định(Decision Tables)…

Để cắt giảm số case đến mức tối ưu mà vẫn bảo đảm chất lượng software, mỗi tester cần linh động trong việc lựa chọn các kỹ thuật kiến trúc check case.Kiểm thử software giúp phân phối software vận dụng có chất lượng & bảo đảm các software là ít bug nhất trước khi được ra mắt. Để kiểm thử hiệu quả, ta sử dụng cả Positive & Negative testing, trong đó phân phối đủ lòng tin về chất lượng của software. Yêu cầu về thời gian thực, giá trị đầu vào bất kỳ phải được kiểm soát trước khi cho ra đời.

Chuyên đề:

Chuyên đề: Tên miền Host

Viết một bình luận