《专升本自考《软件工程》上机习题.docx》由会员分享,可在线阅读,更多相关《专升本自考《软件工程》上机习题.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程上机习题程序测试题根据所给源程序及该程序的可执行程序,设计相应的测试用例并执行之,以此指出你所发现的错误,并分析 错误原因.选用白盒测试技术(到达100%分支覆盖即可).由键盘输入一个整数,判断这个数是不是素数(质数),并输出判断结果.int IsPrimc(int num);为了正确地实施测试,首先给出素数的定义: 素数的定义:如果一个自然数,除去1和它自身外,不能被其它自然数整除,这样的自然数就是素数.1.等价类测试首先,确定有效和无效等价类:输入条件有效等价类无效等价类num1)大于0的整数5)不是整数2)整数16)整数T3)能被小于它自身且大于1的整数整除 的整数7)整数04)
2、只能被自身整除且大于1的整数8)负整数,且能被大于它自身且小于T的 整数整除的整数9)负整数,只能被自身整除且小于T的整 数下面设计测试用例:测试用例覆盖等价类期望结果11,2有效,输出:No! It is not a prime number.61,3有效,输出:No! It is not a prime number.8371,3有效,输出:No! It is not a prime number.21,4有效,输出:Yes! Its prime number.971,4有效,输出:Yes! Its prime number.9. 655无效,Compiler Warninghello5无
3、效,Compiler Error-2958无效,ASSERT FAILED-379无效,ASSERT FAILED-16无效,ASSERT FAILED07无效,ASSERT FAILED下面是测试执行的结果:由执行结果,可以看此在测试用例1, 2,-295,-37,-1, 0时,测试没有通过.同D:Z200510软件工程SEB051101DebugSEB051101. exe*日日口nun = 1(Vest Its prime number.|一期望结果没有出现!nun = 6 No? It is not a prime number.期望结果出现!nun = 837 No? It is n
4、ot a prime number.期望结果出现!num = 2 No? It is not a prime number.期望结果没有出现!nun = 97Vest Its prime number.期望结果出现!nun = -295:Vest Its prime number.期望结果没有出现!nun = -37 Yes? Its prime number.期望结果没有出现!nun = -1ies? Its prime number.s期望结果没有出现!nun = 0;No? It is not a primenumber.;期望结果没有出现:2.白盒测试程序代码如下:int IsPrim
5、e(int num)(if( num % 2 = 0 )/ 1return 0;for(int i = 3, j = sqrt( (double)num ); i = j; i += 2)/ 2if( num % i = 0)/ 3return 0;/ 4return 1;首先,对要测试代码进行编译,编译器在2给出警告:warning C4244: Unitializing, : conversion from t double* to * int*, possible loss of data,因为 sqrt 返回 double 而 j 为 int 类型的变量.为实现100%分支覆盖C2,设
6、计如下的测试用例:测试用例覆盖路径期望结果实际结果1abdefm有效,输出:No! It is not a prime number.有效,输出:Yes! Its prime number.6acn有效,输出:No! It is not a prime number.有效,输出:No! It is not a prime number.9abdegil有效,输出:No! It is not a prime number.有效,输出:No! It is not a prime number.2acn有效,输出:Yes! Its prime number.有效,输出:No! It is not a
7、 prime number.31abdeghjkghjkfm有效,输出:Yes! Its prime number.有效,输出:Yes! Its prime number.经过上面的路径测试和等价类测试,检查出程序中存在如下的错误和缺陷:错误:1) 1不是素数,而IsPrime将1判断为素数;2) 2是素数,而IsPrime将2判断为不是素数.缺陷:3) 在标志2的语句,没有执行类型转换;4) 对num 0 );if( num = 1 )return 0;if( num 2 & num % 2 = 0 )/ 1return 0;for(int i = 3, j = sqrt( (double)
8、num ); i = j; i += 2)/ 2if( num % i = 0)/ 3return 0;return 1;/ 4.测试程序清单:/ SEB051101.cpp : refer to SEB 051110. DOC/#include stdafx.h#include stdio. h#include math.httdefine FALSE0define TRUE1#dcfinc ASSERT2int IsPrime(int num);int main(int argc, char* argv) (int nums = (1, 6, 837, 2, 97, /*9.65, */
9、hello,*/ -295, -37, -1, 0);int expected = FALSE, FALSE, FALSE, TRUE, TRUE, /*WARNING, */ /*ERR, */ ASSERT, ASSERT, ASSERT, ASSERT;int count = sizeof(nums) / sizeor(int);for(int i = 0; i count; i+) (int bResult;int num = numsi;printf(num = %dn*, num);if( bResult = IsPrime(num) (printf (*Yes! Its prim
10、e number. n*);)else( printf (No! It is not a prime number. Xn);if( bResult != expectedi) printf (期望结果没有出现nn);elseprintf C期望结果出现nn);)return 0;)int IsPrime(int num)if( num % 2 = 0 )/ 1return 0;for(int i = 3, j = sqrt ( (double)num ); i = j; i += 2)/ 2if( num % i = 0)/ 3return 0;/ 4return 1;仓库管理系统在要建立的
11、仓库管理系统中,入库员负责登记入库物品(品名,数量,单价,位置,审批,日期)中,包括查看库存中有无这类物品;1. 出库员根据用户要求(品名,数量,审批人),查看有无所需物品,假设有查看库存量是否满足,方可提货,并修改库存库房主任负责库房的日统计,月统计,并统计出入差额产生日报表(品名,数量,差额,库存余额)和月报表(数量,差额,库存余额).题目要求:1. 用结构化分析,建立系统模型0层1层(包括数据字典);初始模块结构图;2. 识别系统中有那些类.Figure 1.1 -顶层图,标识系统边界在画0层图之前,先来考虑一下,大概都需要什么数据存储:1 .入库员的职责有以下几点:1) 登记商品入库,
12、包括登记商品的信息,和入库的信息两个方面,因此可以从中抽象出两个数据存储:“商品目录”和“入库表”;2) 库存查询,可以由“入库表”和下面的“出库表”计算求得每件商品的库存量.2 .出库员的职责有以下几点:1) 接受并检查用户的提货申请;2) 杳询库存,看能否满足用户提出的要求进行出货;3) 向用户发回提货申请回馈,包括能满足还是暂时不能,用户大约要等待几天等;4) 负责商品的出库,抽象出数据存储“出库表”.3 .用户的职责有以下几点:1) 在准备提货前,先查看要提货物是否有库存,根据查询结果来决定是否发出提货申请;2) 发出提货单,提交给系统,系统要将提货申请保存,因此抽象出数据存储“用户提货申请表”.4 .库房主任的职责有以下几点:1) 查询日库存;2) 查询月库存;校务管理系统管理老师的人员:录入老师情况(姓名.地址.所教课程)老师缺课记录(名字.时间.原因.课程)管理学生 的人员:录入学生情况(姓名.所选课程.成绩)教务主任:查询统计1:教师情况2:学生总成绩3:学生平均成绩1)用结构化方法画出系统顶层图、0层图,数据字典.2)画出该系统的初始化模块结构图.3)用面向对象法画出该系统有那些主要的类.