计算机科学与工程学院软件工程专业2009-2010春季学期软件测试技术作业模板教师:贾艳波班级-姓名:08级软一罗仕霞提交日期:2011-03-31批阅日期:成绩:作业分数计算方法1.每次作业均为100分制2.每题评分,满分10分,最低0分3..每次作业分数=题目总分/所选题目数×10.例如:某同学选题14道,各题分值总和为120分,则该同学作业得分为:120/14*10=85.71分(四舍五入)题号题目与解答题目序号得分1.3.1题目:什么是单元测试?单元测试的对象是什么(举例说明)?划分“单元”的依据是什么?回答:1)单元测试:验证软件组件是否按照组件规格说明正确运行2)单元测试的对象,是软件设计的最小单位——模块。例如:一个组件、一个菜单、一个显示界面或者能够独立完成的具体功能都可以是一个单元3)划分“单元”的依据是项目管理的分工原则,即基于“任务分解—责任分解—开发管理—组装集成”这样的工作流程中可独立完成的代码块划分原则。教师评语:11.3.2题目:单元测试的意图在于证明软件模块的能用性和正确性。请问什么是软件的能用性,什么是软件的正确性?如果单元测试设计不好,则问题可能出在什么地方?回答:1)所谓能用性是指能用的代码,只要提供常规的输入集,就可给出常规的输出集。这很容易。但是,如果提供一些意外的输入,这些代码可能就会崩溃。所谓正确性是指正确的代码,是任何时候都不会崩溃的代码。对于所有可能的输入集,它的输出都将是正确的。不过,所有可能输入的集合常常大得惊人,并且难以测试。2)问题可能出在只是注重了能用性的测试,忽略了正确性的测试。也就是没做到统筹兼顾。教师评语:21.3.3题目:回归测试(regressiontesting),是为保证软件中新的变化(修改)不会对原有功能的正常使用有影响而进行的测试。那么,请问:在软件项目后期,软件的修改十分频繁,那么是否每次修改之后应该立即进行回归测试?为什么?回答:1)从提前测试的观点出发,如果有自动测试工具,则随着修改就进行回归测试最好,因为此时目标单一,测试过程短浅,易于执行。31题号题目与解答题目序号得分2)即使修改的内容很多,只要具有相应的测试脚本程序,回顾测试也应该提前,应为在项目后期,时间紧迫,要求严格,不允许积攒故障问题到一定程序再进行回顾测试。3)如果发现一些严重的缺陷需要修正时,应该构造一个新的软件包(fullbuild)或新的软件补丁包(patch),然后再进行测试。教师评语:1.3.5题目:请填空:压力测试也称为性能测试,用来检查系统在(A)条件下的运行情况;恢复测试是用来检验在系统崩溃、硬件故障,或者其他灾难发生后,系统和数据重新(B)的测试;安全测试是测试系统在应付非授权的内部/外部访问、故意损坏时的(C)能力;兼容性测试是测试在特殊的硬件/软件/操作系统/网络环境下(D)表现。回答:A、负荷B、恢复C、系统防范D、软件行为教师评语:41.3.8题目:课件中指出:集成,是系统设计阶段做出的设计决策。集成测试,不是单纯的测试,而是为了达到设计目标。请问,集成测试主要是落实软件测试目标的三个观点中的哪一个?为什么?回答:主要落实的是“查找差异的观点”因为从定义上看,集成测试不仅是测试单元接口之间的功能是否正确,更要查找集成后系统是否实现了当初的概要设计的目标,即查找集成系统与目标系统之间的差异。教师评语:51.3.12题目:当子系统集成到一起并开始测试的时候,系统反应时间很可能比性能要求的要长。请问:解决性能问题,应该在系统集成之前还是集成之后?为什么?回答:应该在集成之后。因为集成首先要测试系统能够提供的服务功能,在此基础上再以性能优化为目标去调整数据结构和算法,使其更有效率,不过此时不得不接受时间的约束。教师评语:61.3.13题目:简述回归测试的目的,分析回归测试与其他测试(单元、集成测试)的区别。回答:区别主要表现在以下两个方面:1)回归测试有别于其他测试的目的,即“针对测试后变更的有效性进行测试”,目的是“证实”;2)其他测试都是“针对代码缺陷的测试”,是为了找出“代码缺陷或差异”,目的是“证伪”。教师评语:72.3.2题目:单元测试的总体目标是:确...