软件工程——软件测试的策略详解,音视频时代你还不会NDK开发

  1. 桩模块(stub)——也叫做存根模块,用以代替被测

模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。被测模块、与它相关的驱动模块及桩模块共同构成一个“测试环境”,如下图所示。

在这里插入图片描述

组装测试

===================================================================

组装测试(integrated testing)也叫做集成测试或联合测试。通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统,

把模块组装为系统的方式有两种:一次性组装方式(big bang)和增值式组装方式。

一次性组装方式


  1. 一次性组装方式。它是一种非增值式组装方式,也叫做整体拼装。使用这种方式,首先对每个模块分别进行模块测试,然后再把所有模块组装在一起进行测试,最终得到要求的软件系统。

  2. 例如,有一个模块系统结构,如下图(a)所示,其单元测试和组装顺序(b)所示。

在这里插入图片描述

图中,模块d1,d2,d3,d4,d5是对各个模块作单

元测试时建立的驱动模块,s1,s2,s3,s4,s5是为单元测试而建立的桩模块。这种一次性组装方式试图在辅助模块的协助下,在分别完成模块单元测试的基础上,将被测模块连接起来进行测试。但是,由于程序中不可避免地存在涉及模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性不很大。

增值式组装方式


  1. 增值式组装方式。这种组装方式又称渐增式组装,首先是对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题。最后通过增值逐步组装成为要求的软件系统。

增值组装有以下3种做法

==========================================================================

自顶向下的增值方式


自顶向下的增值方式。这种组装方式是将模块按系统程序结构,沿控制层次自顶向下进行组装,其步骤如下:

  1. 以主模块为被测模块兼驱动模块,所有直属于主模块 的下属模块全部用桩模块代替,对主模块进行测试。

  2. 采用深度优先(如下图)或宽度优先的策略,逐步用实际模块替换已用过的桩模块,再用新的桩模块代替它们的直接下属模块,与已测试的模块或子系统组装成新的子系统。

在这里插入图片描述

  1. 进行回归测试(即重新执行以前做过的全部测试或部分测试),排除组装过程中引入新的错误的可能。

  2. 判断是否所有的模块都已组装到系统中,若是则结束测试,否则转到步骤2去执行。

  3. 自顶向下的组装和测试存在一个逻辑次序问题。在为了充分测试较高层的处理而需要较低层处理的信息时,就会出现这类问题。在自顶向下组装阶段,还需要用桩模块代替较低层的模块,

  4. 根据不同情况,桩模块的编写,可能如下所示的几种选择。

在这里插入图片描述

为了能够准确地实施测试,应当让桩模块正确而有效地

模拟子模块的功能和合理的接口,不能是只包含返回语句或只显示该模块已调用信息,不执行任何功能的哑模块。

自底向上的增值方式


这种组装方式是从程序模块结构的最底层的模块开始组装和测试。

因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块。在模块的测试过程中需要从子模块得到的信息可以由直接运行子模块得到。

自底向上增值的步骤如下:

  1. 由驱动模块控制最底层模块的并行测试;也可以把最底层模块组合成实现某一特定软件功能的簇,由驱动模块控制它进行测试。

  2. 用实际模块代替驱动模块,与它已测试的直属子模块组装成为子系统。

  3. 为子系统配备驱动模块,进行新的测试。

  4. 判断是否已组装到达主模块。若是则结束测试,否则执行步骤2。

自底向上进行组装和测试时,需要为被测模块或子系统编制相应的驱动模块。常见的几种类型的驱动模块如下图所示。

在这里插入图片描述

混合增值式测试


自顶向下增值的方式和自底向上增值的方式各有优缺点。自顶向下增值方式的缺点是需要建立桩模块。

自底向上增值方式的缺点是“程序一直未能作为一个实体存在,直到最后一个模块加上去后才形成一个实体”。

通常是把以上两种方式结合起来进行组装和测试。

确认测试


确认测试(validation testing)又称有效性测试。它的任务是验证软件的有效性,即验证软件的功能和性能及其他特性是否与用户的要求一致。在确认测试阶段需要做的工作如下图所示。 在这里插入图片描述

从上图中可看出,首先要进行有效性测试以及软件配置复审,然后进行验收测试和安装测试,在通过了鉴定之后,才能成为可交付的软件。

进行有效性测试(黑盒测试)


  • 有效性测试是在模拟的环境(可能就是开发的环境)下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。

  • 需要首先制订测试计划,规定要进行测试的种类。还需要制订一组测试步骤,描述具体的测试用例。通过实施预定的测试计划和测试步骤,确定软件的特性是否与需求相符,确保所有的软件功能需求都能得到满足,所有的软件性能需求都能达到,所有的文档都正确且便于使用。同时,对其他软件需求,如可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测试,确认是否满足。

软件配置复查


  • 软件配置复查的目的是保证软件配置的所有成分都齐全,各方面的质量都符合要求,具有维护阶段所必须的细节,而且已经编排好分类的目录。

  • 除了按合同规定的内容和要求,由人工审查软件配置之外,在确认测试的过程中,应当严格遵守用户手册和操作手册中规定的使用步骤,以便检查这些文档资料的完整性和正确性。必须仔细记录发现的遗漏和错误,并且适当地补充和改正。

α测试和β测试


  • α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。软件在一个自然设置状态下使用,开发者坐在用户旁边,随时记下错误情况和使用中的问题。

  • α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持),尤其注重产品的界面和特色。

  • β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。这些用户是与公司签定了支持产品预发行合同的外部客户。

  • 与α测试不同的是,开发者通常不在β测试现场,由用户记下遇到的所有问题。开发者在综合用户的报告之后进行修改,最后将软件产品交付给全体用户使用。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

实战项目、讲解视频,并且后续会持续更新**

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-vrtv2Swh-1712797330000)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值