4 Đồ thị lƣu trình trên đoạn mã chƣơng trình B

Một phần của tài liệu (LUẬN văn THẠC sĩ) cơ sở toán học cho các kỹ thuật kiểm thử phần mềm (Trang 42 - 49)

- Bƣớc 2: Xác định độ phức tạp Cyclomat của đồ thị lƣu trình kết quả

bằng 1 trong 3 cách:

1. Công thức 1: V(G) = R = 10

2. Công thức 2: V(G) = P + 1 = 9 + 1 = 10

3. Công thức 3: V(G) = E – N + 2 = 21 – 13 + 2 = 10

Nhƣ vậy, độ phức tạp Cyclomat của đồ thị trong hình 3.4 là 10.

Bƣớc 3: Xác định tập cơ sở các đƣờng dẫn độc lập tuyến tính. + Đƣờng dẫn 1: 1,7 + Đƣờng dẫn 2: 1,2,7 + Đƣờng dẫn 3: 1,2,3,7 + Đƣờng dẫn 4: 1,2,3,4,7 + Đƣờng dẫn 5: 1,2,3,4,5,7 1 2 3 4 5 7 8 9 10 12 11 6

+ Đƣờng dẫn 6: 1,2,3,4,5,6,7

+ Đƣờng dẫn 7: 1,2,3,4,5,6,8,9,10,11 + Đƣờng dẫn 8: 1,2,3,4,5,6,8,12 + Đƣờng dẫn 9: 1,2,3,4,5,6,8,9,12 + Đƣờng dẫn 10: 1,2,3,4,5,6,8,9,10,12

Bƣớc 4: Sinh các trƣờng hợp kiểm thử (sinh các test case) có khả năng thực hiện mỗi đƣờng dẫn trong tập cơ sở.

+ Đƣờng dẫn 1: 1,7

Đầu vào: D1<0, D2 và D3 là một số bất kỳ Đầu ra mong muốn: "Dữ liệu sai"

Mục đích: Kiểm tra điểm nhập vào có hợp lệ khơng.

TC_01: (-10; 4 ; 85)

+ Đƣờng dẫn 2: 1,2,7

Đầu vào: D1>10, D2 và D3 là một số bất kỳ Đầu ra mong muốn: "Dữ liệu sai"

Mục đích: Kiểm tra điểm nhập vào có hợp lệ khơng.

TC_02: (12; 8; 20)

+ Đƣờng dẫn 3: 1,2,3,7

Đầu vào: D1 [0,10], D2<0, D3 là một số bất kỳ Đầu ra mong muốn: "Dữ liệu sai"

Mục đích: Kiểm tra điểm nhập vào có hợp lệ khơng.

TC_03: (3; -11; 85)

+ Đƣờng dẫn 4: 1,2,3,4,7

Đầu vào: D1 [0,10], D2>10, D3 là một số bất kỳ Đầu ra mong muốn: "Dữ liệu sai"

Mục đích: Kiểm tra điểm nhập vào có hợp lệ khơng.

+ Đƣờng dẫn 5: 1,2,3,4,5,7

Đầu vào: D1 [0,10], D2 [0,10], D3<0 Đầu ra mong muốn: "Dữ liệu sai"

Mục đích: Kiểm tra điểm nhập vào có hợp lệ khơng.

TC-05: (7; 4; -7)

+ Đƣờng dẫn 6: 1,2,3,4,5,6,7

Đầu vào: D1 [0,10], D2 [0,10], D3>100 Đầu ra mong muốn: "Dữ liệu sai"

Mục đích: Kiểm tra điểm nhập vào có hợp lệ khơng.

TC-06: (7; 4; 140)

+ Đƣờng dẫn 7: 1,2,3,4,5,6,8,9,10,11

Đầu vào: D1 [5,10], D2 [5,10], D3  [50,100] Đầu ra mong muốn: "Đỗ"

Mục đích: Kiểm tra kết quả có đỗ khơng

TC-07: (7; 8; 85)

+ Đƣờng dẫn 8: 1,2,3,4,5,6,8,12

Đầu vào: D1 [0,5), D2 [0,10], D3  [0,100] Đầu ra mong muốn: "Trƣợt"

Mục đích: Kiểm tra kết quả có thơng báo "Trƣợt" khơng.

TC-08: (3; 8; 85)

+ Đƣờng dẫn 9: 1,2,3,4,5,6,8,9,12

Đầu vào: D1 [5,10], D2 [0,5), D3  [0,100] Đầu ra mong muốn: "Trƣợt"

Mục đích: Kiểm tra kết quả có thơng báo "Trƣợt" khơng.

+ Đƣờng dẫn 10: 1,2,3,4,5,6,8,9,10,12

Đầu vào: D1 [5,10], D2 [5,10], D3  [0,50) Đầu ra mong muốn: "Trƣợt"

Mục đích: Kiểm tra kết quả có thơng báo "Trƣợt" khơng.

TC-10: (7; 8; 20)

Bảng 3.2: Kết quả kiểm thử theo phƣơng pháp kiểm thử luồng điều khiển trên đoạn mã chƣơng trình B

TC_ID

Dữ liệu vào

Đầu ra thực tế Đầu ra mong muốn

Kết quả

D1 D2 D3

TC_01 -10 4 85 Dữ liệu sai Dữ liệu sai Ok

TC_02 12 8 20 Dữ liệu sai Dữ liệu sai Ok

TC_03 3 -11 85 Dữ liệu sai Dữ liệu sai Ok

TC_04 7 15 20 Dữ liệu sai Dữ liệu sai Ok

TC_05 7 4 -7 Dữ liệu sai Dữ liệu sai Ok

TC_06 7 4 140 Dữ liệu sai Dữ liệu sai Ok

TC_07 7 8 85 Đỗ Đỗ Ok

TC_08 3 8 85 Trƣợt Trƣợt Ok

TC_09 7 4 85 Trƣợt Trƣợt Ok

TC_10 7 8 20 Trƣợt Trƣợt Ok

Với kết quả tại bảng trên chúng ta thấy có tất cả 10 ca kiểm thử, kết quả tất cả các ca kiểm thử đều Ok. Vậy đoạn mã chƣơng trình trên khơng phát hiện ra lỗi nào, ta có thể kết luận: Đoạn mã chƣơng trình trên chấp nhận đƣợc.

CHƯƠNG 4

KẾT LUẬN

Kiểm thử phần mềm là một hoạt động quan trọng nhằm đảm bảo chất lƣợng phần mềm. Luận văn đã tập trung nghiên cứu các phƣơng pháp kiểm thử phần mềm nhằm tìm ra bản chất tốn học của các phƣơng pháp này. Từ đó, chúng ta có những hiểu biết bản chất và khai thác tối đa khả năng phát hiện lỗi của các phƣơng pháp kiểm thử phần mềm. Luận văn đã đạt đƣợc các kết quả chính nhƣ sau.

Tìm hiểu các phƣơng pháp kiểm thử phần mềm và các hoạt động nhằm đảm bảo chất lƣợng phần mềm.

Nghiên cứu phƣơng pháp phân hoạch tƣơng đƣơng cho kiểm thử hộp đen. Tìm ra bản chất tốn học của phƣơng pháp này là dựa trên lý thuyết về quan hệ tƣơng đƣơng trên một tập hợp. Một phân hoạch tƣơng đƣơng cho phép chia một tập hợp thành các tập con sao cho các phần tử trong mỗi tập con thỏa mãn các tính chất: phản xạ, đối xứng và bắc cầu. Ứng dụng vào kiểm thử phần mềm, các tình chất này có nghĩa là các phần tử phản ứng nhƣ nhau với chƣơng trình. Vì vậy, thay vì kiểm thử trên nhiều giá trị của miền dữ liệu đầu vào, ta chỉ cần chọn ngẫu nhiên một phần tử của mỗi tập con. Một ví dụ minh họa cũng đã đƣợc trình bày nhằm chỉ ra tính hiệu quả của phƣơng pháp này.

Nghiên cứu phƣơng pháp kiểm thử luồng điều khiển cho kiểm thử hộp trắng (kiểm thử mã nguồn). Tìm ra bản chất toán học của phƣơng pháp này chính là lý thuyết đồ thị. Các luống điều khiển của chƣơng trình sẽ đƣợc biểu diễn tƣơng đƣơng với một đồ thị luồng điều khiển. Áp dụng lý thuyết đồ thị, chúng ta sẽ tìm ra các đƣờng đi từ điểm bắt đầu đến điểm kết thúc của chƣơng trình. Với cách làm này, tất cả các câu lệnh và các nhánh có thể của chƣơng

trình sẽ đƣợc kiểm thử ít nhất một lần. Nhờ vậy, các lỗi tiềm năng của chƣơng trình hứa hẹn sẽ đƣợc phát hiện. Một ví dụ áp dụng cũng đã đƣợc trình bày nhằm chỉ ra khả năng phát hiện lỗi của phƣơng pháp này.

Tuy nhiên, do thời gian có hạn nên luận văn mới dừng lại ở việc nghiên cứu hai phƣơng pháp trên. Trong thực tế, có hàng chục phƣơng pháp kiểm thử phần mềm. Trong thời gian tới, chúng tôi sẽ tập trung nghiên cứu các phƣơng pháp cịn lại để có cái nhìn đầy đủ hơn về vấn đề nghiên cứu.

TÀI LIỆU THAM KHẢO

Tiếng Việt

1. Đỗ Đức Giáo (2008), Toán Rời Rạc: Ứng Dụng Trong Tin Học, NXB Giáo dục. 2. Nguyễn Văn Vỵ, Nguyễn Việt Hà (2008), Giáo Trình Kỹ Nghệ Phần Mềm,

NXB Đại học Quốc gia Hà Nội.

3. Ngô Trung Việt (1997), Kỹ nghệ phần mềm (Sách dịch), Nhà xuất bản Giáo dục.

Tiếng Anh

4. Cem Kaner, Jack Falk, Hung Quoc Nguyen (1999), Testing Computer Software, John Wiley & Sons, Inc., p. 27- 141.

5. Ernest Wallmuller (1994), Software Qulity Assurance - A Practical Approach, Prentice Hall Internetional (UK) Ltd.

6. Ian Somerville (2011), Software Engineering, 9th Edition, Addison-Wesley Publishers Ltd, USA.

7. IEEE (1987), IEEE Std 1008-1987 – IEEE Standard for Software Unit Testing, The Institute of Electrical and Electronics Engineerings, Inc., USA.

8. IEEE (1998), IEEE Std 1012-1998 – IEEE Standard for Software Verification Testing, The Institute of Electrical and Electronics Engineerings, Inc., USA. 9. IEEE (1998), IEEE Std 829-1998(Revision of IEEE Std 829-1983) – IEEE

Standard for Software Test Documentation, The Institute of Electrical and Electronics Engineerings, Inc., USA

10. Sagar Naik (2008), Software Testing and Quality Assurance: Theory and Practice, JOHNWILEY & SONS.

11. Robert V. Binder (2000), Testing Object-Oriented Systems: Models, Patterns, and Tools, Addison Wesley Longman, Inc., pp. 175-532.

12. T. J. McCabe (1976), A Complexity Measure, IEEE Transactions on Software Engineering, pp. 308–320.

13. Roger S. Pressman (2001), Software Engineering: A Practitioner’s Approach, 5th edition, McGraw-Hill.

Một phần của tài liệu (LUẬN văn THẠC sĩ) cơ sở toán học cho các kỹ thuật kiểm thử phần mềm (Trang 42 - 49)