软件实现与验证
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五讲软件实现与验证
1、请说明软件审查与软件测试的区别与联系,以及各自适用的测试对象是什么?
软件审查:
(1)是一个静态的V&V过程,通过对软件系统复查来发现错误、遗漏、和异常,是一种比程序测试更有效的缺陷发现技术。目标是检测程序的缺陷。
(2)适用的测试对象:通常集中在源代码上,也可以对软件的任何可读文档(需求或设计模型尽享审查)。
软件测试:
(1)利用测试工具按照测试方案和流程对产品进行功能和性能测试,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,解决问题,以确保开
发的产品适合需求。
(2)适用的测试对象:适合大型的系统开发——但是对于小型系统,或是通过脚本或复用开发的系统来说,所划分出的清晰的不通阶段就要少一些。
区别与联系:
(1)审查与测试各有优缺点,它们是互补的而不是对立的测试技术;
(2)两种技术在V&V过程中应该一同配合使用;
(3)审查能够检查程序与规格描述是否相符,但不能检查程序的运行效果是否符合用户的预期,也不能检查如性能、可用性的非功能需求。
2、什么是黑盒测试与白盒测试?
黑盒测试:
(1)又称为功能测试或数据驱动测试,是已知产品的功能设计规格,通过进行测试证明每个实现了的功能是否符合要求。
(2)它只检查程序功能是否按照需求规格说明书的规定正常使用,车许愿是否能适当地接受输入数据而产生正确的输出信息,并且保持外部信息的完整性。
(3)黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。
(4)“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情
况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,
人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行
测试。
(5)黑盒测试技术:黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。
主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,
设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的
测试技术涵盖了测试的方方面面。
白盒测试:
(1)又称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。
(2)按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。
(3)白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
(4)白盒测试技术:深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代
码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据
自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软
件开发人员为主,在 JAVA 平台使用 Xunit系列工具进行测试, Xunit测试
工具是类一级的测试工具对每一个类和该类的方法进行测试。
3、什么是集成测试,为什么要进行集成测试?
集成测试:也叫组装测试或联合测试。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试尤其与客户服务器和分布式系统有关。这种测试将通过单元测试的单元按照设计要求组合起来再进行的测试,检查这些单元之间的接口是否存在问题。测试小组可以深入到系统的源代码。当发现一个问题是,集成小组试图找到问题的根源并且定位需要调试的组件。主要关心的是找出系统中的缺陷。
原因:进行集成测试包括从组件建立系统和对合成的系统进行测试,以发现由于组件间交互所引起的问题。是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能。并且对以前的集成进行回归测试。
4、简述测试用例(test case)的基本构成和等价类划分法的基本思想?
软件测试用例的基本要素:包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。
等价类划分的基本思想:是否可以用一组有限的数据去代表近似无限的数据。等价类划分法合理划分等价类,在每一个等价类中取一个或少数几个数据作为测试输入,就可以用少数有代表性的数据,取得较好的测试效果。通过降低测试的数目实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。
5、描述基本路经测试的原理,计算如图所示程序结构的基本路经数目,并导出其基本路径集合。
基本路径数目:5条
基本路径集合:
Path1:1,2,4,8,11,12
Path2:1,2,4,7,10,12
Path3:1,2,4,7,10,6,7 (12)
Path4:1,2,3,5,9,12
Path5:1,2,3,9,12