2.2 测试级别

V模型与测试级别[1]

2015-06-24

目录

2.1.1 V模型
2.2.1 单元测试
2.2.2 集成测试
2.2.3 系统测试
2.2.4 验收测试

2.1.1 V模型



返回

  • 单元测试:验证软件单元是否按照单元规格说明(详细设计说明)正确执行,即保证每个最小的单元能够正常运行。单元测试一般由开发人员来执行,首先设定最小的测试单元,然后通过设计相应的测试用例来验证各个单元功能的正确性;
  • 集成测试:检查多个单元是否按照系统概要设计描述的方式协同工作。集成测试的主要关注点是系统能够成功编译,实现了主要的业务功能,系统各个模块之间数据能够正常通信等;
  • 系统测试:验证整个系统是否满足需求规格说明;
  • 验收测试:从用户的角度检查系统是否满足合同中定义的需求或者用户需求;

V模型的特点

  • V模型体现的主要思想是开发和测试同等重要,左侧代表的是开发活动,而右侧代表的是测试活动;
  • V模型针对每个开发阶段,都有一个测试级别与之想对应;
  • 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有多个测试级别与开发阶段对应;
  • V模型适用于需求明确和需求变更不频繁的情形;

2.2.1 单元测试



返回

基本含义

  • 单元测试的对象:可以是模块、类、函数和对象等,不同的软件语言来决定;
  • 单元测试的主要目的:是验证单元是否满足了详细设计规格说明,发现需求和设计中的错误;
  • 单元测试设计的主要输入(测试依据):是详细设计规格说明、软件设计和数据模型等;
  • 单元测试的测试技术:主要采用白盒测试技术,黑盒测试技术作为单元测试的辅助;
  • 单元测试应该覆盖功能需求和非功能需求;
  • 单元测试经常会使用测试驱动的方法(测试驱动开发);

测试环境

  • 单元测试处理的对象直接来自开发人员,通常由开发人员来开展单元测试;
  • 单元测试可能并不能形成完成的系统,因此需要驱动模块和桩模块的支持: 
    • 桩模块:用以模拟被测模块工作过程中所调用的模块,他们一般只进行很少的数据处理,例如打印入口和返回;
    • 驱动模块:用以模拟被测模块的上级模块,它接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印相应的结果;
  • 驱动模块和桩模块是测试使用的软件,而不是软件产品的组成部分,但它需要一定的开发费用;

单元测试关注点

  • 单元模块接口参数;

    • 实际参数和形式参数的个数是否相同;
    • 实际参数和形式参数的属性是否匹配;
    • 调用函数的参数顺序、个数和属性是否匹配;
  • 单元模块局部数据结构;
    • 不合适或者不相容的类型说明;
    • 变量没有初始化;
    • 不正确的变量名;
  • 单元模块的独立路径测试;
    • 误解或者用错了算符优先级;
    • 混和类型运算;
  • 与控制流相关的测试;
    • 错误的修改了循环变量;
    • 循环中止条件不可能出现;
  • 与异常处理相关的测试;
    • 输出的错误信息难以理解;
    • 错误的信息和实际的错误不符;

2.2.2 集成测试



返回

基本含义

  • 集成测试,又叫组装测试、联合测试等;
  • 集成测试是对组件之间的接口进行测试,以及和系统其他部分的相互作用;
  • 最简单的形式是两个已经测试的单元组合成一个组件,来测试它们之间的接口和数据交换;
  • 集成测试的主要工作:把单元测试通过的各个模块逐步集成在一起,来测试数据是否能够正确传递和调用,以及各个模块是否能正确的协同工作;
  • 集成测试可以应用在不同的测试级别,比如单元集成测试、系统集成测试等;

集成测试的关注点

  • 单元模块是否传输了错误的数据,或者没有传输数据;
  • 接受数据的单元不能操作或者崩溃,比如单元功能缺陷、接口格式不兼容、协议不兼容等;
  • 单元之间通讯正常,但是使用不同的方法来解析收到的数据,比如规格说明矛盾、理解错误等;
  • 数据能正常传输,但是传输时间错误,比如时序问题,或者传输的时间间隔太短,比如吞吐量、负荷、容量等问题;

2.2.3 系统测试



返回

基本含义

  • 系统测试是将已经集成好的软件系统,作为计算机系统的一部分,与计算机硬件、某些支持软件、数据和人员等系统元素结合起来,在实际运行环境下对计算机系统进行一系列严格有效的测试;
  • 系统测试关注的是项目或产品范围中定义的整个系统或产品的行为;
  • 在系统测试中,测试环境应该尽量和最终使用的目标或产品使用的环境相一致,从而减少和环境相关的失效;

测试目标

  • 系统测试的目标是确认整个系统是否满足了规格说明中的功能和非功能需求,以及满足的程度;
  • 系统测试应该发现由于需求不正确、不完整或实现和需求不一致而引起的失效,并识别没有文档化或被忘记的需求;
  • 常见的系统测试包括压力测试、容量测试、性能测试、安全测试、容错测试等;

为什么系统测试

  • 在较低的测试级别,测试主要是针对技术规格说明的,即从软件开发者的技术观点角度加以考虑。而系统测试从客户或用户的观点来考虑整个系统。测试人员确认系统是否完全正确的满足了需求。
  • 许多功能和系统属性是从系统的所有组件相互调用的过程中得到的,因而只能在整个系统级别才能看到,也只能在这个时候才能进行观察并测试。

2.2.4 验收测试



返回

基本含义

  • 验收测试通常是由使用系统的用户来进行,同时系统的其他利益相关者也可能参与其中;
  • 验收测试目的是通过验收测试,对系统功能、系统特定部分或特定的系统非功能特征进行测试;
  • 发现缺陷不是验收测试的主要目标,验收测试也可以用来评估系统是否可以在市场部署、用户使用系统的准备情况等;

验收测试类型

  • 合同验收测试
  • 规范验收测试
  • Alpha和Beta测试
  • 用户验收测试
  • 运行(验收)测试

参考

[1] 软件生命周期中的测试 [下载]

时间: 2024-10-10 21:30:45

2.2 测试级别的相关文章

TestNG基础教程 - TestNG.xml中的测试级别和常用注解执行顺序

根据testng.xml 文件配置, 测试级别为suite -> test -> class -> methods. test 对应testng.xml 中的test 标签, 而不是测试类里的@Test. 测试类里的@Test 对应 testng.xml中的methods. 创建TestCase 如TC3 运行效果 所以在使用@BeforeSuite,@BeforeTest,@BeforeClass,@BeforeMethod 等标签时, 它们的实际执行顺序也是suite -> t

全程软件测试之测试需求分析与计划

全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计划活动中,首先要确认测试目标.范围和需求,其中"测试需求分析"是关键任务,然后在测试需求基础上制定测试策略,并对测试任务.时间.资源.成本和风险等进行估算或评估. 无论何时进行估算,我们都是在预测未来,并会接受某种程度的不确定性.软件项目计划的目标是提供一个框架,不断收集信息,对不确定性进

Qtp自动测试工具(案例学习)

?Qtp是什么? ?测试用例网站    ?注册与登录    ?测试脚本       ?录制/执行测试脚本       ?分析录制的测试脚本       ?执行.查看测试脚本    ?建立检查点       ?对象检查       ?网页检查       ?文字检查       ?表格检查       ?执行并分析使用检查点的测试脚本       ?参数化       ?参数化对象和检查点中的值        ?参数的种类       ?使用数据表参数       ?修正受到参数化影响的检查点  

测试理论

软件:计算机程序.程序所用的数据以及有关的文档资料的集合. 软件测试:在规定的条件对软件进行操作,以发现错误,对软件质量进行评估. 测试目的:提高软件质量,发现软件缺陷和错误,对软件质量进行评估. 开发模型:瀑布模式.vwxh.螺旋模式 1.瀑布模型 计划,需求分析,设计,编码,测试,运行与维护 优点:上一阶段的变换结果是下一阶段的变换的输入,相邻两个阶段具有因果关系,紧密相联.可用于迭代. 缺点:突出缺点是不适应用户需求的变化. 2.V 模型 规格说明书,需求分析,概要分析,详细分析,编码,单

SWTBOK测试实践系列(1) -- 测试在项目前期的评审投入划算吗?

测试策略:静态测试还是动态测试? [对话场景] 成功发布某个软件版本之后,项目团队召开了项目的经验教训总结大会.在会议期间,项目经理小项和测试经理小测进行了如下的对话: 小项:"小测,我们的项目时间压力很大,测试执行是我们的关键路径,测试团队是否可以在测试执行阶段投入更多的人力和物力?"限定时间和人力资源同等条件. 小测:"啊!假如增加我们的测试执行时间,在整个周期不变的情况下,我们就需要压缩前期的学习和评审投入的时间和工作量,是吗?" 小项:"是的,你看

更高级别的测试

当程序无法实现最终用户要求的合理功能时,就会发生一个软件错误. 根据这个定义,即使完成了一次非常完美的模块测试,仍然不能保证已经找出了程序的所有错误.因此,要结束整个测试任务,必须进行其他形式的更深入的测试,将这些新型形式的测试称为"更高级别的测试" 软件开发周期的文档说明: ●要求规格说明定义了为什么要开发程序 ●目标定义了程序要做什么,以及做得怎样 ●外部规格说明了程序对用户的准确表现 ●与后续阶段相关的文档越来越详细地规定了程序是如何建立起来的 确定软件开发周期7个阶段包括了信息

[翻译] API测试最佳实践 - 组织你的测试

组织你的测试 适用级别:初学者 在最底层,一个测试步骤(Test Step)用来验证一个单独的操作.组合若干测试步骤到测试用例,允许你验证那些被分隔出来的一个一个的功能,这些功能是应用程序所需要的.接下来,若干个测试用例可以组成一个测试套件(Test Suite),验证其中一个交付物的完整功能,这是用户想要的.最后,组合若干测试套件到一个测试工程(Test Project),就能验证一个完整产品的功能了. 词语工程(Project)和套件(Suite)某些情况下可以互换使用,但是意思都差不多,包

测试_QTP使用

1.Qtp是什么? QTP是Quick Test Professional的简称,是一种自动测试工具.使用QTP的目的是想用它来执行重复的自动化测试,主要是用于回归测试和测试同一软件的新版本.(百度百科) loadrunner.Selenium.QTP三者区别? Loadrunner是商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试. Selenium是开源的web自动测试工具,免费,主要做功能测试. QTP是商业的功能测试工具,收费,支持web,桌面自动化测试. 2.测试用例网站 测

系统测试与端到端测试:哪一个更适合选择?

在软件行业,我们总是在选择更快的版本和质量的版本之间的两难选择,但是两者之间总是有一个很好的平衡.我们都期望速度和质量同时,这是一个相当困难的一个. 测试下软件产品的寿命 什么是系统测试? 为什么系统测试很重要? 什么时候开始系统测试? 什么是端到端测试? 为什么端到端测试很重要? 什么时候开始端到端的测试? 系统测试与端到端测试的区别 系统测试还是端到端测试还是两者兼而有之? 测试下软件产品的寿命 一旦从客户获得业务需求,产品的生命周期就开始了.负责该项目的有关小组将对此进行彻底分析,并进一步