Nghiên cứu các kỹ thuật kiểm thử miền và cải tiến trong công nghệ thông tin

Luận văn thạc sĩ VNU UET nghiên cứu các kỹ thuật kiểm thử miền và cải tiến hiệu quả của các kỹ thuật này trong phát triển phần mềm.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2014

76
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

1. CHƯƠNG 1: LÝ THUYẾT VỀ KIỂM THỬ MIỀN

1.1. Khái quát kiểm thử đơn vị

1.2. Kiểm thử dòng điều khiển

1.3. Kiểm thử dòng dữ liệu

1.4. Kiểm thử miền

1.4.1. Khái niệm về lỗi miền

1.4.2. Xây dựng các miền kiểm thử từ chương trình

1.4.3. Các kiểu xuất hiện của lỗi miền

1.4.4. Xây dựng các điểm kiểm tra ON và OFF trong kiểm thử miền

1.4.5. Xây dựng các chiến lược lựa chọn ca kiểm thử

2. CHƯƠNG 2: CÁC KỸ THUẬT CẢI TIẾN KIỂM THỬ MIỀN

2.1. Cải tiến kỹ thuật lựa chọn điểm ON và OFF từ phương pháp cơ bản

2.2. Xây dựng chiến lược bổ sung cho kiểm thử miền

2.2.1. Phân tích lỗi tiềm ẩn của chiến lược kiểm thử miền Nx1

2.2.2. Chiến lược thay thế chiến lược kiểm tra miền Nx1

2.2.3. Đơn giản hóa kỹ thuật kiểm thử miền

3. CHƯƠNG 3: THỰC NGHIỆM KIỂM THỬ MIỀN

3.1. Mô tả bài toán

3.2. Xây dựng các ca kiểm thử với phương pháp kiểm thử miền

3.2.1. Xác định các miền từ mã nguồn chương trình

3.2.2. Xây dựng các ca kiểm thử cho từng miền

3.2.3. Ứng dụng các ca kiểm thử có được từ phương pháp kiểm thử miền để kiểm tra tính chính xác của phần mềm

3.2.3.1. Kiểm thử với mô-đun “Mô-đun xét trúng tuyển 01”
3.2.3.2. Kiểm thử với mô-đun “Mô-đun xét trúng tuyển 02”

3.3. Xây dựng các ca kiểm thử với phương pháp dòng điều khiển

3.4. Ứng dụng các ca kiểm thử có được từ phương pháp kiểm thử dòng điều khiển để kiểm tra tính chính xác của phần mềm

3.4.1. Kiểm thử với mô-đun “Mô-đun xét trúng tuyển 01”

3.4.2. Kiểm thử với mô-đun “Mô-đun xét trúng tuyển 02”

KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về nghiên cứu và cải tiến kỹ thuật kiểm thử miền

Nghiên cứu và cải tiến kỹ thuật kiểm thử miền trong công nghệ thông tin là một lĩnh vực quan trọng nhằm nâng cao chất lượng phần mềm. Kiểm thử miền giúp phát hiện lỗi trong các chương trình phức tạp, từ đó cải thiện độ tin cậy và hiệu suất của phần mềm. Việc áp dụng các kỹ thuật kiểm thử miền không chỉ giúp phát hiện lỗi mà còn tối ưu hóa quy trình phát triển phần mềm.

1.1. Khái niệm về kiểm thử miền và vai trò của nó

Kiểm thử miền là một phương pháp kiểm thử phần mềm nhằm xác định các lỗi trong miền giá trị của biến. Nó giúp phân chia miền thành các tập con, từ đó dễ dàng phát hiện lỗi. Kiểm thử miền đóng vai trò quan trọng trong việc đảm bảo chất lượng phần mềm, đặc biệt trong các ứng dụng phức tạp.

1.2. Lịch sử phát triển của kỹ thuật kiểm thử miền

Kỹ thuật kiểm thử miền được đề xuất lần đầu bởi White và Cohen vào năm 1978. Kể từ đó, nhiều nghiên cứu đã mở rộng và cải tiến phương pháp này, giúp nâng cao hiệu quả kiểm thử và phát hiện lỗi.

II. Các thách thức trong kiểm thử miền và giải pháp cải tiến

Mặc dù kiểm thử miền mang lại nhiều lợi ích, nhưng vẫn tồn tại nhiều thách thức trong quá trình thực hiện. Các vấn đề như kích thước miền quá lớn, sự phức tạp của mã nguồn và thiếu hụt tài nguyên kiểm thử là những yếu tố cần được giải quyết. Việc cải tiến quy trình kiểm thử miền là cần thiết để nâng cao hiệu quả.

2.1. Những thách thức chính trong kiểm thử miền

Một trong những thách thức lớn nhất là kích thước miền đầu vào có thể quá lớn, dẫn đến việc không thể kiểm thử toàn bộ. Ngoài ra, sự phức tạp của mã nguồn và các yếu tố bên ngoài như giao diện người dùng cũng gây khó khăn trong việc phát hiện lỗi.

2.2. Giải pháp cải tiến quy trình kiểm thử miền

Để cải tiến quy trình kiểm thử miền, cần áp dụng các kỹ thuật phân tích lỗi và xây dựng chiến lược kiểm thử hiệu quả. Việc sử dụng các công cụ tự động hóa cũng giúp giảm thiểu thời gian và chi phí kiểm thử.

III. Phương pháp kiểm thử miền hiệu quả và ứng dụng thực tiễn

Các phương pháp kiểm thử miền hiện nay đã được cải tiến đáng kể, giúp nâng cao hiệu quả phát hiện lỗi. Việc áp dụng các phương pháp này trong thực tiễn đã cho thấy kết quả tích cực trong việc nâng cao chất lượng phần mềm.

3.1. Các phương pháp kiểm thử miền phổ biến

Các phương pháp kiểm thử miền phổ biến bao gồm kiểm thử dòng điều khiển, kiểm thử dòng dữ liệu và kiểm thử miền. Mỗi phương pháp có những ưu điểm và nhược điểm riêng, phù hợp với từng loại ứng dụng.

3.2. Ứng dụng thực tiễn của kiểm thử miền

Kiểm thử miền đã được áp dụng thành công trong nhiều dự án phần mềm lớn, giúp phát hiện và khắc phục lỗi trước khi sản phẩm được phát hành. Điều này không chỉ tiết kiệm chi phí mà còn nâng cao sự hài lòng của khách hàng.

IV. Kết quả nghiên cứu và định hướng tương lai trong kiểm thử miền

Kết quả nghiên cứu cho thấy việc cải tiến kỹ thuật kiểm thử miền có thể giúp nâng cao chất lượng phần mềm một cách đáng kể. Định hướng tương lai sẽ tập trung vào việc phát triển các công cụ và phương pháp mới nhằm tối ưu hóa quy trình kiểm thử.

4.1. Kết quả đạt được từ nghiên cứu

Nghiên cứu đã chỉ ra rằng việc áp dụng các kỹ thuật kiểm thử miền giúp phát hiện lỗi hiệu quả hơn so với các phương pháp truyền thống. Điều này đã được chứng minh qua các thử nghiệm thực tế.

4.2. Định hướng phát triển trong tương lai

Trong tương lai, cần tiếp tục nghiên cứu và phát triển các kỹ thuật mới trong kiểm thử miền, đồng thời kết hợp với công nghệ tự động hóa để nâng cao hiệu quả và giảm thiểu chi phí kiểm thử.

V. Kết luận về nghiên cứu và cải tiến kỹ thuật kiểm thử miền

Nghiên cứu và cải tiến kỹ thuật kiểm thử miền là một lĩnh vực quan trọng trong công nghệ thông tin. Việc áp dụng các phương pháp kiểm thử hiệu quả không chỉ giúp phát hiện lỗi mà còn nâng cao chất lượng phần mềm. Tương lai của kiểm thử miền hứa hẹn sẽ có nhiều tiến bộ và cải tiến.

5.1. Tóm tắt những điểm chính trong nghiên cứu

Nghiên cứu đã chỉ ra rằng kiểm thử miền là một phương pháp hiệu quả trong việc phát hiện lỗi. Các kỹ thuật cải tiến đã được đề xuất nhằm nâng cao hiệu quả kiểm thử.

5.2. Tương lai của kiểm thử miền trong công nghệ thông tin

Tương lai của kiểm thử miền sẽ tiếp tục phát triển với sự hỗ trợ của công nghệ mới, giúp nâng cao chất lượng phần mềm và đáp ứng nhu cầu ngày càng cao của thị trường.

22/07/2025
Luận văn thạc sĩ vnu uet tìm hiểu nghiên cứu các kỹ thuật cho kiểm thử miền và cải tiến các kỹ thuật đó

Trích đoạn nội dung tài liệu

đặt vấn đề, đƣa ra mục tiêu và các kết quả mong muốn cần đạt đƣợc sau quá trình nghiên cứu. - Chƣơng 1: Lý thuyết về kiểm thử miền: giới thiệu tổng quan về kiểm thử đơn vị và tóm tắt ba phƣơng pháp kiểm thử đơn vị động. Nghiên cứu về các lý thuyết kiểm thử miền cơ bản. - Chƣơng 2: Các kỹ thuật cải tiến kiểm thử miền: nghiên cứu các cải tiến cho kiểm thử miền nhằm nâng cao chất lƣợng của các ca kiểm thử cũng nhƣ đơn giản hóa việc kiểm thử miền trong các trƣờng hợp phát sinh phức tạp.

- Chƣơng 3: Thực nghiệm kiểm thử miền: xây dựng ví dụ áp dụng các kỹ thuật đã nghiên cứu về kiểm thử miền, và chứng minh thực nghiệm về hiệu quả của các ca kiểm thử. - Kết luận và định hƣớng: Tổng kết lại nội dung đã nghiên cứu. Đƣa ra hƣớng phát triển trong tƣơng lai. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 15 Chƣơng 1.

LÝ THUYẾT VỀ KIỂM THỬ MIỀN 1.1 Khái quát kiểm thử đơn vị Kiểm thử đơn vị [1] là việc kiểm thử các đơn vị của chƣơng trình một cách độc lập. Trong đó một đơn vị chƣơng trình thƣờng là một đoạn mã nguồn có thể là hàm hoặc phƣơng thức của một lớp nào đó, có thể đƣợc gọi từ ngoài, và cũng có thể gọi đến các đơn vị chƣơng trình khác. Mỗi đơn vị chƣơng trình cần đƣợc kiểm thử riêng biệt để phát hiện lỗi trong bên trong nó và khắc phục trƣớc khi đƣợc tích hợp với các đơn vị khác. Kiểm thử đơn vị thƣờng đƣợc làm bởi chính tác giả của chƣơng trình.

Hai kỹ thuật kiểm thử phổ biến nhất đang đƣợc áp dụng cho kiểm thử đơn vị hiện nay trong nƣớc là kiểm thử dòng điều khiển và kiểm thử dòng dữ liệu. Cả hai kỹ thuật này đều đƣợc tiến hành theo phƣơng pháp kiểm thử hộp trắng. Chúng sử dụng các chiến lƣợc cụ thể và mã nguồn để kiểm tra xem từng đơn vị phần mềm có thực hiện đúng so với thiết kế và đặc tả hay không. Trong khi các phƣơng pháp kiểm thử hộp đen hay kiểm thử hàm/chức năng chỉ cho phép phát hiện các lỗi/khiếm khuyết có thể quan sát đƣợc, kiểm thử hộp trắng cho phép phát hiện các lỗi/khiếm khuyết tiềm ẩn bên trong từng đơn vị chƣơng trình.

Để áp dụng các phƣơng pháp kiểm thử hộp trắng, ngƣời kiểm thử đòi hỏi cần phải hiểu rõ giải thuật và cần có các kỹ năng, kiến thức tốt về ngôn ngữ lập trình đƣợc dùng để phát triển phần mềm mới có thể hiểu rõ mã nguồn của chƣơng trình đƣợc kiểm thử.1 Kiểm thử dòng điều khiển Theo [1] thì Phƣơng pháp kiểm thử dòng điều khiển xây dựng dựa trên khái niệm đồ thị dòng điều khiển (control flow graph). Trong đó đồ thị dòng điều khiển đƣợc xây dựng từ mã nguồn của chƣơng trình. Đồ thị dòng điều khiển là một đồ thị có hƣớng bao gồm các đỉnh đồ thị tƣơng ứng với các câu lệnh/nhóm câu lệnh và các cạnh chính là các dòng điều khiển giữa các câu lệnh/nhóm câu lệnh. Ta giả sử nếu i và j là các đỉnh của đồ thị dòng điều khiển thì khi đó sẽ tồn tại một cạnh từ i đến j nếu lệnh tƣơng ứng với j có thể đƣợc thực hiện ngay sau lệnh tƣơng ứng với i.1 mô tả các thành phần cơ bản của đồ thị dòng điều khiển bao gồm Điểm xuất phát của đơn vị chƣơng trình, Khối xử lý (chứa các câu lệnh khai báo hoặc tính toán), Điểm quyết định (ứng với các câu lệnh điều kiện trong các khối lệnh rẽ nhánh hoặc lặp), Điểm nối (ứng với các câu lệnh ngay sau các lệnh rẽ nhánh), và Điểm kết thúc (ứng với điểm kết thúc của đơn vị chƣơng trình).

LUAN VAN CHAT LUONG download : add luanvanchat@agmail.1: Các thành phần cơ bản của đồ thị chương trình.2 mô tả các cấu trúc điều khiển phổ biến của chƣơng trình. Chúng ta sẽ sử dụng các thành phần cơ bản và các cấu trúc phổ biến này để dễ dàng xây dựng đồ thị dòng điều khiển cho mọi đơn vị chƣơng trình viết bằng mọi ngôn ngữ lập trình.2: Các cấu trúc điều khiển phổ biến của chương trình.2 Kiểm thử dòng điều khiển cho phép phát hiện ra các lỗi tiềm ẩn trong chƣơng trình bằng cách kiểm thử các đƣờng đi của chƣơng trình tƣơng ứng với các dòng điều khiển có thể có. Kỹ thuật kiểm thử dòng điều khiển đƣợc phân cấp ra thành các độ đo khác nhau từ đơn giản đến phức tạp tƣơng ứng với các đồ thị cụ thể. Từ đồ thị thu đƣợc sẽ sinh ra các đƣờng đi của chƣơng trình.

Thông qua mỗi đƣờng đi sẽ sinh ra một ca kiểm thử đáp ứng đƣờng đi đó. Ngƣời kiểm thử cần phải chọn một bộ đầu vào thỏa mãn các điểm quyết định có trong đƣờng đi tƣơng ứng của đồ thị. Giá trị đầu ra mong muốn ứng với mỗi bộ đầu vào của mỗi ca kiểm thử cũng đƣợc tính toán. Việc này thƣờng đòi hỏi ngƣời thực hiện phải có kỹ năng phân tích chƣơng trình mới thực hiện đƣợc.

Khi một lỗi đƣợc phát hiện bởi một ca kiểm thử nào đó, nó sẽ đƣợc thông báo tới lập trình viên để tiến hành sửa lỗi đã phát hiện. Các độ đo kiểm thử: - Độ đo kiểm thử cấp 1 (C1): mỗi câu lệnh đƣợc thực hiện ít nhất một lần sau khi chạy các ca kiểm thử. 1 Nguồn: [1] 2 Nguồn: [1] LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 17 - Độ đo kiểm thử cấp 2 (C2): các điểm quyết định trong đồ thị dòng điều khiển của đơn vị kiểm thử đều đƣợc thực hiện ít nhất một lần cả hai nhánh đúng và sai. - Độ đo kiểm thử cấp 3 (C3): các điều kiện con thuộc các điều kiện phức tạp tƣơng ứng với các điểm quyết định trong đồ thị dòng điều khiển của đơn vị cần kiểm thử đều đƣợc thực hiện ít nhất một lần cả hai nhánh đúng và sai *) Ví dụ 01: Xây dựng hàm cho nhập vào một mảng n phần tử, tính trung bình cộng các phần tử là số lẻ trong mảng nhỏ hơn 100 và trả lại kết quả cho giá trị hàm.1: Hàm tính trung bình cộng cho các số lẻ < 100 public double AVG_Sole(int[] s) { double sum = 0; int dem = 0; int i=0; while(i<s.Length){ if (s[i] % 2 != 0 && s[i]<100) { sum += s[i]; dem++; } i++; } return sum / dem; } Ta xây dựng đƣợc sơ đồ dòng điều khiển ứng với độ đo cấp 3 nhƣ Hình 1.

Các trạng thái: 1,2,3,4,5,6,7,3,8 1,2,3,4,5,7,3,8 1,2,3,4,7,3,8 1,2,3,8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.3: Ví dụ về biểu đồ cho kiểm thử dòng kiều khiển Từ danh sách các trạng thái ta xác định đƣợc các ca kiểm thử nhƣ trong Bảng 1.2: Danh sách các ca kiểm thử cho ví dụ về kiểm thử dòng điều khiển Ca kiểm thử Kết quả dự kiến Error { 5, 7, 8,1, 9,105,4} 5,5 { 2,4,6 } … Lỗi chia cho 0 tại vị trí 8 {} … Lỗi chia cho 0 tại vị trí 8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 19 Việc áp dụng phƣơng pháp kiểm thử dòng điều khiển là khó và tốn kém hơn các phƣơng pháp kiểm thử hộp đen khác (phân hoạch tƣơng đƣơng, phân tích giá trị biên, bảng quyết định,. Để áp dụng kỹ thuât này cần đội ngũ nhân lực về kiểm thử có kiến thức, kỹ năng tốt. Ngoài ra cần chi phí lớn đầu tƣ cho các nguồn lực khác (tài chính, thời gian, .) mới có thể thực hiện tốt phƣơng pháp này. Đây cũng có thể coi là yêu cầu chung đối với các phƣơng pháp kiểm thử hộp trắng.2 Kiểm thử dòng dữ liệu Kỹ thuật kiểm thử dòng dữ liệu xem đơn vị chƣơng trình gồm các đƣờng đi tƣơng ứng với các dòng dữ liệu, nơi mà các biến đƣợc khai báo, đƣợc gán giá trị, đƣợc sử dụng để tính toán và trả lại kết quả mong muốn của đơn vị chƣơng trình ứng với đƣờng đi này.

Với mỗi đƣờng đi, ngƣời kiểm thử sẽ sinh một ca kiểm thử để kiểm tra tính đúng đắn của nó. Với kiểm thử dòng dữ liệu tĩnh, chúng ta áp dụng các phƣơng pháp phân tích mã nguồn mà không cần chạy chƣơng trình nhằm phát hiện các vấn đề về khai báo, khởi tạo giá trị cho các biến và sử dụng chúng. Còn trong trƣờng hợp với kiểm thử với dòng dữ liệu động, chúng ta sẽ phải chạy các ca kiểm thử để nhằm phát hiện các lỗi tiềm ẩn mà kiểm thử tĩnh không phát hiện đƣợc. Tuy nhiên kiểm thử dòng dữ liệu tĩnh thƣờng không hiệu quả vì nó không đảm bảo việc phát hiện tất cả các lỗi liên quan đến việc khởi tạo, gán giá trị mới và sử dụng các biến (trong các câu lệnh tính toán và các biểu thức điều kiện nhƣ trong các lệnh rẽ nhánh và lặp).

Nên nó chỉ đƣợc xem nhƣ một bƣớc tiền xử lý mã nguồn trƣớc khi áp dụng phƣơng pháp kiểm thử dòng dữ liệu động. Do đó ta sẽ chỉ tìm hiểu qua về kiểm thử dòng dữ liệu động trong phạm vị của luận văn. Định nghĩa về đồ thị dòng dữ liệu từ tài liệu [1]: "Đồ thị dòng dữ liệu của một chương trình/đơn vị chương trình là một đồ thị có hướng G = <N, E>, với: - N là tập các đỉnh tương ứng với các câu lệnh def hoặc c-use của các biến được sử dụng trong đơn vị chương trình. Đồ thị G có hai đỉnh đặc biệt là đỉnh bắt đầu (tương ứng với lệnh def của các biến tham số) và đỉnh kết thúc đơn vị chương trình.

- E là tập các cạnh tương ứng với các câu lệnh p-use của các biến." Trong đó def (định nghĩa của một biến) là ký hiểu của một câu lệnh thực hiện việc gán giá trị cho một biến và đƣợc gọi là câu lệnh định nghĩa của biến đó; c-use (biến LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 20 được sử dụng để tính toán) là ký hiệu của một câu lệnh sử dụng một biến để tính toán giá trị của một biến khác; p-use (biến được sử dụng để kiểm tra các điều kiện): một câu lệnh sử dụng một biến trong các biểu thức điều kiện (câu lệnh rẽ nhánh, lặp,.) đƣợc gọi là p-use với biến đó. Sau khi xây dựng đồ thị dòng dữ liệu của chƣơng trình, chúng ta cần xác định các đƣờng đi của chƣơng trình của mỗi biến dữ liệu ứng với các độ đo kiểm thử (all-defs, all-c-uses, all-p-uses, all-p-uses/some-c-uses. Trong mỗi đƣờng dẫn này, biến dữ liệu đƣợc định nghĩa tại một đỉnh nào đó và đƣợc sử dụng tại các câu lệnh tiếp theo ứng với các đỉnh hoặc các cạnh của đƣờng đi này.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ