Là phương pháp chọn lựa một số đường diễn tiến của chương trình dựa vào việc cấp phát, định nghĩa, và sử dụng những biến trong chương trình.
Để hình dung ra cách tiếp cận này ta giả sử rằng mỗi câu lệnh của chương trình được gán một số duy nhất và rằng mỗi hàm không được thay đổi thông số của nó và biến toàn cục.
DEF(S) = { X | lệnh S chứa định nghĩa X }
USE(S) = { X | lệnh S chứa một lệnh/biểu thức sủ dụng X }
Nếu S là câu lệnh if hay loop, thì tập DEF của S là rỗng và USE là tập dựa trên điều kiện của câu lệnh S.
Định nghĩa 1 biến X tại câu lênh S được cho là vẫn còn sống tại câu lênh S’ nếu như tồn tại một đường từ câu lệnh S đến câu lệnh S’ không chứa bất kỳ định nghĩa nào của X.
Định nghĩa 2 Một chuổi dùng của biến X ( gọi là DU của X) ký hiệu [X, S, S’] là định nghĩa của X trong câu lệnh S vẫn sống trong câu lênh S’.
Phương pháp kiểm thử điều khiển luồng dữ liệu yêu cầu rằng tất cả các chuổi DU đều được kiểm thử ít nhất một lần. Có thể thấy rằng bộ kiểm thử cho luồng dữ liệu có thể không bao trùm tất cả các nhánh của chương trình. Tuy nhiên nêu môt nhánh đảm bảo được sẽ được phát hiện bỏi phương pháp kiểm thử này. Trong một số hiếm trường hợp như là cấu trúc lệnh if-then trong phần then không có định nghĩa thêm một biến nào và phần else không tồn tại. Trong tình huống này thì nhánh else của câu lênh trên không cần thiết phải bảo hộ bởi phương pháp này.
Phương pháp này rất hũư ích cho các loài kiểm thử một chương trình có nhiều lệnh if và lệnh lặp lồng nhau nhiều cấp.
Ví Dụ
Hình 1 Một Thủ Tục Với Lệnh Điều Kiện Và Lệnh Lặp Phức Tạp
Để xây dựng các trường hợp kiểmthử cho thủ tục trên, chúng ta cần phải biết định nghĩa và sử dụng biến ở mỗi điều kiện hoặc một khối trong thủ tục này. Giả sử biến X được định nghĩa trong câu lệnh cuối của khối lệnh B2, B3, B4 và B5. và biến X được sử dụng ở đầu của các khối B2, B3, B4, B5 và B6. Kiểm thử DU yêu cầu đường thực thi ngắn nhất từ Bi, 0< i <= 5 đến Bj 1<j<=6.
( thật sự thì trong trường hợp này các trường hợp kiểm thử cũng có khả năng phát hiện bất kỳ việc dùng biến X trong các điều kiện C1, C2, C3 và C4) mặc dù có đến 25 chuổi DU nhưng chỉ cần 5 là đủ để bao hàm các trường hợp khác.
58k48. Kiểm thử điều khiển vòng lặp nghĩa là gì? cho ví dụ
Kiểm thử điều khiển vòng lặp tập trung vào tính chất của cấu trúc vòng lặp. Có 4 cầu trúc vòng lặp như sau: vòng lặp đơn giản, vòng lặp móc nối, vòng lặp tạo thành tổ, và vòng lặp không cầu trúc
Ví dụ về các loại vòng lặp
Hình 2 Các Cấu Trúc Lặp
proc x B1;
do while C1 if C2 then
if C4 then B4;
else B5 endif;
else
if C3 then B2 else B3 endif;
endif enddo B6 End proc
Vòng Lặp Đơn
Tập hợp tiếp theo là các trường hợp kiểm thử cho vòng lặp đơn, với n là maximum số lần lặp.
• Bỏ tình toàn vẹn của vòng lặp
• Chỉ cần một lần duyệt xuyên qua cả vòng lặp
• Hai lần duyệt xuyên qua cả vòng lặp
• m lần duyệt xuyên qua cả vòng lặp
• n-1, n, n+1 lần duyệt xuyên qua cả vòng lặp Vòng Lặp Tạo Tổ
Nếu như chúng ta mở rộng phương pháp kiểm thử cho vòng lặp đơn thì số lượng trường hợp kiểm thử sẽ tăng rất nhiều. Sau đây là một cách là giảm sồ lượng trường hợp kiểm thử :
• Bắt đầu tại vòng lặp con trong cùng. Thiết lập tất cả các vòng lặp khác là giá trị minimum.
• Kiểm soát vòng lặp ở trong cùng trong khi giữ các vòng lặp bên ngoài lặp lại với giá trị là minimum thông số ảnh hưởng nhau ( thông số đó có thể là biến lặp). Thêm môt số trường hợp ngoài phạm vi của biến lặp và một số giá trị đặc biệt.
• Thực hiên như bước trên và tiến ra ngoài dần
• Thực hiện tiếp cho đến khi tất cả các vòng lặp được kiểm thử hết.
vòng lặp đơn giản
vòng lặp tạo
thành tổ vòng lặp móc nối vòng lặp không cầu trúc
Vòng Lặp Móc Nối
Đồi vói kiểu này có thể kiểm thử bằng cách như với vòng lặp đơn ở trên nếu các biền lặp độc lập với nhau. Tuy nhiên nếu 2 vòng lặp là móc nối và biến lặp của vòng lặp thứ nhất được sử dụng như là biến khởi tạo cho vòng lặp 2 thì 2 vòng lặp này không còn độc lặp nữa, Phương pháp dùng cho vòng lặp tạo tổ sẽ được sử dụng ở đây.
58k47. Kiểm thử điều khiển vòng lặp nghĩa là gì? cho ví dụ
Kiểm thử điều khiển vòng lặp là một kỹ thuật kiểm thử hộp trắng tập trung vào việc kiểm tra tính hợp lệ của cấu trúc vòng lặp. Có 4 loại vòng lặp được đề cập tới :
Vòng lặp đơng giản, Vòng lặp ghép nối, Lặp lồng và lặp không có cấu trúc.
Vòng lặp đơn giản : ta có thể tăng lần lượt số lượng lần check chạy qua vòng lặp tợi một ngưỡng cho phép.
Vòng lặp lồng :
2. Xuất phát từ vòng lặp trong cùng, Giữ các vòng lặp khác ở biến đếm nhỏ nhất 3. Thực hiện kiểm thử ở chế độ vòng lặp đơn giản cho vòng lặp hiện tại
4. Làm tiếp với vòng lặp ở bên ngoài, giữ các vòng lặp ngoài nó ở giá trị biến đếm nhỏ nhất, và giữ nguyên cácgiá trị biến đếm của các vòng lặp trong nó
5. Tiếp tục cho đến khi hết vòng lặp
Vòng lặp ghép nối: chế độ kiểm thử cho các vòng lặp phụ thuộc vào nhau (VD chỉ số của vòng lặp này là điểm xuất phát cho các vòng lặp khác)
.Vòng lặp không cấu trúc: Cần phải được thiết kế lại trước khi kiểm thử.
Minh họa
Câu 59)K48 Mô hình của kiểm thử hộp đen quan tâm đến nhân tố nào của phần mềm? Nó nhằm tìm ra các loại sai nào? Nêu các phương pháp áp dụng cho nó?
a) Mô hình của kiểm thử hộp đen quan tâm đến các nhân tố:
Kiểm thử hộp đen thường dùng cho system kiểm thử để kiểm thử chức năng của chương trình Tài liệu: cần các đặc tả yêu cầu phần mềm, chức năng của phần mềm, thiết kế logic.
Dữ liệu: Các dữ liệu đầu vào, các dữ liệu đầu ra.
Không quan tâm đến mã nguồn.
b) Nhằm tìm ra các loại sai:
Tập trung vào các yêu cầu chức năng phần mềm
Dự định tìm lỗi trong các phạm vi sau: Các chức năng không đúng hay bỏ sót, Lỗi giao diện, Lỗi trong cấu trúc dữ liệu, Lỗi hiệu năng
c) Các phương pháp áp dụng cho nó:
• Phương pháp phân hoạch tương đương
• Phân tích giá trị biên
• Đoán lỗi
59K47. Mô hình của kiểm thử hộp đen quan tâm đến nhân tố nào của phần mềm? Nó nhằm tìm ra các loại sai nào? Nêu các phương pháp áp dụng cho nó?
- Kiểm thử hộp đen còn được gọi là kiểm thử theo đặc tả vì vậy nó quan tâm tới các yêu cầu của ứng dụng và các đặc tả kĩ thuật của sản phẩm.
- Kiểm thử hộp đen nhằm để tìm ra các loại sai sau:
. lỗi chức năng theo đặc tả
. lỗi hoạt động thành phần/ hệ thống theo đặc tả . lỗi hiệu năng theo đặc tả
. lỗi do thói quen người dùng . lỗi giao tiếp hộp đen
- Phương pháp áp dụng cho nó là:
. Với các thành phần phần mềm, ta cần đặc tả thành phần, tài liệu giao tiếp người dùng . Với một phần mềm hệ thống hay hê thống con, ta cần đặc tả yêu cầu, và tài liệu đặc tả sản phẩm
. Ta cũng cần:
. Các phương pháp kiểm thử phần mềm theo đặc tả . Các tiêu chuẩn kiểm thử phần mềm theo đặc tả . Hiểu biết về các thành phần phần mềm hay hệ thống
Câu 60K48. Trình bày phương pháp phân hoach: nguyên tắc, mục tiêu và thiết kế của kiểm thử? Phương châm xác định lớp tương đương là gì?
Phương pháp phân hoạch: nguyên tắc, mục tiêu, thiết kế của kiểm thử Nguyên tắc:
- Chia dữ liệu đầu vào thành các lớp:
o Các lớp giá trị hợp lệ o Các lớp giá trị không hợp lệ
- Các giá trị trong 1 lớp: tương đương nhau -> kiểm thử một giá trị cũng giống như kiểm thử tất cả các giá trị của lớp đó
- Lấy ít nhất một giá trị trong lớp đó để xây dựng kiểm thử case 1 trường hợp kiểm thử (test case) ứng với 1 lớp
- Một số trường hợp có thể xét đến dữ liệu đầu ra Mục tiêu:
- Giảm số lượng kiểm thử bằng cách chọn các tập dữ liệu đại diện.
- Giảm được những đặc tính kém nổi bật làm cho việc kiểm thử không hiệu quả.
- Chỉ ra được những lớp dữ liệu làm cho chương trình chạy không đúng Thiết kế:
dựa trên tính chất về biến của các giá trị. Nếu biến có giá trị là :
- Một khoảng giá trị -> 3 lớp: trong khoảng, trên khoảng, dưới khoảng.
- Một tập hợp các giá trị -> 3 lớp: trong tập hợp, ngoài tập hợp trên max và dưới min.
- Một tập hợp các khoảng giá trị: mỗi khoảng giá trị hợp lệ là 1 lớp và 2 lớp các giá trị không hợp lệ ngay dưới khoảng giá trị nhỏ nhất và ngay trên khoảng giá trị lớn nhất
- Một giá trị -> 2 lớp: hợp lệ, không hợp lệ - Boolean -> 2 lớp: true, false
Phương châm phân lớp tương đương:
• Nếu thông tin đầu vào chỉ định một vùng các giá trị, thì ta có một lớp dữ liệu hợp lệ và hai không hợp lệ được định nghĩa.
• Nếu thông tin đầu vào chỉ định một giá trị, thì ta có một lớp dữ liệu hợp lệ và hai không hợp lệ được định nghĩa.
• Nếu thông tin đầu vào chỉ định một giá trị của một tập, thì ta có một lớp dữ liệu hợp lệ và hai không hợp lệ được định nghĩa.
• Nếu thông tin đầu vào chỉ định một giá trị boolean, thì ta có một lớp dữ liệu hợp lệ và một không hợp lệ được định nghĩa.
60K47. Trình bày phương pháp phân hoạch: nguyên tắc, mục tiêu và thiết kế ca kiểm thử? Phương pháp xác định lớp tương đương là gì?
Nguyên tắc của kiểm thử:
- Tất cả các phép kiểm tra nên tuân theo yêu cầu của khách hàng - Kế hoạch kiểm thử nên được lập sớm trước khi kiểm thử bắt đầu
80% các lỗi không được tìm thấy khi kiểm thử sẽ có ở 20% toàn bộ các module - Kiểm thử nên bắt đầu từng bước nhỏ và mở rộng dần
- Kiểm thử tận cùng không thể thực hiện được
- Hiệu quả nhất là kiểm thử nên được chỉ đạo bởi bên thứ 3
Phân hoạch phân hoạch tương đương là một phương pháp kiểm thử hộp đen - Chia miền đầu vào của chương trình thành các lớp dữ liệu
- Dựng trường hợp kiểm thử dựa trên các phân hoạch này
Trường hợp kiểm thử cho phân hoạch lớp tươgn đương dựa trên một sự tương đồng của các phân hoạch tương đươngcho một miền đầu vào
Một phân hoạch tương đươngđại diện cho một tập các trạng thái đúng hay sai của đkiện đầu vào
Một đkiện đầu vào là:
- một giá trị số xác đinh, một khoảng giá trị
- một tập các giá trị liên quan, hay một đkiện Boolean Lớp tương đưong có thể được xác định qua các bước sau:
- Nếu một dk đầu vào xác định một khoảng, một lớp tương đương đúng và hai lớp tương đương sai được xác lập
- Nếu một dk đầu vào đòi hỏi một giá trị xác định, một lớp tương đương đúng và hai sai lớp tương đương đựoc xác định
- Nếu một dk đầu vào xác định một tập, một lớp tương đương đúng và một lớp tương đương đựoc xác định
- Nếu một dk đầu vào là Boolean, một lớp đúng và mộ lớp sai đựoc xác định
Câu 60. Trình bày phương pháp phân hoach: nguyên tắc, mục tiêu và thiết kế của kiểm thử? Phương châm xác định lớp tương đương là gì?
Phương pháp phân hoạch: nguyên tắc, mục tiêu, thiết kế của kiểm thử Nguyên tắc:
- Chia dữ liệu đầu vào thành các lớp:
o Các lớp giá trị hợp lệ o Các lớp giá trị không hợp lệ
- Các giá trị trong 1 lớp: tương đương nhau -> kiểm thử một giá trị cũng giống như kiểm thử tất cả các giá trị của lớp đó
- Lấy ít nhất một giá trị trong lớp đó để xây dựng kiểm thử case 1 trường hợp kiểm thử (test case) ứng với 1 lớp
- Một số trường hợp có thể xét đến dữ liệu đầu ra Mục tiêu:
- Giảm số lượng kiểm thử bằng cách chọn các tập dữ liệu đại diện.
- Giảm được những đặc tính kém nổi bật làm cho việc kiểm thử không hiệu quả.
- Chỉ ra được những lớp dữ liệu làm cho chương trình chạy không đúng Thiết kế:
dựa trên tính chất về biến của các giá trị. Nếu biến có giá trị là :
- Một khoảng giá trị -> 3 lớp: trong khoảng, trên khoảng, dưới khoảng.
- Một tập hợp các giá trị -> 3 lớp: trong tập hợp, ngoài tập hợp trên max và dưới min.
- Một tập hợp các khoảng giá trị: mỗi khoảng giá trị hợp lệ là 1 lớp và 2 lớp các giá trị không hợp lệ ngay dưới khoảng giá trị nhỏ nhất và ngay trên khoảng giá trị lớn nhất
- Một giá trị -> 2 lớp: hợp lệ, không hợp lệ - Boolean -> 2 lớp: true, false
Phương châm phân lớp tương đương:
• Nếu thông tin đầu vào chỉ định một vùng các giá trị, thì ta có một lớp dữ liệu hợp lệ và hai không hợp lệ được định nghĩa.
• Nếu thông tin đầu vào chỉ định một giá trị, thì ta có một lớp dữ liệu hợp lệ và hai không hợp lệ được định nghĩa.
• Nếu thông tin đầu vào chỉ định một giá trị của một tập, thì ta có một lớp dữ liệu hợp lệ và hai không hợp lệ được định nghĩa.
• Nếu thông tin đầu vào chỉ định một giá trị boolean, thì ta có một lớp dữ liệu hợp lệ và một không hợp lệ được định nghĩa.
61. Phân tích giá trị biên nghiã là gì? Phương châm phân tích giá trị biên là gì?
Phân tích giá trị biên là một kỹ thuật thiết kế trường hợp kiểm thử được thiết kế bổ sung cho trường hợp kiểm thử dựa trên các lớp dữ liệu đầu vào tương đương. Thay vì việc lựa chọn những giá trị của
các lớp dữ liệu đó, kỹ thuật này sẽ xây dựng các trường hợp kiểm thử dựa trên các dữ liệu nằm tại biên của các lớp dữ liệu đầu vào, cũng như có thể xây dựng các THKT(Trường hợp kiểm thử) dựa vào các miền giá trị đầu ra.
Như vậy phương châm của kỹ thuật phân tích giá trị biên là không lựa chọn các giá trị nằm ở trong vùng dữ liệu đầu vào của chương trình, vì phần lớn các lỗi phát sinh đều xuất phát với các giá trị nằm tại biên của dữ liệu.
Để tiến hành, ta có thể thực hiện theo các bước sau
-Nếu đầu vào của miền dữ liệu là khoàng [a,b] ta nên xây dựng các THKT với các giá trị a, b hoặc lân cận a hoặc b ( a-1, a, a+1, b-1, b, b+1, )
-Nều đầu vào là một tập các giá trị rời rạc ta nên xây dựng các THKT với các giá trị min, max và lân cận nó.
-Sử dụng các quy tắc trên nếu xây dựng các THKT từ các giá trị đầu ra.
-Nếu vùng dữ liệu đầu vào nằm trong miền giới hạn của cấu trúc dữ liệu chứa nó, nên xây dựng các THKT với các giá trị tại biên và lân cận của cấu trúc dữ liệu đó.
62. Kỹ thuật nhân quả nghĩa là gì? Nêu các bước của ký thuật này?
Trong nhiều trường hợp , việc cố gắng chuyển các yêu cầu chính sách hay thủ tục trong ngôn ngữ tự nhiên thành một chương trình phần mềm sẽ gây ra nhiều vấn đề không đáp ứng được. Kỹ thuật đồ thị nhân quả là một cách tiếp cận thiết kế trường hợp kiểm thử cung cấp một cách mô tả súc tích cho các điều kiện logic và các hoạt động tương tác.
Gồm 4 giai đoạn :
• Nguyên nhân (các điều kiện đầu vào) và các hệ quả (các hoạt động) được liệt kê cho một module và một mô tả được đặt cho mỗi module đó.
• Đồ thị nhân – quả được tạo
• Đồ thị được thay đổi trong một bảng quyết định.
• Quy luật của bảng quyết định được thay đổi cho các trường hợp kiểm thử.
Một mô hình cơ bản tượng trưng cho đồ thị nhận quả được chỉ ra dưới hình sau . Cột bên trái là các mối liên kết khác nhau giữa các nguyên nhân c và các hệ quả i e . Các đường nét đứt bên phải chỉ i ra mối liên hệ ràng buộc có thể tác động nguyên nhân hay hệ quả .
Symbology Constraints
a
E
b
c1
e1 Identity
c1
e1
“Not”
a
I
b
a
O
b
Cause- effect graphing
63. Chiến lươc kiểm thử thời gian thực gồm mấy bước? là những bước nào? Giải thích nội dung cơ bản mỗi bước?
Kiểm thử thời gian thực không những phải kiểm thử về mặt giá trị logic, còn phải kiểm thử về mặt thời gian, vì phản hồi của một hệ thời gian thực không chỉ phụ thuộc vào giá trị logic đúng hay sai, mà còn phụ thuộc vào thời gian đưa ra phản hồi.
Chiến lược kiểm thử thời gian thực bao gồm 4 bước :
+ Kiểm thử tác vụ (Task testing): Giai đoạn đầu tiên là kiểm thử độc lập các tác vụ của phần mềm thời gian thực.
+ Kiểm thử hành vi (Behavioural testing): Using system models produced with CASE tools the behaviour of the real-time system and examine its actions as a result of external events.
+ Kiểm thử chéo các tác vụ (Intertask testing): Once errors in individual tasks and in system behaviour have been observed testing passes to time-related external events.
+ Kiểm thử các hệ thống (Systems testing): Phần cứng và phần mềm được tích hợp; và tập đầy đủ các kiểm thử hệ thống được đưa ra để tìm ra các lỗi trong giao tiếp giữa phần cứng và phần mềm.