软件测试概论

雨燕双飞 提交于 2020-04-07 04:53:33

对于刚从学校出来的学生来说,大家可能对软件测试生疏些,而对软件研发都再不过的熟悉了,今天就介绍下软件测试理论:

  1. 测试目的:

      测试的目的是为了发现尽可能多的缺陷。成功的测试在于发现了迄今尚未发现的缺陷,所以测试人员的职责是为了发现更多的缺陷而设计测试用例,它能有效地揭示潜伏在软件里的缺陷。

  2.  常用的测试模型(测试生命周期)

    常用的测试模型有:瀑布模型、V模型、W模型;

          瀑布模型是按工序将问题化简,将功能的实现与设计分开,采用机构化的分析与设计方法将逻辑实现与物理实现分开。自上而下分为需求分析、制定计划、编写测试用例、软件测试、验收测试;

      V模型是最为明确的描述了开发阶段与测试阶段的对应关系,比如在单元测试对应开发阶段是编码,集成测试对应的开发阶段是详细设计,系统测试对应的开发阶段是概要设计,最后的验证测试对应的开发阶段是验收测试;

          W模型是伴随整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,测试与开发是同步进行的,比如在用户需求阶段测试人员应根据用户需求验收测试用例设计,在需求分析阶段测试人员应进行调研确定系统测试用例设计,概要设计阶段测试人员应进行集成测试的设计,详细设计阶段测试人员应进行单元测试的设计,编码阶段测试人员应进行单元测试,在集成(对系统模块的连接)阶段进行集成测试,在实施(是否满足用户需求)阶段应进行确认测试和系统测试,在交付阶段应对软件进行验收测试;

  3.  测试范围

  1、功能性,包括适合性方面、准确性方面、互操作性方面、安全保密性方面,功能性依从性;

  2、可靠性,包括成熟性方面、容错性方面、可靠性依从性;

  3、易用性,包括易操作性方面、吸引性方面,易用性依从性;

  4、兼容性,包括硬件兼容性方面、软件兼容性方面、数据兼容性方面(XML符合、数据库移植)、新旧系统数据迁移等方面;

  5、性能性,包括对系统的瓶颈进行压力测试、对系统进行负载测试、配置测试;

 4.  测试方法

  软件测试方法有很多,在不相的时期都有不同测试方法这样有助于提高测试效率。

  软件方法有:白盒测试、墨盒测试、灰盒测试;按软件生命周期可分为:单元测试、集成测试、系统测试、确认测试;其中常用的功能性测试方法包括:UI测试、数据测试、操作测试、接口测试;常用的性能测试方法包括:压力测试、负载测试、兼容性测试、安全性测试;其它测试方法包括:BVT测试(我们常说的冒烟测试)、回归测试、α测试、β测试;

  这里我们选择常用的测试方法加以说明:

  白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作,也就是要对软件的源代码进行测试。

墨盒测试也称功能测试是软件测试行业中常用的测试方法,它是通过测试来检测每个功能是否都能正常使用,不了解程序内部是怎么工作的,只注意输入什么输出什么;

  灰盒测试是介于白盒测试与黑盒测试二者之间,补充了白盒测试和墨盒测试的不足,是大型企业中常用的测试方法;

  压力测试是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确运行的能力。比如对上传这个动作进行压力测试,一次上传1KB大小文件是可通过的,那么我们上传10M的文件看系统的反应会怎样;

  负载测试用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么程度。比如对登陆动作进行负载测试,1个用户登陆系统可通过,那么我们用1000个用户同时登陆系统看系统能否通过;

  BVT测试是按先后的顺序的,如果测某两个功能时,这两个功能有先后顺序,第二个功能需求第一个功能的值,则第一个功能未实现,那就不用去测试第二个功能了;

  回归测试(regression test)是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。比如修改了某个功能,则把该功能有关联的测试用例找出重新执行;

  α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。

  β测试是由软件的多个用户在客户场地实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场.因而,β测试是在开发者无法控制的环境下进行的软件现场应用

  4.  测试用例

  用例的设计是要分类的,用不同的测试方法用例的设计是不同。不要把用墨盒测试方法的测试用例拿去白盒测试,那就张冠李戴了对吧,只有对症下药才是解决问题的根源。好了要想设计出一个好的测试用例,我们应该先明确是用什么测试方法,具体用例设计方法如下:

  墨盒测试的用例设计方法:等价类划分、边界值分析、因果图、判定表驱动法、正交试验、比较法、错误推测

  白盒测试的用例设计方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖

  灰盒测试的用例设计方法:墨盒测试和白盒测试的用例设计方法都可能用到;

  5.  测试工具

  常用的测试工具有:

  性能化测试工具:LoadRunner

  自动化测试工具:QTP(QuickTest Professional)

  缺陷管理工具:QC(Quality Controller)、TD(Test Director)

 6.  测试流程

立项阶段

在立项阶段测试人员应准备好根据用户需求验收测试用例设计,说明项目是可行的。我们要大概知道客户的要求是怎么样,以好使自己的心里有具底,以便以后做测试计划和用例的设计。

需求阶段

在需求分析阶段测试人员应参加到调研工作中,以便对测试计划和测试用例的编写,帮着研发人员整理初步的解决方案。

设计阶段

在设计阶段中测试人员的工作就多了,一是要对系统中的功能进行用例设计,二是编写测试计划,三是要帮着研发人员整理详细设计说明书;

编码(单元测试)阶段

在编码阶段测试人员对已完成的功能执行用例,至于单元测试由研发人员完成。如果发现问题询问研发人员,如果是BUG则提示BUG;

集成测试阶段

在集成测试阶段中测试人员应把注意力发在接口,和几个模块或功能的交接处,并参考详细设计说明书进行测试;概要设计的对象主要为系统,系统子系统,模块,子模块,函数等,通过体系结构进行模块的划分,并进行数据设计、接口设计,对其进行分解描述,依赖关系描述,接口描述等,并保持模块与需求的对应关系,因此,对集成测试的重点,将主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能。

系统测试阶段

在系统测试阶段中,说明软件已初步建立,但还要与硬件、外设、网s络等其他元素放在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。还要完善软件的各种的书写,如用户操作手册、部署安装手册、根据测试计划整理阶段性测试报告,

系统测试主要验证功能是否符合需求规格的定义,是一种在实际环境下的测试,同时也是全面的系统级测试,其内容包括产品功能、性能指标、兼容性、可靠性、容错能力、可维护性、安全性等方面;

验收测试阶段

验收测试阶段是系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制。

     验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

结项总结阶段

在结项总结阶段一般由项目经理对所有测试人员的资料汇总进行总结性的汇报,比如:这个项目用的什么生命周期,在某个阶段进行的什么工作以及完成率怎样,总共用的人力物力等。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!