|
在讨论这个话题之前先来说说什么是软件测试吧!
目前软件测试的定义并没有明确的标榜下来,也没有经典的定义。就我个人的理论学习层面的理解:在实施这个活动之前应该具备的两大条件:1.环境;2.方法。总的大概可以这么来说:软件测试就是在一定的硬件、软件及其网络等环境下,遵循一定测试规则要求,采用一定的测试工程或使用辅助工具来度量软件质量的一个过程。测试的终极目标是生产出高质量的产品,更好的满足客户的需求,从而为生产者实现更高的收益。
知道了它的存在形式和存在目的,那么接下来就来讨论一下它的实施过程吧。
软件开发的过程遵循其一定的生命周期包括:计划、需求、概要设计、详细设计、编码、测试、运行和评价等一系列的过程。如果围绕其阶段来说,软件测试可以分为单元测试、集成测试、系统测试。
单元测试的测试对象是一个或者一组函数,主要是看软件的编码与详细设计的符合程度。
集成测试的测试对象则是子系统或模块,主要是看软件的编码与概要设计的符合程度。
系统测试的测试对象则是一个完整的软件系统,主要是看软件与需求的符合程度。
在实施这三者的同时,为了能够更高效的实现三者,我们还是用了一个测试手段——回归测试。
回归测试简单可以理解成是软件测试的第二次实施,也就是居于上一次测试的基础进行相同测试,往往测试人员在进行完测试以后,如果发现某个地方出现了BUG,提交给测试人员后,开发人员修改完,测试人员再做进一步的验证的过程。
以上讨论到软件开发的生命周期中还说道测试,则主要偏重于开发后期的系统测试以及验收测试。
验收测试主要是指在软件开发后期的一个收尾工作,就是软件成形地开发出来以后进一步做校对验证其各个功能点的过程,这个过程主要是面向于用户来实施的。但是,生产者不可能模拟出所有的用户来进行校验,于是在验收测试的过程中就采用了两种方式来补充施行:1.alphal测试;2.beta测试。
alphal测试主要是在公司内部进行模拟用户环境进行测试;而beta则是利用外面的用户群体进行测试,也就是我们通常所说的公测了。
另外,换个维度来分析,软件测试有还可以将它划分为:白盒测试、灰盒测试和黑盒测试。而这三种测试则主要与以上所说的单元、集成和系统测试分别对应。
白盒测试主要是指居于代码逻辑方面的测试,灰盒测试则是居于函数接口的测试,黑盒测试则是居于功能角度方面进行考虑。但,测试的形式也是可以互相转换通用的,在进行单元测试的时候也可以使用黑盒手段来进行。
谈了测试的主要进行方式后,那么接下来再来继续说说测试具体是怎样来实施的。
居于单元、集成和系统测试而论:每种测试方式都离不开四个阶段1.测试计划阶段;2.测试设计阶段;3.测试实现阶段;4.测试执行阶段。
也就是说,单元测试分别有它的单元测试计划、单元测试设计、单元测试实现以及单元测试执行各个阶段,那么集成测试和系统测试也雷同。
在测试计划阶段主要是围绕各自的开发时的设计文档来展开的,系统测试是围绕需求规格说明书,集成测试围绕概要设计,单元测试围绕详细设计进行。在开展的过程中都有相应有几个要素:角色、入口、入口准则、活动、出口、出口准则、评审和审计、可管理和受控的工作产品、测量、书面规程、培训和工具等。必备的这主要抓住入口、入口准则、活动、出口、出口准则几个要素。
测试的整个过程其实都是文档化的可管理过程,所以在测试的每一个阶段都会形成相应的一些文档。
打个比方,假如现在进行一个系统测试。
那么,在系统测试计划阶段:输入的是《软件开发计划》、《软件测试计划》、《需求规格说明书》,输出《系统测试计划》;计划阶段:输入《需求规格说明书》、《系统测试计划》,输出《系统测试方案》;实现阶段:输入《需求规格说明书》、《系统测试计划》、《系统测试方案》,输出《系统测试用例》、《系统测试规程》及《系统测试预期测试项》;执行阶段:输入《系统测试计划》、《系统测试方案》、《系统测试用例》、《系统测试规程》及《系统测试预期测试项》,输出《系统测试预测试报告》、《系统测试报告》、《软件缺陷报告》。
同样,集成测试和单元测试也按照同样的方式进行。
在测试的过程中则对应有不同的角色对实施的不同阶段进行管理,分别有:软件开发项目经理、软件开发工程师,软件经理,QA、CCB负责人、软件测试项目经理及软件测试工程师等,对应的由他们来进行施行,展开工作。 |
|