1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

49 378 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 49
Dung lượng 1,21 MB

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

Nội dung

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 cùng ví dụ áp dụng được trình b

Trang 2

DƯƠNG THỊ PHƯỢNG

CƠ SỞ TOÁN HỌC CHO CÁC KỸ THUẬT

KIỂM THỬ PHẦN MỀMChuyên ngành: BẢO ĐẢM TOÁN CHO MÁY TÍNH

Trang 3

MỤC LỤC

MỞ ĐẦU 5

1.1 Đặt vấn đề 3

1.2 Nội dung nghiên cứu 4

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

Chương 1: Tổng quan về kiểm thử phần mềm 6

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

1.1.1 Kiểm thử phần mềm là gì? 6

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

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

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

1.2 Tiến trình kiểm thử phần mềm 10

Chương 2 : Phương pháp phân hoạch (quy hoạch) toán học trong kiểm thử hộp đen 12

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

2.1.1 Phân lớp tương đương mạnh 17

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

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

2.2 Ứng dụng 21

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

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

Chương 3: Cơ sở toán học trong kiểm thử hộp trắng 27

3.1 Ứng dụng đồ thị lưu trình trong lý thuyết đồ thị vào kiểm thử luồng điều khiển (Basic Path Testing) 27

3.2 Áp dụng vào kiểm thử đoạn mã chương trình trong ví dụ "Nhập điểm thi cao học" 33

3.2.1 Trường hợp 1: Đoạn mã chương trình A 34

3.2.2 Trường hợp 2: Đoạn mã chương trình B (đã chỉnh sửa) 39

Chương 4: Kết luận 44

Trang 4

DANH MỤC CÁC BẢNG VÀ HÌNH VẼ

Hình 1.1 - Giai đoạn kiểm thử trong xử lý phần mềm 9

Hình 1.2 - Tiến trình kiểm thử phần mềm 10

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

Hình 2.1 - Nguyên tắc phân hoạch tập hợp 14

Hình 2.2 - Phân lớp tương đương cho bài toán điểm thi cao học 16

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 16

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 16

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

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 18

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 19

Hình 2.4 - Giao diện màn hình nhập điểm thi cao học 21

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 22

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

Bảng 2.8 Kết quả kiểm thử với trường hợp phân lớp tương đương truyền thống 24

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

Hình 3.1 - Ký hiệu đồ thị lưu trình 29

Hình 3.2 - Điều kiện phức 30

Hình 3.3 - Đồ thị lưu trình 30

Hình 3.4 - Đồ thị lưu trình trên đoạn mã chương trình A 35

Bảng 3.1: 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 A 38

Hình 3.4 - Đồ thị lưu trình trên đoạn mã chương trình B 40

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 43

Trang 5

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]

Để xây dựng được một phần mềm đáp ứng yêu cầu người sử dụng và có chất lượng cao, các dự án phát triển phần mềm cần phải trải qua một quy trình gồm các khâu sau: Phân tích yêu cầu, phân tích hệ thống, thiết kế phần mềm, lập trình, kiểm thử phần mềm, triển khai phần mềm và bảo trì phần mềm [2,

6, 13] Trong quy trình này, kiểm thử phần mềm đóng vai trò hết sức quan trọng nhằm đảm bảo chất lượng của sản phẩm Nó 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 Tuy nhiên, kiểm thử phần mềm đang được xem là một khâu yếu nhất trong quy trình phát triển phần mềm Mỗi dự án gia công phần mềm cho Công ty nước ngoài, trên thực tế 50% dùng để chi phí cho lập trình, còn lại 50% dùng chi phí cho việc kiểm thử [13] Hiện tại các Công ty phần mềm làm công tác kiểm thử chưa tốt và là công việc khó khăn trong Công ty phần mềm, nên công tác đào tạo về kiểm thử cần được coi trọng

Quy trình kiểm thử phần mềm gồm bai giai đoạn chính: sinh các ca kiểm thử và chạy các ca kiểm thử này nhằm phát hiện các lỗi/khiếm khuyết của hệ thống [5] Nếu sản phẩm chạy qua tất cả các ca kiểm thử với kết quả thu được

Trang 6

giống với kết quả mong muốn thì ta có thể tin tưởng vào chất lượn của sản phẩm Ngược lại, một kết quả không đúng giúp ta tìm và sửa các lỗi và kết quả là ta phải chạy lại toàn bộ các ca kiểm thử Trong hai giai đoạn này, việc sinh các ca kiểm thử có vai trò quyết định đến khả năng phát hiện lỗi/khiếm khuyết của quá trình kiểm thử Làm thế nào để sinh được bộ kiểm thử tốt (gồm các ca kiểm thử) là bài toán khó trong kiểm thử phần mềm Việc sinh bộ kiểm thử tốt phụ thuộc vào phương pháp chúng ta sử dụng Có nhiều phương pháp sinh ra bộ kiểm thử [10], mỗi phương pháp đều có ưu và nhược điểm riêng Vì vậy, người sinh ra bộ kiểm thử phải bơi trong biển các phương pháp kiểm thử Trong nhiều trường hợp, có thể họ sử dụng một phương pháp kiểm thử nào đó nhưng không nắm được bản chất toán học của phương pháp này nên sinh ra các ca kiểm thử không tốt Điều này giống như việc khi mua m ột chiếc máy tính mới cấu hình mạnh, tính năng sử dụng nhiều nhưng người sử dụng lại không biết khai thác điểm mạnh của nó mà chỉ sử dụng thường xuyên như chiếc máy tính cũ Theo khảo sát của chúng tôi, hầu hết những người làm kiểm thử đều ít để ý đến bản chất toán học của các phương pháp sinh bộ kiểm thử Trong thực tế, mỗi phương pháp kiểm thử đều dựa trên một

cơ sở toán học Việc nắm rõ bản chất toán học của các phương pháp kiểm thử giúp cho chúng ta khai thác tối đa khả năng phát hiện lỗi/khiếm khuyết của các phương pháp này Hơn nữa, công việc này cũng là cơ sở quan trọng để đào tạo nguồn nhân lực về kiểm thử phần mềm trong môi trường thường xuyên biến động và ngày càng có nhiều phương pháp kiểm thử mới ra đời

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 7

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

Phần còn lại của luận văn được cấu trúc như sau 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, vai trò của kiểm thử phần mềm và mục đích của 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) cùng ví dụ áp dụng được trình bày trong 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 trình bày kết luận của luận văn và hướng nghiên cứu tiếp theo

Trang 8

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

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 thường đồng nghĩa với việc tìm ra lỗi chưa được phát hiện Tuy nhiên, có nhiều bối cảnh kiểm thử không bộc lộ ra lỗi Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác định xem phần mềm đó có đúng với đặc tả không và thực hiện trong môi trường như mong đợi hay không

Trên thực tế, hệ thống đang thực hiện khác biệt với việc duyệt lại mã nguồn Thông thường, người phát triển thực hiện việc đọc lại và phân tích mã nguồn Nói cách khác, kiểm thử đòi hỏi một hệ thống chạy được Đặc tả là căn cứ chủ yếu hỗ trợ cho việc kiểm thử Nó xác định những hành vi đúng và làm cho dễ dàng hơn trong việc xác định những hành vi không đúng Mỗi hành vi không đúng chính là một lỗi phần mềm Nói chung, người phát triển phải tự chẩn đoán nguyên nhân sinh lỗi trong mã nguồn

Mục đích của kiểm thử phần mềm là tìm ra lỗi chưa được phát hiện, tìm một cách sớm nhất có thể và đảm bảo rằng lỗi đã được sửa, mà kiểm thử phần mềm không làm công việc chẩn đoán nguyên nhân gây ra lỗi đã được phát hiện và sửa lỗi Chúng ta sẽ nghiên cứu kĩ hơn vấn đề này ở những phần tiếp theo

Trang 9

Mục tiêu của kiểm thử phần mềm là thiết kế tài liệu kiểm thử một cách

có hệ thống và thực hiện nó sao cho có hiệu quả, nhưng tiết kiệm được thời gian, công sức và chi phí

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

Mặc dù kiểm thử phần mềm là một quy trình bắt buộc trong vòng đời phát triển phần mềm nhưng hầu hết các phần mềm hiện tại vẫn còn lỗi lọt đến khách hàng hoặc được chính người sử dụng tìm ra trong quá trình kiểm thử chấp nhận sản phẩm (acceptance test) Nguyên nhân một phần lớn là do kiểm thử viên chưa làm đúng quy trình trong quá trình xây dựng các ca kiểm thử

Vì vậy chúng ta cần hiểu rõ 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 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 Đây chính là hiệu quả của hoạt động kiểm thử mang lại và cũng chính là mục tiêu của người phát triển hệ thống khi thực hiện hoạt động kiểm thử phần mềm Ngoài

ra còn có một lý do liên quan đến giải pháp phát triển, khi thực hiện hoạt động kiểm thử, đội phát triển sẽ có kế hoạch tốt nâng cao chất lượng suốt quá trình phát triển phần mềm [4]

Trang 10

Chất lượng phần mềm là một khái niệm đa chiều, không dễ định nghĩa đơn giản theo cách chung cho các sản phẩm là: “Sản phẩm được phát triển phù hợp với đặc tả của nó.” (Ian Somerville [6] trích dẫn định nghĩa của Crosby) Có một số vấn đề khó trong hệ thống phần mềm, đó là: Đặc tả phải định hướng theo những đòi hỏi về chất lượng của khách hàng (như tính hiệu quả, độ tin cậy, tính dễ hiểu, tính bảo mật,…) và những yêu cầu của chính tổ chức phát triển phần mềm vốn không có trong đặc tả (như các yêu cầu về khả năng bảo trì, tính sử dụng lại, )

Một số yêu cầu về chất lượng cũng rất khó chỉ ra một cách rõ ràng (như tính bảo trì) Những đặc tả phần mềm thường không đầy đủ và hay mâu thuẫn Vì thế phải có sự thỏa hiệp về chất lượng: Chúng ta không thể đợi các đặc tả hoàn thiện trước khi chú ý đến quản lý chất lượng, chúng ta phải sắp xếp các thủ tục để hoàn thiện chất lượng mặc dù đặc tả chưa hoàn thiện

Quản lý chất lượng không chỉ quan tâm đến việc làm hạn chế tối thiểu những khiếm khuyết của sản phẩm và đảm bảo tuân theo đặc tả, mà còn phải quan tâm đến những thuộc tính chất lượng khác của sản phẩm

Trên quan điểm qui trình, kiểm thử phần mềm là một phần của xác minh

và thẩm định phần mềm Nếu phần mềm là thành phần của hệ thống lớn hơn thì kiểm thử phần mềm cũng được xem như là một phần của quản lý và đảm bảo chất lượng Và để đạt phần mềm chất lượng cao, thì kiểm thử có thể coi là một thành phần chủ yếu của hoạt động đảm bảo chất lượng phần mềm

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

Trang 11

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] Vai trò của hoạt động kiểm thử phần mềm còn thể hiện ở hiệu quả mà nó mang lại, khi việc kiểm thử phần mềm đạt kết quả tốt sẽ có hiệu quả rất lớn trong việc giảm chi phí phát triển và làm tăng độ tin cậy của sản phẩm phần mềm

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 Hình 1.1 mô tả vị trí của kiểm thử phần mềm trong quy trình phát triển phần mềm Trong quy trình này, kiểm thử phần mềm được tiến hành sau khi cài đặt xong các đơn vị (unit) hoặc tiến hành tích hợp hệ thống và kiểm thử chấp nhận

Hình 1.1 Giai đoạn kiểm thử trong quy trình phát triển phần mềm

Phân tích Thiết kế Mã hóa KIỂM

THỬ Bàn giao

SP

Kế hoạch kiểm thử Các trường hợp kiểm thử

Dữ liệu kiểm thử

Các báo cáo kiểm thử

Trang 12

1.2 Quy trình kiểm thử phần mềm

Hình 1.2 Quy trình kiểm thử phần mềm

Qui trình kiểm thử phần mềm chứa các bước cơ bản như mô tả trong

hình 1.2 Dưới đây là mô tả chi tiết nội dung của các bước trên

- Lập kế hoạch kiểm thử Bước đầu tiên là lập kế hoạch cho tất cả các

hoạt động sẽ được thực hiện và các phương pháp được sử dụng Các

chuẩn IEEE 1012-1986 bao gồm các thông tin về tác giả chuẩn bị kế

hoạch, danh sách liệt kê của kế hoạch kiểm thử

- Thiết kế các ca kiểm thử Các ca kiểm thử là các đặc tả đầu vào cho

kiểm thử và đầu ra mong đợi của hệ thống cùng với các câu lệnh được

kiểm thử Có một vài phương pháp thiết kế ca kiểm thử và các qui tắc

từ các nhà thiết kế kiểm thử có kinh nghiệm Tuy nhiên, có hai chiến

lược kiểm thử cơ bản;

+ Phương pháp kiểm thử hộp đen để kiểm thử dựa trên chức năng

Phương pháp này có khả năng phát hiện ra các lỗi/khiếm khuyết

do thiếu sót các chức năng của hệ thống

Kết quả kiểm thử

Thiết kế các

ca kiểm thử

Chuẩn bị dữ liệu kiểm thử

Chạy chương trình với dữ liệu kiểm thử

So sánh các kết quả với các trường hợp kiểm thử

Các ca kiểm thử

Dữ liệu kiểm thử

Báo cáo kiểm thử

Trang 13

+ Phương pháp kiểm thử hộp trắng để kiểm thử cấu trúc bên trong của chương trình Phương pháp này cho phép phát hiện các lỗi tiềm năng mà rất khó phát hiện bởi phương pháp kiểm thử hộp đen

+ Giống như nguyên lý tảng băng trôi, phương pháp kiểm thử hộp đen chỉ phát hiện ra được các lỗi ứng với phần nổi của tảng băng trong khi phương pháp kiểm thử hộp trắng cho phép phát hiện các lỗi ứng với phần chìm của nó

- 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á

- Đá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ử

Trang 14

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 như sau:

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

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, …}

Như vậy dựa vào bản chất của toán học nói trên, trong kiểm thử phần mềm người ta đã áp dụng để đưa ra phương pháp "Phân hoạch tương đương" Phương pháp phân hoạch tương đương trong kiểm thử phần mềm được thực hiện như sau: 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à

Trang 15

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ệ

Các lớp tương đương có thể được định nghĩa theo các nguyên tắc:

1 Nếu điều kiện đầu vào xác định một khoảng giá trị, thì phân hoạch

thành một lớp tương đương hợp lệ và một lớp tương đương không hợp

lệ Chẳng hạn, nếu đầu vào x nằm trong khoảng [0,100], lớp hợp lệ là (0 <= x <= 100), các lớp không hợp lệ là (x < 0) và (x > 100)

2 Nếu điều kiện đầu vào yêu cầu một giá trị xác định, phân hoạch thành

một lớp tương đương hợp lệ và hai lớp tương đương không hợp lệ Chẳng hạn, nếu đầu vào x=5, thì lớp hợp lệ là (x= 5), các lớp không hợp lệ là (x <5) và (x >5)

3 Nếu điều kiện đầu vào xác định một phần tử của tập hợp, thì phân

hoạch thành một lớp tương đương hợp lệ và một lớp tương đương không hợp lệ Chẳng hạn, nếu đầu vào x thuộc tập các giá trị tháng trong năm, Months = {“Jan”, …, “Dec”}, thì lớp tương đương hợp lệ là (x  Months) và lớp tương đương không hợp lệ là (x  Months)

4 Nếu điều kiện đầu vào là Boolean, thì phân hoạch thành một lớp tương

đương hợp lệ và một lớp tương đương không hợp lệ tương ứng với hai trạng thái True và False

Trang 16

Ngoài ra, một nguyên tắc thứ năm được bổ sung là sử dụng khả năng phán đoán, kinh nghiệm và trực giác của người kiểm thử

Cơ sở của việc phân chia miền dữ liệu đầu vào thành các lớp tương đương là vì dữ liệu trong một lớp tương đương tác động như nhau lên chương trình, tạo ra cùng một trạng thái đúng hay sai của chương trình, tức là các phần tử trong cùng một lớp tương đương sẽ có cùng tính chất và thuộc tính [4] Giả sử các tập con A1, A2, A3 … của tập X tạo nên một phân hoạch của

X, nếu:

) (

Hình 2.1 - Nguyên tắc phân hoạch tập hợp

Công thức mô tả trong hình 2.1 cho chúng ta thấy rằng, để tránh việc đưa

ra các lớp tương đương không hợp lệ tức là thực hiện phân hoạch tương đương không chính xác, cần chú ý một số nguyên tắc sau: Các lớp phân hoạch con là những lớp hoàn toàn độc lập tức là hai lớp tương đương bất kì không được có phần tử chung giao nhau Khi chúng ta thực hiện phân lớp tương đương thì không để tồn tại một lớp con là tập rỗng Hợp của các lớp con phải chứa toàn bộ các phần tử của tập ban đầu để đảm bảo tính đầy đủ của dữ liệu sau khi phân lớp tương đương Việc thiết kế ca kiểm thử cho phân lớp tương đương dựa trên sự đánh giá về các lớp tương đương với một điều kiện vào

Xác định các trường hợp kiểm thử

Bước thứ hai trong phương pháp phân hoạch tương đương là thiết kế các

ca kiểm thử (sinh test cases) dựa trên sự ước lượng của các lớp tương đương cho miền đầu vào Tiến trình này được thực hiện như sau:

1 Gán một giá trị duy nhất cho mỗi lớp tương đương

Trang 17

2 Đến khi tất cả các lớp tương đương hợp lệ được phủ bởi các trường

hợp kiểm thử thì viết một trường hợp kiểm thử mới phủ nhiều nhất

có thể các lớp tương đương hợp lệ chưa được phủ

3 Đến khi tất cả các lớp tương đương không hợp lệ được phủ bởi các trường hợp kiểm thử thì hãy viết các trường hợp kiểm thử mới sao

cho mỗi trường hợp kiểm thử mới chỉ phủ duy nhất một lớp tương

đương không hợp lệ chưa được phủ

Các trường hợp không hợp lệ được phủ bởi các trường hợp kiểm thử riêng biệt do việc kiểm tra đầu vào có lỗi này sẽ bị che hoặc bỏ sót việc kiểm tra đầu vào có lỗi khác

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:

- 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)

Áp dụng “Phân hoạch tương đương” theo lý thuyết tập hợp trong toán học ta chia điểm của mỗi môn thành từng phân hoạch như hình 2.2:

Trang 18

Hình 2.2 - Phân lớp tương đương cho bài toán điểm thi cao học 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ì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

Trang 19

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 này vậy số ca kiểm thử được sinh ra trong ví dụ là:

4 x 4 x 4 = 64 ca kiểm thử

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

Trang 20

Ở 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

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 Điều này có nghĩa là trong tập ca kiểm thử sinh ra thì giá trị của phần tử đại diện cho mỗi lớp con phải được kiểm thử ít nhất một lần Như vậy, số trường hợp kiểm thử trong phân lớp tương đương yếu bằng giá trị lớn nhất của số phân hoạch biến đầu vào hay chính là lực lượng lớn nhất của phân hoạch

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

Trang 21

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 Với phương pháp này thì việc phân lớp tương đương cho miền giá trị của các biến đầu vào chỉ cần quan tâm 02 lớp sau: Lớp tương đương hợp lệ (chứa dữ liệu của biến đầu vào nằm trong miền hợp lệ) và lớp tương đương không hợp lệ (chứa dữ liệu của biến đầu vào nằm trong miền không hợp lệ) Ý tưởng của việc sinh ca kiểm thử cho phương pháp này thực hiện theo nguyên tắc: 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ệ Tức là với các biến đầu vào không hợp lệ, mỗi ca kiểm thử sẽ bao gồm một biến đầu vào có giá trị nằm trong miền không hợp lệ và các biến còn lại có giá trị 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 22

TC_ID

Đầu vào (Input)

Đầu ra mong muốn

Trang 23

2.2 Ứng dụng

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

Hình 2.4 - Giao diện màn hình nhập điểm thi cao học

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

Trang 24

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

muốn Kết quả

Ngày đăng: 24/06/2015, 22:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Đỗ Đức Giáo (2008), Toán Rời Rạc: Ứng Dụng Trong Tin Học, NXB Giáo dục Sách, tạp chí
Tiêu đề: Toán Rời Rạc: Ứng Dụng Trong Tin Học
Tác giả: Đỗ Đức Giáo
Nhà XB: NXB Giáo dục
Năm: 2008
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 Sách, tạp chí
Tiêu đề: Giáo Trình Kỹ Nghệ Phần Mềm
Tác giả: Nguyễn Văn Vỵ, Nguyễn Việt Hà
Nhà XB: NXB Đại học Quốc gia Hà Nội
Năm: 2008
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 Sách, tạp chí
Tiêu đề: Kỹ nghệ phần mềm (Sách dịch)
Tác giả: Ngô Trung Việt
Nhà XB: Nhà xuất bản Giáo dục. Tiếng Anh
Năm: 1997
4. Cem Kaner, Jack Falk, Hung Quoc Nguyen (1999), Testing Computer Software, John Wiley &amp; Sons, Inc., p. 27- 141 Khác
5. Ernest Wallmuller (1994), Software Qulity Assurance - A Practical Approach, Prentice Hall Internetional (UK) Ltd Khác
6. Ian Somerville (2011), Software Engineering, 9th Edition, Addison-Wesley Publishers Ltd, USA Khác
7. IEEE (1987), IEEE Std 1008-1987 – IEEE Standard for Software Unit Testing, The Institute of Electrical and Electronics Engineerings, Inc., USA Khác
8. IEEE (1998), IEEE Std 1012-1998 – IEEE Standard for Software Verification Testing, The Institute of Electrical and Electronics Engineerings, Inc., USA Khác
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 Khác
10. Sagar Naik (2008), Software Testing and Quality Assurance: Theory and Practice, JOHNWILEY &amp; SONS Khác
11. Robert V. Binder (2000), Testing Object-Oriented Systems: Models, Patterns, and Tools, Addison Wesley Longman, Inc., pp. 175-532 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Quy trình kiểm thử phần mềm - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
Hình 1.2. Quy trình kiểm thử phần mềm (Trang 12)
Hình 2.2 - Phân lớp tương đương cho bài toán điểm thi cao học  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 - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
Hình 2.2 Phân lớp tương đương cho bài toán điểm thi cao học 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 (Trang 18)
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 - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
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 (Trang 18)
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 - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
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 (Trang 20)
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 - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
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 (Trang 21)
Hình 2.4 - Giao diện màn hình nhập điểm thi cao học - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
Hình 2.4 Giao diện màn hình nhập điểm thi cao học (Trang 23)
Bảng 2.6. Kết quả kiểm thử - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
Bảng 2.6. Kết quả kiểm thử (Trang 24)
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 - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
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 (Trang 26)
Bảng 2.8. Kết quả kiểm thử với trường hợp  phân lớp tương đương truyền thống - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
Bảng 2.8. Kết quả kiểm thử với trường hợp phân lớp tương đương truyền thống (Trang 26)
Bảng 2.9. Bảng kết quả chạy thực tế với đoạn mã chương trình B - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
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 28)
Hình  3.1 - Ký hiệu đồ thị lưu trình - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
nh 3.1 - Ký hiệu đồ thị lưu trình (Trang 31)
Hình  3.3 – Đồ thị lưu trình - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
nh 3.3 – Đồ thị lưu trình (Trang 32)
Bảng 3.1: 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 A - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
Bảng 3.1 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 A (Trang 40)
Hình 3.4 Đồ thị lưu trình trên đoạn mã chương trình B - Cơ sở toán học cho các kỹ thuật kiểm thử phần mềm
Hình 3.4 Đồ thị lưu trình trên đoạn mã chương trình B (Trang 42)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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