对于刚从学校出来的学生来说,大家可能对软件测试生疏些,而对软件研发都再不过的熟悉了,今天就介绍下软件测试理论:
测试目的:
测试的目的是为了发现尽可能多的缺陷。成功的测试在于发现了迄今尚未发现的缺陷,所以测试人员的职责是为了发现更多的缺陷而设计测试用例,它能有效地揭示潜伏在软件里的缺陷。
常用的测试模型(测试生命周期)
常用的测试模型有:瀑布模型、V模型、W模型;
瀑布模型是按工序将问题化简,将功能的实现与设计分开,采用机构化的分析与设计方法将逻辑实现与物理实现分开。自上而下分为需求分析、制定计划、编写测试用例、软件测试、验收测试;
V模型是最为明确的描述了开发阶段与测试阶段的对应关系,比如在单元测试对应开发阶段是编码,集成测试对应的开发阶段是详细设计,系统测试对应的开发阶段是概要设计,最后的验证测试对应的开发阶段是验收测试;
W模型是伴随整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,测试与开发是同步进行的,比如在用户需求阶段测试人员应根据用户需求验收测试用例设计,在需求分析阶段测试人员应进行调研确定系统测试用例设计,概要设计阶段测试人员应进行集成测试的设计,详细设计阶段测试人员应进行单元测试的设计,编码阶段测试人员应进行单元测试,在集成(对系统模块的连接)阶段进行集成测试,在实施(是否满足用户需求)阶段应进行确认测试和系统测试,在交付阶段应对软件进行验收测试;
测试范围
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. 测试流程
立项阶段
在立项阶段测试人员应准备好根据用户需求验收测试用例设计,说明项目是可行的。我们要大概知道客户的要求是怎么样,以好使自己的心里有具底,以便以后做测试计划和用例的设计。
需求阶段
在需求分析阶段测试人员应参加到调研工作中,以便对测试计划和测试用例的编写,帮着研发人员整理初步的解决方案。
设计阶段
在设计阶段中测试人员的工作就多了,一是要对系统中的功能进行用例设计,二是编写测试计划,三是要帮着研发人员整理详细设计说明书;