1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm

20 236 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 701,64 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tập trung nghiên cứu cơ sở toán học của phương pháp phân hoạch tương đương một kỹ thuật kiểm thử hộp đen và phương pháp kiểm thử luồng điều khiển một kỹ thuật kiểm thử hộp trắng.. Phươn

Trang 1

Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm

Dương Thị Phượng

Trường Đại học Khoa học Tự nhiên Luận văn ThS chuyên ngành: Bảo đảm toán cho máy tính và hệ thống tính toán

Mã số: 60 46 35 Người hướng dẫn: TS Phạm Ngọc Hùng

Năm bảo vệ: 2012

Abstract: Tìm hiểu các kỹ thuật kiểm thử nhằm đảm bảo chất lượng phần mềm Tập

trung nghiên cứu cơ sở toán học của phương pháp phân hoạch tương đương (một kỹ thuật kiểm thử hộp đen) và phương pháp kiểm thử luồng điều khiển (một kỹ thuật kiểm thử

hộp trắng) Áp dụng các kỹ thuật trên nhằm kiểm thử một số chương trình đơn giản Keywords: Hệ thống tính toán; Kiểm thử phần mềm; Cơ sở toán học

Content

MỞ ĐẦU

1.1 Đặt vấn đề

Việc phát triển phần mềm ngày càng được hỗ trợ bởi nhiều công cụ tiên tiến giúp cho việc xây dựng phần mềm hiệu quả hơn, với chất lượng tốt hơn Tuy nhiên, vì độ phức tạp của phần mềm và những giới hạn về thời gian và chi phí, cho dù các hoạt động đảm bảo chất lượng phần mềm nói chung và kiểm thử phần mềm nói riêng ngày càng chặt chẽ và khoa học, chung ta vẫn rất khó khăn trong việc đảm bảo tính đúng đắn của các sản phẩm phần mềm Lỗi vẫn luôn tiềm

ẩn trong mọi sản phẩm phần mềm và cũng có thể gây những thiệt hại khôn lường khi triển khai chúng trong thực tế [13]

1.2 Nội dung nghiên cứu

Nhằm tìm hiểu cơ sở toán học của các phương pháp kiểm thử, luận văn tập trung nghiên cứu các nội dung chính như sau

Tìm hiểu các kỹ thuật kiểm thử nhằm đảm bảo chất lượng phần mềm

Trang 2

Tập trung nghiên cứu cơ sở toán học của phương pháp phân hoạch tương đương (một kỹ thuật kiểm thử hộp đen) và phương pháp kiểm thử luồng điều khiển (một kỹ thuật kiểm thử hộp trắng)

Áp dụng các kỹ thuật trên nhằm kiểm thử một số chương trình đơn giản

1.3 Cấu trúc luận văn

Chương 1 giới thiệu tổng quan về kiểm trử phần mềm gồm khái niệm về phần mềm, lý do kiểm thử phần mềm Phương pháp phân hoạch (quy hoạch) toán học và ứng dụng của phân hoạch tương đương vào kiểm thử hộp đen (kiểm thử dựa theo đặc tả không quan tâm tới mã nguồn) Chương 2 Chương 3 mô tả về đồ thị lưu trình trong lý thuyết đồ thị và ứng dụng vào kiểm thử luồng điều khiển chương trình trong kiểm thử hộp trắng cùng ví dụ áp dụng Cuối cùng, Chương 4 kết luận của luận văn và hướng nghiên cứu tiếp theo

CHƯƠNG 1

TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

1.1 Các khái niệm cơ bản về kiểm thử phần mềm

Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khía cạnh nào đó của hệ thống hay thành phần đó [5]

Kiểm thử phần mềm là một tiến trình hay một tập hợp các tiến trình được thiết kế để đảm bảo mã hóa máy tính thực hiện theo cái mà chúng đã được thiết kế để làm, và không thực hiện bất cứ thứ gì không mong muốn Đây là một pha quan trọng trong quá trình phát triển hệ thống, giúp cho người xây dựng hệ thống và khách hàng thấy được hệ thống mới đã đáp ứng yêu cầu đặt ra hay chưa

1.1.1 Lý do kiểm thử phần mềm

Lý do của việc kiểm thử để từ đó thấy được ý nghĩa của việc xây dựng ca kiểm thử hiệu quả Có một số lý do chính của hoạt động kiểm thử phần mềm như sau Lý do thứ nhất, về khía cạnh xem xét sản phẩm, người phát triển muốn kiểm tra phần mềm như một phần tử của hệ thống hoạt động thì cần phải thực hiện thông qua hoạt động kiểm thử phẩn mềm Lý do quan

Trang 3

trọng thứ hai là khi thực hiện tốt hoạt động kiểm thử, chúng ta sẽ hạn chế được chi phí cho các thất bại do lỗi gây ra sau này

1.1.2 Vai trò của kiểm thử phần mềm

Thực tế đã chứng minh hoạt động kiểm thử có vai trò vô cùng quan trọng trong tiến trình phát triển phần mềm Vai trò đó được thể hiện qua chi phí và hiệu quả của hoạt động kiểm thử mang lại Về mặt chi phí, hoạt động kiểm thử chiếm khoảng 40% tổng công sức phát triển phần mềm và chiếm tới hơn 30% tổng thời gian phát triển Ngoài ra với các phần mềm có ảnh hưởng tới sinh mạng thì chi phí kiểm thử có thể gấp từ 3 đến 5 lần tổng các chi phí khác cộng lại [4]

1.1.3 Mục đích của kiểm thử phần mềm

Là thiết kế được những trường hợp kiểm thử để có thể phát hiện một cách có hệ thống những loại lỗi khác nhau và thực hiện công việc đó với lượng thời gian và tài nguyên tối ưu nhất Tuy nhiên kiểm thử phần mềm không thể khẳng định rằng phần mềm không còn khiếm khuyết Như vậy ta có thể kết luận, mục tiêu đầu tiên và trước mắt của hoạt động kiểm thử phần mềm là tạo ra các ca kiểm thử để tìm ra lỗi của phần mềm Mục tiêu cuối cùng và cũng là mục tiêu mà người phát triển hướng tới là kiểm thử phần mềm sẽ giúp cho người phát triển có một chương trình tốt, chi phí thấp nhưng vẫn đảm bảo được chất lượng phần mềm trước khi bàn giao sản phẩm Quy trình kiểm thử phần mềm

- Xử lý đo lường kiểm thử bằng cách thu thập dữ liệu Ở đây, người kiểm thử không thể trực tiếp cải tiến chương trình mà họ chỉ có thể đánh giá nó

- Đánh giá sản phẩm phần mềm để xác nhận sản phẩm có thể sẵn sàng phát hà nh được chưa? Đưa ra báo cáo kiểm thử để hoàn thành quá trình kiểm thử

CHƯƠNG 2

PHƯƠNG PHÁP PHÂN HOẠCH TRONG KIỂM THỬ HỘP ĐEN

2.1 Phương pháp kiểm thử dựa trên phân hoạch tương đương

Theo lý thuyết tập hợp và logic của tác giả Hoàng Xuân Sính - NXB Giáo dục – 1999, phương pháp phân hoạch tương đương được định nghĩa:

Quan hệ  trên hai tập A và B là một tập con của tích đề các A  B, nghĩa là a b trong

đó a A và b  B

Trang 4

Quan hệ có thể được định nghĩa trên chính tập A, tức là khi B = A

Quan hệ trên tập A gọi là phản xạ nếu a a với aA Quan hệ trên tập A gọi là đối xứng nếu a b  b a với a, bA Quan hệ trên tập A gọi là bắc cầu nếu a b và b c  a c với a,b,c  A Một quan hệ có tính phản xạ, đối xứng và bắc cầu gọi là quan hệ tương đương Chẳng hạn quan hệ “=” trên tập N (số nguyên) là quan hệ tương đương nhưng quan hệ “>” trên tập N thì không phải

Một quan hệ tương đương phân hoạch tập hợp thành các lớp tương đương rời rạc Chẳng hạn quan hệ =(a,b): a, b  N, a+b là số chẵn có hai phân hoạch {0, 2, 4, …}

và {1, 3, 5, …}

Các lớp tương đương được nhận dạng bằng cách lấy mỗi điều kiện đầu vào (thông thường

là một câu lệnh hoặc một cụm từ trong đặc tả) và phân hoạch nó thành hai hoặc nhiều nhóm Các lớp tương đương biểu diễn một tập các trạng thái hợp lệ hoặc không hợp lệ cho điều kiện đầu vào Điều kiện đầu vào là giá trị số xác định, hoặc miền giá trị, tập giá trị có liên quan, hoặc điều kiện logic Để làm điều này, chúng ta sử dụng bảng liệt kê các lớp tương đương

Bảng 2.1 - Mẫu bảng liệt kê các lớp tương đương

Điều kiện vào/ra Các lớp tương đương

hợp lệ

Các lớp tương đương không hợp lệ

Ví dụ 1: Sinh các ca kiểm thử cho một chương trình thống kê danh sách kết quả các thí

sinh thi cao học gồm:

- Dữ liệu đầu vào là 3 đầu điểm:

+ D1 - điểm môn 1;

+ D2 - điểm môn 2;

+ D3 - điểm môn 3

- Kết quả trả về chia thành 3 dạng: "Dữ liệu sai"; "Đỗ"; "Trượt"

Trong đó: D1, D2  [0, 10]; D3  [0, 100]

- Kết quả trả về mong muốn:

 "Dữ liệu sai" nếu: D1, D2  [0, 10]; D3  [0, 100]

 "Đỗ" nếu: D1, D2  [5, 10]; D3  [50, 100]

 "Trượt" nếu: D1, D2  [0, 5); D3  [0, 50)

Trang 5

Bảng 2.2 Bảng liệt kê các lớp tương đương cho bài toán điểm thi cao học

Điều kiện vào/ra Các lớp tương đương hợp lệ Các lớp tương đương không

hợp lệ

Điểm môn 1 (D1) 0 ≤ D1< 5 ; 5≤ D1≤ 10 D1 < 0 ; D1 >10

Điểm môn 2 (D2) 0 ≤ D2< 5 ; 5≤ D2≤ 10 D1 < 0 ; D1 >10

Điểm môn 3 (D3) 0 ≤ D1< 50 ; 50≤ D1≤ 100 D1 < 0 ; D1 >100

Giả sử mỗi phân hoạch (lớp tương đương hợp lệ và không hợp lệ) ta lấy 01 giá trị bất kỳ theo hình 2.3

D1

D2

D3

Trang 6

Hình 2.3 - Chọn giá trị tại mỗi lớp tương đương

cho bài toán điểm thi cao học 2.1.1 Phân lớp tương đương mạnh

Với phương pháp này, sau khi phân hoạch miền giá trị của các biến đầu vào thành các lớp tương đương thì việc sinh các trường hợp kiểm thử thực hiện theo nguyên tắc mỗi ca kiểm thử là một phần tử của tích đề các của các phân hoạch con đó Do đó số lượng ca kiểm thử sinh ra chính là số phần tử của tích đề các các phân hoạch

Bảng 2.3 Danh sách ca kiểm thử được sinh theo phân lớp tương đương mạnh

Đầu ra mong muốn

Ở trường hợp phân lớp tương đương mạnh sẽ gần như bắt lỗi được tất cả các trường hợp và đầu ra thực tế đúng như đầu ra mong muốn, tuy nhiên số lượt các ca kiểm thử tương đối nhiều

Trang 7

2.1.2 Phân lớp tương đương yếu

Phân lớp tương đương yếu là một phương pháp hay được sử dụng khi lựa chọn phân lớp tương đương Phương pháp này vẫn dựa trên nguyên tắc chung của phân lớp tương đương, tức là chúng ta cũng chia miền dữ liệu của các biến đầu vào thành các lớp con tương đương Việc sinh các trường hợp kiểm thử trong phân lớp tương đương yếu phải đảm bảo mỗi lớp con được kiểm tra ít nhất một lần Theo nguyên tắc của phân lớp tương đương yếu, ở ví dụ 1 chúng ta xây dựng được 04 ca kiểm thử được biểu diễn trong bảng 2.4 dưới đây

Bảng 2.4 Danh sách các ca kiểm thử sinh ra theo phân lớp tương đương yếu

TC_ID Đầu vào (Input)

Đầu ra mong muốn

Ở trường hợp phân lớp tương đương yếu bắt được các lỗi của chương trình và trả về đầu ra đúng như đầu ra mong muốn, số lượt các ca kiểm thử ít, tuy nhiên chúng ta không thể khẳng định rằng đã bắt hầu hết các lỗi chưa Chính vì vậy phương pháp này gần như không dùng

2.1.3 Phân lớp tương đương truyền thống

Phân lớp tương đương truyền thống là phương pháp đơn giản nhất trong các kỹ thuật kiểm thử theo phân lớp tương đương Khi chúng ta xây dựng ca kiểm thử cho trường hợp đúng thì chỉ cần lấy các giá trị biến đầu vào nằm trong miền hợp lệ Tức là ca kiểm thử sinh ra với điều kiện giá trị đầu vào của tất cả các biến đều nằm trong miền hợp lệ Khi tạo ca kiểm thử cho trường hợp sai thì chỉ cần lấy một trong các biến đầu vào có giá trị không nằm trong miền hợp lệ Số lượng ca kiểm thử theo phân lớp tương đương truyền thống = số lượng ca kiểm thử theo phân lớp tương đương mạnh - số lượng ca kiểm thử có trên 2 đầu vào sai và bằng những ca kiểm thử

có dưới một đầu vào sai

Với "Ví dụ 1" ta sẽ sinh ra được 28 ca kiểm thử được biểu diễn trong bảng 2.5 dưới đây

Bảng 2.5 Danh sách các ca kiểm thử sinh ra theo phân lớp tương đương truyền thống

TC_ID Đầu vào (Input) Đầu ra mong muốn

Trang 8

D1 D2 D3

Đối với phân lớp tương đương truyền thống khả năng phát hiện lỗi tương đương với phân lớp tương đương mạnh, song số lượng các ca kiểm thử trong phân lớp tương đương truyền thống

ít hơn rất nhiều so với số lượng các ca kiểm thử trong phân lớp tương đương mạnh Người kiểm thử nên chọn phương pháp này

2.2 Ứng dụng

Trang 9

Với ví dụ 1 như đã nêu ở mục 2.1, tôi xây dựng một chương trình thực tế chạy thử qua tất

cả các ca kiểm thử đã được sinh ra ở cả ba phương pháp: phương pháp phân lớp tương đương mạnh, phương pháp phân lớp tương đương yếu, phương pháp phân lớp tương đương truyền thống đã trình bày ở trên nhằm kiểm tra việc bắt lỗi chương trình

Khảo sát "Chương trình nhập điểm thi cao học" được viết trên ngôn ngữ Visual Studio

2.2.1 Kiểm thử chương trình nhập điểm thi cao học

2.2.1.1 Phương pháp phân lớp tương đương mạnh

Ta có kết quả sau khi chạy qua tất cả các ca kiểm thử được sinh ra theo phương pháp phân lớp tương đương mạnh: đầu ra thực tế đã không đúng với đầu ra mong muốn là 4 trường hợp NOT OK (Bảng 2.6) Như vậy kiểm thử viên có thể khẳng định rằng chương trình "Nhập điểm thi cao học" có lỗi

Bảng 2.6 Kết quả kiểm thử với trường hợp phân lớp tương đương mạnh

TC_ID Dữ liệu vào Đầu ra thực tế Đầu ra mong

Trang 10

2.2.1.2 Phương pháp phân lớp tương đương yếu

Bảng 2.7 Kết quả kiểm thử với trường hợp phân lớp tương đương yếu

TC_ID

Dữ liệu vào

Đầu ra thực tế

Đầu ra mong

Sau khi chạy qua tất cả các ca kiểm thử thì đầu ra thực tế hoàn toàn đúng với đầu ra mong muốn (Bảng 2.7) Ta thấy rằng phương pháp phân lớp tương đương yếu không phát hiện ra lỗi nào trong khi phương pháp phân lớp tương đương mạnh phát hiện ra bốn lỗi Vậy kiểm thử viên không nên sử dụng phương pháp này

2.2.1.3 Phương pháp phân lớp tương đương truyền thống

Ta có bảng kết quả chạy các ca kiểm thử đối với phương pháp phân lớp tương đương truyền thống

Sau khi chạy qua tất cả các ca kiểm thử thì đầu ra thực tế không hoàn toàn đúng với đầu ra mong muốn Phương pháp này bắt được 04 lỗi (Not ok) tương đương với phương pháp tương đương mạnh Người kiểm thử viên có thể khẳng định rằng chương trình "Nhập điểm thi cao học"

có lỗi và lỗi tại ca kiểm thử số TC_07, TC_09, TC_16, TC_19 đồng thời gửi phản hồi cho lập trình viên

2.2.2 Kiểm thử chương trình sau khi lập trình viên đã sửa lỗi

Sử dụng 3 phương pháp phân lớp đã kiểm thử trên để kiểm thử lại chương trình thì kiểm thử viên không phát hiện ra lỗi nào, toàn bộ các ca kiểm thử ở cả ba phương pháp đều có kết quả

là OK Vậy kiểm thử viên có thể khẳng định rằng chương trình "Nhập điểm thi cao học" không

có lỗi và đúng với bộ kiểm thử này

Bảng 2.9 Bảng kết quả chạy thực tế với đoạn mã chương trình B

Trang 11

Tuy nhiên đây là phần khảo sát của tôi trong luận văn này, thực tế kiểm thử viên chỉ cần kiểm thử lại chương trình trên một phương pháp phân lớp tương đương truyền thống

CHƯƠNG 3

CƠ SỞ TOÁN HỌC TRONG KIỂM THỬ HỘP TRẮNG

2.2 Ứng dụng đồ thị lưu trình trong lý thuyết đồ thị vào kiểm thử luồng điều khiển

Một đồ thị có hướng G(N, E) được định nghĩa như sau [1]:

Tập hợp N  được gọi là tập các đỉnh của đồ thị;

Tập hợp E là tập các cạnh có hướng của đồ thị hay cung của G ; mỗi cạnh eE là cặp sắp thứ tự (u,v) của 2 đỉnh, đỉnh u (đứng trước) gọi là gốc của cung, đỉnh v đứng sau gọi là ngọn của cung Cung (u,v) kí hiệu là uv

Đồ thị có hướng các cung (các cạnh có hướng) được biểu thị bằng những đường cong có mũi tên đi từ gốc tới ngọn Ta cũng nói: cung uv đi ra khỏi u và đi vào v Một đồ thị có hướng, không có cạnh song song và không có khuyên Đường đi trong đồ thị có hướng trên cung uv chỉ

có thể đi từ u (gốc) đến v (ngọn)

Dựa vào bản chất toán học về lý thuyết đồ thị trình bày ở trên, người ta đã áp dụng vào kiểm thử luồng điều khiển (Basic Path Testing) trong kiểm thử hộp trắng, và là một công cụ rất hữu ích để hiểu lưu trình điều khiển và minh hoạ phương pháp tiếp cận

Ký hiệu được minh hoạ như hình 3.1 để vẽ lưu trình điều khiển logic Mỗi cấu trúc điều khiển có một ký hiệu đồ thị lưu trình tương ứng

Bất kỳ một thiết kế thủ tục nào đều có thể chuyển được sang đồ thị lưu trình

Phương pháp phân lớp tương

đương mạnh

64 Không phát hiện ra lỗi nào

Phương pháp phân lớp tương

đương yếu

4 Không phát hiện ra lỗi nào

Phương pháp phân lớp tương đương truyền thống

28 Không phát hiện ra lỗi nào

Ngày đăng: 10/03/2018, 09:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w