• 11
  • 11
分享
  • 软件测试知识点汇总——软件测试圈
  • 恬恬圈 2022-02-14 11:50:49 字数 3542 阅读 2768 收藏 11

软件测试是软件生存周期中必不可少的环节,软件的典型生存周期可以用下图来形容:

1.jpg

软件测试的目的是尽可能早的发现软件缺陷并确保其得以修复,因此软件测试是提高软件质量的重要手段,大量的经验实践证明,软件测试越早参与到软件开发过程中,开发出来的软件质量相对越高,时间和物力也越经济。

根据软件工程的基本理论,多模块程序的测试共包括以下4个层次:

2.jpg

各阶段测试的具体内容会在以后章节具体介绍,下面介绍一下软件测试的经典技术。

软件测试的经典技术分为黑盒测试和白盒测试技术。其中黑盒测试技术忽略程序内部结构,看不到程序的代码细节,只针对程序的功能进行测试,黑盒测试的方法有:

3.jpg

具体方法会在以后章节中具体介绍,敬请期待。

说完黑盒测试,就该介绍白盒测试了,白盒测试也称结构测试,白盒测试深入程序内部结构,分析程序代码结构,因此学好白盒测试,首先要掌握必要的编程语言,比如说Java或者C/C++/C#等。白盒测试的方法有:

4.jpg

白盒测试的方法要涉及到程序图和流程图的设计,逻辑覆盖主要利用程序图,路径覆盖主要利用流程图,测试者必须能够根据程序的代码结构画出相应的程序图和流程图,白盒测试的方法也会在以后的章节中具体介绍。

本节主要介绍一下层次测试的第一步——单元测试。在了解单元测试之前先看一个简单的主程序树状模块图:

5.jpg

所谓模块测试就是在底层进行的测试,如上图,单元测试就是测试上图中紫色的模块。单元测试是整个测试的基础,单元测试中发现的错误约占程序总错误数2/3,单元测试的目标是通过对程序底层模块的静态和动态测试使底层模块达到模块说明的要求。

单元测试主要测试5方面的的问题:

6.jpg

模块的接口测试主要检查数据能否正确地通过模块;数据结构测试目的在于保持程序内部数据的完整性;重要路径测试是单元测试的一项基本任务,主要做好覆盖分析;程序最容易在边界上出错,因此边界条件测试是必不可少的;错误处理测试要点是在工作中发生了错误,其中的错误处理措施是否有效。

单元测试的一般步骤:

7.jpg

编译过程中主要检查对象就是代码中的语法错误;静态分析器检查使用专用工具来进行分析,代码审查主要依靠人工,第二步和第三步都是以检查结构性错误为主的静态分析;动态测试是单元测试的最后步骤,重点是发现单元的功能型错误,可采用白盒测试或者黑盒测试方法进行测试,白盒测试和黑盒测试会在以后进行详细介绍,这里知道有这两种方法即可。

代码评审有两类组织形式:一、办公桌检查,由程序员自己审查自己的代码,仅适用于规模很小的程序。二、以小组会的方式进行,又分为走查和代码会审两种,适用于各种规模的程序。

单元测试不是独立的程序,在多模块程序中,模块之间可以相互调用,单元测试时往往需要为被测模块编制若干模块替身,替身模块仅是真实模块的简化,仅需模拟与被测模块直接相关的一部分功能。

根据经验总结,在单元级发现问题时,问题肯定就在那个单元中,如果在多个单元模块集成时发现缺陷,那么它一定与模块之间的交互有关。在实际情况中,有很少的例外。

好的,本节到此结束,下一节将详细介绍层次测试的第二步——集成测试。

本节主要介绍一下层次测试的第二步——集成测试。上一节我们已经在一定程度上了解了单元测试,这一节我们要讲解的集成测试就是建立在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统而进行的测试,也称为联合测试或组装测试。

集成测试应由独立于开发人员的测试小组负责实施。集成测试重点测试所有模块的接口部分,需设计测试过程所使用的驱动模块和桩模块,在单元测试时为被测试模块做的上下级模块做的替身分别称为驱动模块和桩模块。测试方法以黑盒为主。集成测试的方案大致可分为有三种,分别是自顶而下、由底向上以及从两头逼近的混合模式。看下面程序模块:

8.jpg

1、自顶而下

自顶而下的测试从顶模块开始,沿被测程序的结构图逐步向下测试,按照移动路线的差异,又可区分为两种不同的实施步骤,分别是先广后深和先深后广两种,以上图为例,先广后深的组装顺序:

M1——M2——M3——M4——M5——M6——M7——M8

先深后广的组装顺序:

M1——M2——M5——M8——M6——M3——M4——M7

自顶而下的测试要使用桩模块,如下图显示了先深后广的测试步骤:

9.jpg

10.jpg

11.jpg

其中,S2、S3、S4、S5、S6和S8分别是M2、M3、M4、M5、M6和M8的替身。

2、由底而上

由底而上模式的典型步骤:

  • 从下层找出一个没有下层模块作为开始模块,由下向上逐步添加新模块,组成程序中的一个子系统或模块群。

  • 从另一子系统或模块群中选出另一个无下级模块开始,按步骤1进行组成一个新的子系统。

  • 重复上一步,直到得出所有子系统,最后组装成完整的系统。

例图程序模块可能的组装顺序:

M8——M5——M6——M2

M7——M4——M3——M1

3、混合模式

混合模式是以上两种模式的综合,其一般步骤:

  • 对上层模块采取自顶向下测试

  • 对关键模块或子系统采取由底向上测试

此种模式兼有以上两种模式的优点,应用也最广泛。

以上三种模式是从一个模块开始,测一次添一个模块,组装程序类似于滚雪球,所以统称为渐增式。三种模式都有各自的优缺点,综合起来,混合模式正在与扬长避短,综合了两种模式的优点,建议多采用混合模式进行总装。

好的,本节到此结束,下一节将详细介绍层次测试的第三步——确认测试。

经过了单元测试和集成测试的学习,组装测试已经完成,接下来要进行的就是确认测试,那么本节就主要介绍确认测试。确认测试又称有效性测试或合格性测试,其任务是验证系统的功能、性能等特性是否符合需求规格说明。如下图:

12.jpg

有效性测试和软件配置审查是确认测试最重要的两项工作。

确认测试一般是在模拟的环境或者就是开发环境下运用黑盒测试法,按照需求说明书,验证软件功能、特性是否与用户需求一致。经过确认测试后,可能有以下两种情况:

  • 软件的功能、性能及其他要求均已经满足需求说明书,可能被认为是合格的软件。

  • 发现软件与需求说明书有较大的偏离,得到一个缺陷清单。这样的错误,工作量非常大,往往很难在交付期以前把发现的缺陷修复过来。此时需要开发部门和用户一起协商进行解决。

软件配置审查也称配置审计,指软件工程过程中所产生的所有信息项:文档、报告、程序、表格、数据等。此阶段主要复查SCI是否齐全,检查软件的所有文档资料的完整性和正确性,然后对发现的缺陷,进行修复,最后编排好目录,以便后期维护顺利进行。

确认测试继集成测试之后进行,其目的在于确认组装完毕的程序是否满足需求说明书。确认测试是由软件开发单位组织实施的最后一项开发活动,测试结束后,软件就交付验收了,因此开发单位必须十分重视这项工作,和集成测试一样,也应由独立测试小组负责实施。

好的,本节到此结束,下一节将详细介绍层次测试的第四步——系统测试。

经过了前面的总结,今天该到层次测试的最后一步——系统测试了,系统测试是验收工作的一部分,应由用户单位组织实施。软件开发单位应该为系统测试创造良好的条件,负责回答和解决测试中可能发现的一切质量问题。

系统测试是在更大范围内进行测试。除被测试程序外,系统还可能包括硬件和原有的其他软件。系统测试的目的在于把软件产品顺利安装到系统中以后,保证软件与系统其余部分协调工作,并且符合软件需求说明书的要求。

下面说一下集成系统的测试,下图是集成系统测试的测试内容:

13.jpg

其中:

功能测试主要检查软件功能是否符合需求说明的要求,基本方法是构造一些合理的输入,检查是否得到期望的输出,假如输入范围是无限的,关键在于寻找等价区间,还有一种有效的测试方法就是边界值测试,会在以后具体介绍。

性能测试是用来测试软件在集成系统中的运行性能,特别是针对实时系统和嵌入式系统,常常与强度测试结合起来进行。

安全性测试是为了保证安装在系统内的保护机制能在实际运行中保护系统不受非法侵入等非法行为的干扰,测试过程中需要设置一些测试用例试图突破系统的安全保密措施,检验系统是否有安全保密的漏洞。

恢复测试目的在于保证系统受到某些外部事故的破坏时能够重新恢复正常工作,可以通过各种手段,强制性地使软件出错而不能正常工作,进而检验系统恢复能力。

强度测试主要是在一些极限条件下,检查软件系统的运行情况,例如一些超常数量的输入数据、超常数量的用户、超常数量的网络连接,这对于了解软件系统的性能和可靠性、健壮性具有十分重要的意义。

文档测试主要检查文档的正确性、完整性和可理解性。正确性指不要把软件的功能和操作写错,也不允许文档内容前后矛盾;完整性是指文档不可以虎头蛇尾,更不允许漏掉关键内容;可理解性指文档内容让大众用户看得懂、能理解。


作者:6个小石头

原文链接:https://blog.csdn.net/LiuJiuXiaoShiTou/article/details/72808451

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •  常见的软件测试用例设计方法,个人认为主要是下面这6种:  1)流程图法(也叫场景法)  2)等价类划分法  3)边界值分析  4)判定表  5)正交法  6)错误推测法  这6种常见方法中,我分别按照定义、应用场景、使用步骤、案例讲解这4个部分进行讲解。  所以本文行文结构如下:  1、每种用例方法定义、应用场景、使用步骤、案例讲解  2、每种用例方法应用场景的区别  3、深入学习资料分享  一、流程图法(也叫场景法)  1、使用场景  所谓流程图法,就是专门针对软件业务流程测试的方法。  2、什么是业务流程?  业务流程,是指客户在使用软件的过程中,为了达成自身的所想要的目的,按照指定的顺...
            0 1 4985
            分享
          • 关于测试用例设计的方法,相信每一位测试工程师都会如数家珍,我更是在很多测试工程师的简历上看到了「精通测试用例设计的基本方法」。但到面试时一问,却发现不少候选人也仅能说出一些概念性的东西,对这些方法的理解还不够深入和透彻,在实际设计用例的过程中更是不知道这些方法该怎么用。这一节,我就以测试用例设计基本方法中最常用的等价类划分法和边界值法为例,重新梳理这些方法,让大家对这测试用例的设计方法有更深入的理解和认识。等价类划分法关于等价类划分法的基本定义和概念,这里就不赘述了。我们需要理解,等价类划分法的意义,在于选择合适的数据子集来代表整个数据集,以实现用尽可能少的用例做完整的覆盖。等价类对应的功能点...
            0 0 44
            分享
          •   作为一个30+的女性IT从业者,在体力、精力等方面已经远远赶不上年轻人了,不管是在日常的工作中还是面试中,都处于弱势地位。  30+的女性,在面试的时候,面试官都会问到一个问题,就是婚育情况,没结婚的问有没有对象,有了对象的问啥时候结婚,结了婚的问有没有孩子,有孩子的问要不要二胎三胎等等。  这些问题也成为女性员工就业、升职等的重要影响因素,只要有一项回答的不满意,你就会被pass掉,因为招聘者也怕你去他公司生孩子,毕竟产假那么长时间,有了孩子的怕你因为孩子耽误工作。那么我们作为一个30+的女性,应该如何应对这些情况呢,或者说如何打破这种困境呢?  做好充分准备  接到面试通知的时候,不能...
            0 0 969
            分享
          •   其实我随便看到就投的额,看到薪资挺高的。感觉40K太假,30K很虚,所以你懂的,中级哦。  笔试  就是所谓的心理测试题,大疆的特色。  一面  约了下午面试,随便找个地方,远程视频,他们都是两个人+一个HR。  几乎没有问什么技术问题,就问了几个:  1.自我介绍  2.有个bug你怎么跟开发说,他说没有办法解怎么办?  答:我说首先参照指标或者竞品,如果不满足指标一定要解决,如果比竞品差太多也一定要解决,如果差别不大,就CCB,给项目经理或者领导决策咯。  3.你怎么测需求,如果保证需求是正确的。  4.性能怎么测试,流畅度和响应速度怎么测试?  5.为什么离职?  答:我想换个行业,...
            0 0 2222
            分享
          •   根据美国商标和专利局(USPTO)公示的最新清单,苹果获得了一项涉及全自动 / 半自动驾驶汽车内部的智能桌子。  根据专利描述,该智能桌子配有力传感器、运动执行器等多种传感器,可以自由度(DOF)移动。  苹果在玻璃台面下放置一个显示器,可以用作大型显示器。苹果还指出,这张桌子的次要用途可能是用于未来的办公室或家庭办公室,专利中并没有关于该场景未来应用的详细信息。作者:佚名原文链接:新浪科技_新浪网(sina.com.cn)
            0 0 797
            分享
      • 51testing软件测试圈微信