参考答案:
【问题1】
(1)在2003~2006之间
(3)含有非数字的6个字符
(2)在01~12之间
(4)<2003
(5)>12
【问题2】
(6)非增量式
(7)增量式
【问题3】
(8)B或从响应时间、处理速度、吞吐量、处理精度等方面来检测
(9)D或检查系统对非法侵入的防范能力,以及系统的安全机制、保密措施是否完善
(10)C或验证系统在指定条件和规定的时间内执行操作的能力
(11)F或针对界面的正确性、导航性、易用性、协调性、规范性及独特性等进行测试
(12)E或对产品选择、签约过程、在线支付及产品交付等方面进行测试
(13)A或对数据的完整性、有效性、一致性测试
【问题4】
(14)是或正确
(15)是或正确
详细解析:
本题考查软件测试的基本知识。
【问题1】
本问题考查对黑盒测试中的等价类测试法的掌握情况。
由于采用穷举法来进行测试是不现实的,因此在面对实际问题时,可根据等价类划分的思想,将输入数据按照程序的功能说明划分为若干个集合(可根据输入条件划分为有效的输入和无效的输入),每一个集合中的某一输入数据在程序中执行结果代表了该集合中其他输入数据对程序的作用,一个集合即为一个等价类。在等价类划分完之后,再针对每一个有效的等价类和无效的等价类设计测试用例。如果用某个等价类的一组测试数据进行测试时没有发现错误,则说明在同一等价类中的其他输入数据也一样查不出问题;反之,如果用某个等价类的测试数据进行测试检查出错误,则说明用该等价类的其他输入数据进行测试也一样会检测出错误。所以,测试时只需从每个等价类中取一组输入数据进行测试即可。
问题1共划分了三个等价类,其中,“报表日期的类型及长度”等价类中应包含无效类型、无效长度的无效等价类,长度无效等价类已经给出,因此空(3)处应填写“含有非数字的6个字符”。“年份范围”有效等价类表示正确的年份范围,空(1)处应填写“在2003~2006之间”,无效等价类表示不在此范围内的年份,则空(4)处应填写“<2003”;月份范围的填空同理。注意,设计测试用例时,一个测试用例只能覆盖一个无效等价类,因为程序在遇到错误之后就不再检查是否还有其他错误。
【问题2】
本问题考查对集成测试概念的掌握情况。
集成测试是在软件系统集成过程中所进行的测试,其主要目的是将通过单元测试的模块按照一定的策略,组装成能够完成预期功能要求的软件结构系统。集成测试主要检查各单元之间的接口是否正确。
通常,集成测试有非增量式集成与增量式集成两种方法:前者是将单元测试后的所有模块按设计要求一次性组合起来进行整体测试。这种方法整体性强,可以对模块进行并行测试,能充分利用人力,减少测试的开销;但这种方法容易混乱,出现错误不容易查找和定位。增量式集成是把下一个要测试的模块结合到已测试好的模块中,测试完后再将下一个需测试的模块组合进来测试,逐步把所有模块组合在一起,并完成测试。这种方法从局部开始逐步形成整体,测试范围是一步步扩大的,所以错误容易定位,而且已测试的模块可在新的条件下进行投试,使程序测试得更彻底。因此,通常采用增量式测试方法比较好。
【问题3】
本问题考查对各种测试概念的掌握情况,每一种测试有其不同的测试重点,考生应该掌握它们的不同之处。
功能测试又称正确性测试,它检查系统的功能是否符合规格说明,主要采用黑盒测试方法。通常的做法是构造一些合理输入,检查是否得到期望的输出。
性能测试是检查系统是否满足系统分析说明书对性能的要求。特别是实时系统或嵌入式系统,即使软件的功能满足需求,但性能达不到要求也是不行的。性能测试覆盖了软件测试的各阶段,而不是等到系统的所有各部分都组装之后,才确定系统的真正性能。通常与强度测试结合起来,同时对软件、硬件进行测试,主要从响应时间、处理速度、吞吐量、处理精度等方面来检测。
系统的安全性测试主要是为了检查系统对非法侵入的防范能力,以及系统的安全机制、保密措施是否完善。测试的方法是测试人员模拟非法入侵者,采用各种方法冲破防线。例如,想方设法截取或破译口令;故意使系统出错,利用系统恢复的过程非法入侵;企图通过浏览非保密数据,获取所需信息,等等。
若系统分析说明书提出了可靠性要求,则应对系统的可靠性进行测试,主要验证系统在指定条件和规定的时间内执行操作的能力。通常使用以下两个指标来衡量系统的可靠性:
(1)平均失效间隔时间是否超过了规定的时限;
(2)因故障而停机时间在一年中应不超过多少时间。
用户界面测试用于核实用户与软件之间的交互,检查用户界面中的设计是否合乎用户的期望或要求,界面中的对象是否按照预期的方式运行。
数据库测试一方面是指对数据库本身的完整性进行测试,包括:(1)数据完整性。主要检测数据的损坏。规定适当的检查点可以减轻数据损坏。例如,保留和检查每天的事务日志便于跟踪数据库的改变。(2)数据有效性。数据有效性确保把正确的信息提供给客户,把正确的信息回传到数据库中。一般来说,数据的检测比率高于应用程序本身的检测比率。其中的一个检测方法是查看工作流并在变化点上检查数据库,包括隔离改变数据库的操作并检查改变内容是否正确。(3)数据操作。我们需要从两种级别上测试用户操作:管理员功能和用户功能。数据库管理员可以执行一些不提供给网站客户的受限操作。另一方面,要将数据库与应用系统相结合,对数据一致性、输出结果及数据库容量进行测试。用户提交的表单信息如果不正确,则可能导致数据一致性出错;而网络速度或者程序设计如果存在问题,则可能造成输出错误;同时,还要考虑到系统及数据库在给定时间内能够持续处理的最大负载及工作量。
【问题4】
本问题考查对参与测试的人员属性的了解情况。在整个测试过程中,只有模块测试允许由模块的设计者进行测试,其余测试均由其他人员进行测试,目的是避免自我否定现象,从而能更多地发现错误。
验收测试根据用户需求验证系统,是在投入使用之前的最后测试。验收测试的任务是进一步验证软件的有效性,也就是说,检查软件的功能和性能是否与用户的要求一样。同时验收测试要进行对软件配置的复审,即检查软件(源程序、目标程序)和文档(包括面向开发和用户)是否齐全以及分类是否有序,确保文档、资料的正确和完善,以便维护阶段使用。
验收测试是以用户为主的测试,软件开发人员和质量保证人员也应参加。在验收测试之前,需要对用户进行培训,以便熟悉该系统。验收测试的测试用例由用户参与设计,主要验证软件的功能、性能、可移植性、兼容性、容错性等,测试时一般采用实际数据。由于一个系统拥有众多用户,不可能让每个用户对系统进行验收,因此,多采用α测试和β测试的方法。
α测试是由软件开发机构组织内部人员模拟各类用户在开发环境下进行的测试,其关键在于尽可能逼真地模拟实际的运行环境及用户的操作,并尽最大努力涵盖所有可能的用户操作方式。β测试是由软件用户在实际日常工作环境下进行的测试,并要求用户报告异常情况,提出批评意见,然后由开发机构再对系统进行改错和完善,最后向用户发布最终软件产品。