2 按是否覆盖源码划分
白盒测试:又称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒指的是打开盒子,去研究里面的源代码和程序结果,对代码进行测试。(白盒测试也是接口测试的一种)
黑盒测试:也称为功能测试,测试中把被测的软件当成一个黑盒子, 不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。黑盒测试又分为功能测试和性能测试。
功能测试:
业务测试:测试人员将系统的整个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。
易用性(Useability) 是交互的适应性、功能性和有效性的集中体现,又叫用户体验测试。
界面测试(简称UI测试), 测试用户界面的功能模块的布局是否合理、整体风格是否一 致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元索的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。
安装测试:是指测试程序的安装、卸载。最典型的就是APP的安装、卸载。
兼容性测试:主要是指软件之间能否很好的运作,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。例如最常见的是浏览器的兼容性测试不同浏览器在CSS js解析的不同会造成页面的不同。
性能测试:检查系统是否满足需求规格说明书中规定的性能。通常表现在以下几个方面: 对资源利用(如内存、处理机周期等)进行的精确度量、对执行间隔、日志事件(如中断,报错)、响应时间、吞吐量(TPS)、辅助存储区(例如缓冲区、工作区的大小等)、处理精度等进行的监测。
灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。(灰盒测试:功能+接口)
3 按是否执行程序划分
3.1 静态测试
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
3.2 动态测试
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
4 按是否自动化分
4.1 手工测试
手工测试就是由人去一个个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。
优点:自动化无法替代探索性测试,发散思维类无既定结果的测试。
缺点:执行效率慢,量大易错。
4.2 自动化测试
自动化测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
自动化测试有:测试自动化、性能测试自动化、安全测试自动化。(一 般情况下,我们说的自动化是指功能测试的自动化)
自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。 接口测试的ROI (产出投入比)要比UI测试高。
自动化实施的步骤:
(1)完成功能测试,版本基本稳定。
(2)根据项目特性,选择合适项目的自动化工具,并搭建环境。
(3) 提取于工测试的测试用例转换为自动化测试的用例。
(4) 通过工具、代码实现自动化的构造输入、自动检测输出结果是否符合预期。
(5)生成测试自动化报告。