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

Tài liệu kiểm thử và gỡ rối Đề tài Tạo một ADT có tên Array.h và viết một chương trình CheckArray.c để kiểm tra

16 609 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 16
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

 Kết quả:  Chương trình chạy không đúng yêu cầu..  Kết quả:  Chương trình chạy đúng với yêu cầu... Trường hợp kiểm thử 4: Nhập vào số phần tử của mảng là 1 số nguyên thuộc [1;1000] v

Trang 1

Trường Đại học Bách Khoa Hà Nội

Viện Công nghệ thông tin và truyền thông

Tài liệu kiểm thử

và gỡ rối

Đề tài : Tạo một ADT có tên Array.h

và viết một chương trình CheckArray.c để kiểm tra

Hà Nội, 2013

Giảng viên hướng dẫn : TS Vũ thị Hương Giang

Nhóm sinh viên thực hiện : Vũ Văn Bảo

Trần Trung Hiếu Nguyễn Minh Tiến Nguyễn Văn Tùng Nguyễn Hồng Vinh Lớp : KSCLC – K55

Năm học : 2012 - 2013

Trang 2

Mục lục

Mục lục 2

I Kiểm thử 3

1 Kiểm thử hàm mang nhap() 3

2 Kiểm thử thủ tục void hien(mang mang1) 5

3 Kiểm thử hàm mang bubbleSort(mang mang1) 5

4 Kiểm thử hàm mang insertionSort(mang mang1) 6

5 Kiểm thử hàm mang selectionSort(mang mang1) 6

6 Kiểm thử thủ tục void finMax(mang mang1) 7

7 Kiểm thử thủ tục void finMin(mang mang1) 7

8 Kiểm thử hàm float avgMax(mang mang1) 7

9 Kiểm thử hàm float dolech(mang mang1, int i, int j) 8

10 Kiểm thử hàm float dolechtb(mang mang1) 9

11 Kiểm thử thủ tục void sequentialSearch(mang mang1, float x) 9

12 Kiểm thử thủ tục void binarySearch(mang mang1, float giatri) 10

13 Kiểm thử thủ tục getTime(mang mang_input) 12

II Gỡ rối 13

1 ASSERT1 dùng để kiểm tra xem việc nhập dữ liệu vào mảng có đúng không 13

2 ASSERT 2 dùng để kiểm tra giá trị ở 2 giải thuật tìm kiếm có đúng kiểu dữ liệu hay không 13

3 ASSERT 3 dùng để kiểm tra việc nhập kích thước của mảngcó đúng yêu cầu hay không 14

Tài liệu tham khảo 16

Trang 3

I Kiểm thử

1 Ki m th hàm mang nhap() ểm thử hàm mang nhap() ử hàm mang nhap().

a Trường hợp kiểm thử 1:nhập vào số phần tử là số nhưng mà không phải là

số nguyên

 Dữ liệu kiểm thử:

count = 3.5

 Yêu cầu:

Thông báo nhập dữ liệu không đúng, cho phép nhập lại

 Kết quả:

 Chương trình chạy không đúng yêu cầu

b Trường hợp kiểm thử 2:nhập vào số phần tử của mảng là 1 số nguyên nhưng có giá trị lớn hơn 1000 hoặc nhỏ hơn 1

 Dữ liệu kiểm thử:

count = 1001

 Yêu cầu:

In ra thông báo nhập dữ liệu không đúng và cho phép nhập lại

 Kết quả:

 Chương trình chạy đúng với yêu cầu

c Trường hợp kiểm thử 3: Nhập vào số phần tử của mảng là một số nguyên thuộc [1;1000] nhưng nhập dữ liệu cho mảng có ít nhất 1 phần tử là 1 ký tự bất kỳ, không phải số

 Dữ liệu kiểm thử:

count = 7;

max = {e;2.4;6;7.23;9;12.6;*);

 Yêu cầu: thông báo dữ liệu không đúng và cho phép nhập lại

 Kết quả:

Trang 4

 Chương tình chạy không đúng với yêu cầu.

d Trường hợp kiểm thử 4: Nhập vào số phần tử của mảng là 1 số nguyên thuộc [1;1000] và nhập dữ liệu cho mảng là các số thực nằm trong phạm vi kích thước của kiểu float

 Dữ liệu kiểm thử:

count = 6

max = {16.66;13.32;123;2;5;6.7}

 Yêu cầu: Dữ liệu được nhập, và in ra thông báo nhập dữ liệu thành công

 Kết quả:

 Chương trình chạy đúng với yêu cầu

Trang 5

2 Ki m th th t c void hien(mang mang1) ểm thử hàm mang nhap() ử hàm mang nhap() ủ tục void hien(mang mang1) ục void hien(mang mang1).

 Dữ liệu kiểm thử:

mang1.count = 6

mang1.max = {16.66;13.32;123;2;5;6.7}

 Yêu cầu: In ra màn hình đúng giá trị của biến mang1

 Kết quả :

 Chương trình chạy đúng theo yêu cầu

3 Ki m th hàm mang bubbleSort(mang mang1) ểm thử hàm mang nhap() ử hàm mang nhap().

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

 Yêu cầu:trả về mảng mang1.max được sắp xếp tăng dần

mang1.max = {2;2;5;6.7; 13.32;13.32;16.66;123}

 Kết quả:

Trang 6

 Chương trình chạy đúng theo yêu cầu.

4 Ki m th hàm mang insertionSort(mang mang1) ểm thử hàm mang nhap() ử hàm mang nhap().

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

 Yêu cầu: trả về mảng mang1.max được sắp xếp tăng dần

mang1.max = {2;2;5;6.7; 13.32;13.32;16.66;123}

 Kết quả:

 Chương trình chạy đúng theo yêu cầu

5 Ki m th hàm mang selectionSort(mang mang1) ểm thử hàm mang nhap() ử hàm mang nhap().

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

 Yêu cầu: trả về mảng mang1.max được sắp xếp tăng dần

mang1.max = {2;2;5;6.7; 13.32;13.32;16.66;123}

 Kết quả:

 Chương trình chạy đúng theo yêu cầu

6 Ki m th th t c void finMax(mang mang1) ểm thử hàm mang nhap() ử hàm mang nhap() ủ tục void hien(mang mang1) ục void hien(mang mang1).

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

Trang 7

 Yêu cầu: In ra đúng giá trị lớn nhất trong mảng là 123, và phần tử lớn nhất

là phần tử thứ 3

 Kết quả:

 Chương trình chạy đúng yêu cầu

7 Ki m th th t c void finMin(mang mang1) ểm thử hàm mang nhap() ử hàm mang nhap() ủ tục void hien(mang mang1) ục void hien(mang mang1).

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

 Yêu cầu: In ra đúng giá trị nhỏ nhất trong mảng là 2, và phần tử lớn nhất

là phần tử thứ 4, 8

 Kết quả:

 Chương trình chạy đúng yêu cầu

8 Ki m th hàm float avgMax(mang mang1) ểm thử hàm mang nhap() ử hàm mang nhap().

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

Yêu cầu: Trả về giá trị tb của các phần tử trong mảng: avg = 22.75

 Kết quả:

 Chương trình chạy đúng theo yêu càu

9 Ki m th hàm float dolech(mang mang1, int i, int j) ểm thử hàm mang nhap() ử hàm mang nhap().

a Không có cả hai phần tử thứ i và j:

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

i=10; j = 14

 Yêu cầu: trả về giá trị -3 ( không có phần tử thứ i= 10 và j = 14)

 Kết quả:

Trang 8

 Chương trình chạy đúng theo yêu cầu

b Không có phần tử thứ i:

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

i= 12,j =3;

 Yêu cầu: trả về giá trị -2 ( không có phần tử thứ i = 12)

 Kết quả:

 Chương trình chạy đúng theo yêu cầu

c Không có phần tử thứ j:

 Dữ liêu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

i = 3, j = 15;

 Yêu cầu: trả về giá trị -1 ( không có phần tử thứ j =13)

 Kết quả:

 Chương trình chạy đúng theo yêu cầu

d Có cả hai phần tử i và j:

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

i = 3, j =6

 Yêu cầu: trả về giá trị độ lệch giữa hai phần tử 116.3

Trang 9

 Kết quả:

 Chương trình chạy đúng yêu cầu

10 Ki m th hàm float dolechtb(mang mang1) ểm thử hàm mang nhap() ử hàm mang nhap().

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

 Yêu cầu: trả về giá trị độ lệch trung bình giữa các phần tử trong mảng là 108.16

 Kết quả:

 Chương trình chạy đúng với yêu cầu

11 Ki m th th t c void sequentialSearch(mang mang1, float x) ểm thử hàm mang nhap() ử hàm mang nhap() ủ tục void hien(mang mang1) ục void hien(mang mang1).

a Trường hợp thử 1: không có phần tử có giá trị là x

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

x = 35.5

 Yêu cầu:

In ra màn hình số 0 thể hiện cho không tìm thấy phần tử này

 Kết quả:

 Chương trình chạy đúng với yêu cầu

b Trường hợp thử 2: có 1 phần tử có giá trị là x

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

x = 16.66

Trang 10

 Yêu cầu:

In ra đúng vị trí chỉ số của phần tử có giá trị x =16.66 là 0

 Kết quả:

 Chương trình chạy đúng với yêu cầu

c Trường hợp thử 3: có nhiều hơn 1 phần tử có giá trị là x

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

x = 13.32

 Yêu cầu:

In ra đúng và đủ vị trí chỉ số của phần tử có giá trị là x= 13.32 là 1 và 6

 Kết quả:

 Chương trình chạy đúng với yêu cầu

12 Ki m th th t c void binarySearch(mang mang1, float giatri) ểm thử hàm mang nhap() ử hàm mang nhap() ủ tục void hien(mang mang1) ục void hien(mang mang1).

a Trường hợp thử 1: không có phần tử có giá trị là giatri

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

x = 35.5

 Yêu cầu:

In ra màn hình thông báo không tìm thấy phần tử này

 Kết quả:

 Chương trình chạy đúng với yêu cầu

b Trường hợp thử 2: có 1 phần tử có giá trị là giatri

 Dữ liệu kiểm thử:

mang1.count = 8

Trang 11

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}.

x = 16.66

 Yêu cầu:

In ra đúng vị trí chỉ số của phần tử có giá trị x =16.66 là 6 trong mảng đã sắp xếp

 Kết quả:

 Chương trình chạy đúng với yêu cầu

c Trường hợp thử 3: có nhieu hơn 1 phần tử có giá trị là giá trị

 Dữ liệu kiểm thử:

mang1.count = 8

mang1.max = {16.66;13.32;123;2;5;6.7;13.32;2}

x = 13.32

 Yêu cầu:

In ra đúng và đủ vị trí chỉ số của phần tử có giá trị là x= 13.32 là 4 và 5

 Kết quả:

 Chương trình chạy đúng với yêu cầu

13 Ki m th th t c getTime(mang mang_input) ểm thử hàm mang nhap() ử hàm mang nhap() ủ tục void hien(mang mang1) ục void hien(mang mang1).

Từ kết quả kiểm thử ở các hàm thủ tục trên, và xem thời gian thực hiện của từng hàm/thủ tục:

Trang 12

 Chương trình chạy đúng với yêu cầu.

Trang 13

II Gỡ rối

1.ASSERT1 dùng đ ki m tra xem vi c nh p d li u vào m ng có đúng ểm thử hàm mang nhap() ểm thử hàm mang nhap() ệc nhập dữ liệu vào mảng có đúng ập dữ liệu vào mảng có đúng ữ liệu vào mảng có đúng ệc nhập dữ liệu vào mảng có đúng ảng có đúng không.

float ASSERT1( int chiso){

float a;

char dulieu[10];

printf("\n nhap phan tu thu %3d max[%3d]= ", chiso+1, chiso);

scanf("%s",&dulieu);

fflush(stdin);

if(strcmp(dulieu,"0")!=0){

a= atof(dulieu);

if(a ==0){

printf("\n nhap sai!! moi ban nhap lai");

a= ASSERT1(chiso);

return a;

} else return a;

}

else {

a=0;

return a;

}

}

2.ASSERT 2 dùng đ ki m tra giá tr 2 gi i thu t tìm ki m có đúng ểm thử hàm mang nhap() ểm thử hàm mang nhap() ị ở 2 giải thuật tìm kiếm có đúng ở 2 giải thuật tìm kiếm có đúng ảng có đúng ập dữ liệu vào mảng có đúng ếm có đúng

ki u d li u hay không ểm thử hàm mang nhap() ữ liệu vào mảng có đúng ệc nhập dữ liệu vào mảng có đúng

float ASSERT2(){

float a;

char dulieu[10];

printf("\n Nhap so can tim y = ");

scanf("%s",&dulieu);

fflush(stdin);

if(strcmp(dulieu,"0")!=0){

a= atof(dulieu);

if(a ==0){

printf("\n ban nhap y sai !!!moi ban nhap lai");

a= ASSERT2();

return a;

}

Trang 14

else return a;

}

else {

a=0;

return a;

}

}

3.ASSERT 3 dùng đ ki m tra vi c nh p kích th ểm thử hàm mang nhap() ểm thử hàm mang nhap() ệc nhập dữ liệu vào mảng có đúng ập dữ liệu vào mảng có đúng ước của mảngcó đúng ủ tục void hien(mang mang1) c c a m ngcó đúng ảng có đúng yêu c u hay không ầu hay không.

int ASSERT3(){

int b;

float a;

char dulieu[10];

printf("\n Nhap so luong phan tu cua mang count = ");

scanf("%s",&dulieu);

fflush(stdin);

if(strcmp(dulieu,"0")!=0){

a= atof(dulieu);

b= atoi(dulieu);

if(a ==0){

printf("\n ban da nhap so luong phan tu la ky tu");

printf("\n sai yeu cau moi ban nhap lai");

b= ASSERT3();

return b;

} else{

if((a-b)!=0){

printf("\n ban da nhap so luong phan tu la kieu so thuc");

printf("\n sai yeu cau moi ban nhap lai");

b= ASSERT3();

return b;

} else{

if(b<0||b>1000){

printf("\n ban da nhap so luong phan tu khong dung kich thuoc yeu cau");

printf("\n sai yeu cau moi ban nhap lai");

b= ASSERT3();

Trang 15

return b;

} else return b;

} }

}

else {

b=0;

return b;

}

}

Trang 16

Tài liệu tham khảo

[1] Slide bài giảng KTLT-Vũ Thị Hương Giang

[2] Code complete A Practical Handbook ofd Software Construction của tác giả Steve Mc Connell

Ngày đăng: 16/05/2015, 13:10

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