logo资料库

Search软件测试实验报告.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
学 生 实 验 报 告 实 验 课 名 称: 软件工程导论 实验项目名称: Search 函数的实现 专 业 名 称: 软件工程 班 学 级: 号: 学 生 姓 名: 教 师 姓 名: 第 4 次上机题目: 请用 VC++设计并实现函数 Search(somearray,size,value),该函数功能为:在一个整数数组
somearray 中搜索一个值为 value 的整数,如果数组中有这个数,则函数值等于这个数的下 标,否则函数值等于-1。数组的长度由参数 size 制定。假设数组的第一个元素的下标为 1。 考察目标: 1、 源代码请按照编程规范来书写; 2、 请选择一种测试技术,对其测试方案进行设计,并执行、完成测试报告。 一、实验名称:Search 函数的实现 二、实验目的与要求: 1.源代码请按照编程规范来书写; 2. 请选择一种测试技术,对其测试方案进行设计,并执行、完成测试报告。 三、实验内容: 1. 实现函数 Search(somearray,size,value); 2. 对函数完成测试; 四、算法描述: 见附录的程序代码。 五、测试描述: 由于 1 问中已经设计出了实现函数的 Search 算法,所以可以采用白盒测试技术;由 于题中描述了该函数的功能,在这里采用黑盒测试技术设计测试它的测试方案 为了用等价划分的方法设计测试方案,首先需要划分输入数据的等价类。根据该函 数的功能,可以把它的输入数据划分成一下等价类: 1. 有效输入的等价类 数组有多个元素,其中一个正整数是所要找的数; 数组有多个元素,其中一个负整数是所要找的数; 数组有多个元素,其中一个 0 是所要找的数; 数组有偶数个元素,其中第一个元素是所要找的数; 数组有偶数个元素,其中中间某一个元素是所要找的数; 数组有偶数个元素,其中最后一个元素是所要找的数; 数组有奇数个元素,其中第一个元素是所要找的数; 数组有奇数个元素,其中中间某一个元素是所要找的数; 数组有奇数个元素,其中最后一个元素是所要找的数; 2. 无效输入的等价类 由于数组的实际长度不一定等于参数 size 的值,为了使用边界分析法设计测试方案,应 该再考虑下述几种边界的情况: 数组长度为 1,其元素是所要找的数; 数组长度为 1,其元素不是所要找的数; 数组的长度为 0,即数组为空,无法进行查找; 3. 根据以上划分的等价类及边界情况,可以设计出下述测试方案: a) 数组长度为 1,其中正整数元素是所要找的数 输入:somearray={3},size=1,value=3; 预期的输出:1 b) 数组长度为 1,其中负整数元素是所要找的数 输入:somearray={-1}, size=1,value=-1; 预期的输出:1 c) 数组长度为 1,其中 0 是所要找的数 输入:somearray={0}, size=1,value=0;
预期的输出:1 d) 数组长度为 1,其中元素不是所要找的数 输入:somearray={-1}, size=1,value=3; 预期的输出:-1 e) 数组为空,即数组长度为 0 输入:somearray={ }, size=1,value=3 预期的输出:-1 f) 数组有偶数个元素,第一个元素是正整数且是所要找的数 输入:somearray={1,2}, size=2,value=1; 预期的输出:1 g) 数组有偶数个元素,最后一个元素是负整数且是所要找的数 输入:somearray={1,-1}, size=2,value=-1; 预期的输出:2 h) 数组有偶数个元素,其中一个元素 0 是所要找的数 输入:somearray={1,3,0,7}, size=4,value=0; 预期的输出:3 i) 数组有偶数个元素,其中没有所要找的元素 输入:somearray={1,0,3,7}, size=4,value=2; 预期的输出:-1 j) 数组有奇数个元素,第一个元素是正整数且是所要找的数 输入:somearray={1,2,3}, size=2,value=1; 预期的输出:1 k) 数组有奇数个元素,最后一个元素是负整数且是所要找的数 输入:somearray={1,2,-3}, size=3,value=-3; 预期的输出:3 l) 数组有奇数个元素,其中一个元素 0 且是所要找的数 输入:somearray={1,3,0 }, size=3,value=0; 预期的输出:3 m) 数组有奇数个元素,没有所要找的数 输入:somearray={1,3,0 }, size=3,value=2; 预期的输出:-1 n) 数组的实际长度不等于参数 size 的值 输入:somearray={1,2,3,4},size=3,value=2 预期的输出:“无效的 size 值” 六、源程序: // fourth_title.cpp #include #include #include using namespace std; const int MAX_SIZE = 100;
int Search(int somearray[], int size, int value); bool Integer(string str); int main() { int somearray[MAX_SIZE]; int size(0), value; string data; cout << "Please enter the length of the array: "; cin >> data; while (!Integer(data) || data[0] == '-') { cout << "Input format error, please enter an integer!!\n"; cin >> data; } istringstream in(data); in >> size; if (size != 0) { } int i; for (i = 0; i <= size; i++) { if (i == size) { } cin >> data; istringstream in(data); if (!Integer(data)) { } if (i == size) { in >> value; } else { } in >> somearray[i]; cout << "Please enter the array element: \n"; cout << "Please enter the interger of the find: "; i--; cout << "Input format error, please enter an integer!!\n"; continue;
} cout << "Array: "; if (size == 0) { cout << "Empty"; } for (i = 0; i < size; i++) { cout << somearray[i] << " "; } cout << "\nValue: " << value; cout << "\nFind result: " << Search(somearray, size, value); return 0; bool Integer(string str) { size_t i; for (i = 0; i < str.size(); i++) { if ( str[0] == '-') { i++; } if ( str[i] > '9' || str[i] < '0') { return 0; } } return 1; } } } int Search(int somearray[], int size, int value) { int j; for (j = 0; j < size; j++) { if (somearray[j] == value) { return j+1; } } return -1;
六.运行结果与分析: 通过测试完全达到预期结果; 七.实验中遇到的问题、解决方法及体会: 遇到的问题:处理等效类和无效类时不容易划分,觉得情况多多,就本实验而言,并 没有把浮点型等有容错处理,就此,我们经过讨论,决定递交两份测试方案。 体会,要学好测试,必须把握好有效等价类的划分和无效等价类的划分,以及边界类 的测试等。我觉从实践中真正从另一层次上体会到了实验的重要性,通过实验加深了我对几 种算法和实验原理的了解 ,这比单纯在书本中挣扎中要强好多,实践才是最好的学习方法,给 人以最深的印象,学习变得异常轻松.希望以后能多点上机实验,理论结合实际,我想这是本科 教学的方向,也是大家所希望看到的。
分享到:
收藏