验收测试:验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。它的测试数据通常是系统测试的测试数据的子集。。。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。
回归测试:回归测试一般是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性。
软件测试主要有四个阶段:单元测试,集成测试,系统测试和验收测试。
单元测试
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试通常也是由开发编写的(白盒测试的一种)。可以使用的方法有静态代码分析,数据流分析,代码覆盖分析等。
集成测试
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。一个有效的集成测试有助于解决相关的软件与其它系统的兼容性和可操作性的问题。
系统测试
系统测试,是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。
验收测试
验收测试是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
软件测试方法从不同的角度去看有很多定义的方法。
静态&动态划分
静态测试包括代码检查,静态结构分析,代码质量度量等。代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编写风格问题,包括变量检查、命名和类型审查、语法检查和程序结构检查等内容。在实际使用中,代码检查比动态测试更有效,能快速找到缺陷,发现30~70%的逻辑设计和编码缺陷;代码检查看到的是问题本身而非征兆。但是代码检查是非常耗费时间的,而且代码检查需要知识和经验的积累。代码检查应在编译和动态测试之前进行,在检查前,应准备好需求描述文档、程序设计文档、程序源码清单、代码编码标准和代码缺陷检查表等。静态测试具有发现缺陷早、降低返工成本、覆盖重点和发现缺陷概率高的优点,缺点是耗时长、对技术能力要求高,不能测试依赖。
动态测试是指通过运行被测程序,检查运行结果与期望结果的差异,并分析运行效率和健壮性,主要包含三种方法:构造测试实例、执行程序、分析程序的输出结果。目前动态测试也是多数公司的测试工作的主要方式。
“盒子”划分
软件测试方法传统上可以分为白盒测试跟黑盒测试。所谓白盒或者黑盒,最简单的区别就是程序源代码是否对测试人员可见。
白盒测试
又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒法全面了解程序内部逻辑结构,对所有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。白盒测试方法有API测试,代码覆盖率测试,错误注入测试,程序变异测试以及静态测试。
白盒测试的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
黑盒测试
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,程序被看做一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序是否按照需求规格说明书规定的正常使用,程序是否能适当地接收输入数据并产生正确的输出信息。主要针对软件界面和软件功能进行测试。黑盒测试方法主要包含等价类划分法,边界值分析法,决策表法,因果图法,模块测试,模糊测试,用例测试,探索测试还有根据需求规格制定的测试等。
灰盒测试
灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
1. 等价类划分
2. 边界值分析 —- 考虑边界条件选取测试用例的一种黑盒测试方法
3. 因果图 ——对等价划分的扩展,等价类的组合判定表
4. 状态图
5. 场景法 —事件触发时的场景便形成的场景
边界值分析:
正好等于,刚刚小于和刚刚大于边界值,而不是选取每个等价类内的典型值或任意值作为测试数据
bug的等级划分
致命级
严重级
一般级
提示级