1.静态测试
定义:
静态测试是指不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。 包括对代码测试、界面测试和文档测试三个方面: 对于代码测试,主要测试代码是否符合相应的标准和规范;对于界面测试,主要测试软件的实际界面与需求中的说明是否相符;对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求。
优点:
帮助识别代码中的缺陷
测试由具有良好编码知识的训练有素的软件开发人员进行
这是查找和修复错误的快速简便方法
使用自动化工具,扫描和查看软件变得非常快
使用自动化工具可提供缓解建议
通过静态测试,可以在开发生命周期的早期阶段发现错误,从而降低了修复成本。缺点:
手动完成需要大量时间
自动化工具适用于少数编程语言
自动化工具可能会提供误报和漏报
自动化工具仅扫描代码
自动化工具无法查明可能在运行时产生麻烦的弱点
2.动态测试
定义:
动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
优点:
动态编码有助于识别运行时环境中的薄弱区域
即使测试人员没有实际代码,动态测试也支持应用程序分析。
它确定了静态代码分析难以找到的薄弱环节
它允许验证静态代码分析结果
它可以应用于任何应用程序缺点:
自动化工具可能会给出错误的安全性,即检查所有内容
自动化工具可能会产生误报和漏报
找到经过培训的动态测试专业人员并不容易
很难跟踪代码中的漏洞,修复问题需要更长的时间。因此,修复错误变得昂贵
3.黑盒测试
定义:
黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。
优点:
比较简单,不需要了解程序的内部的代码及实现
与软件的内部实现无关
从用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题
基于软件开发文档,所以也能知道软件实现了文档中的哪些功能
在做软件自动化测试时较为方便缺点:
不可能覆盖所有的代码, 覆盖率较低,大概只能达到总代码量的30%
自动化测试的复用性较低。
4.白盒测试
定义:白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
优点:
帮助软件测试人员增大代码的覆盖率。 提供代码的质量,发现代码中隐藏的问题
缺点:
程序运行会有很多不同的路径,不可能测试所有的运行路径
测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求
5.α测试
定义:
α测试是指软件开发公司组织内部人员模拟各类用户对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的 用户操作方式。经过α测试调整的软件产品称为β版本。
6.β测试
定义:
β测试是由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。β测试主要衡量产品的FLURPS,着重于产品的支持性,包括文档,客户培训和支持产品生产能力。 只有当α测试达到一定的可靠程度时,才能开始β测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。