测试的分类
一、测试金字塔
- 测试金子塔特点
1.越往上层投入产出比越低
2.越往上层效率越低
3.越往上定位问题越困难,定位问题成本越高 - 测试的时候主要将精力放在单元测试
二、按照开发结点划分测试类型(单元测试、集成测试、系统测试、验收测试)
- 单元测试:单元测试就是对系统或程序的最小功能单元进行测试,输入输出参数测试,边界测试,异常错误测试,路径测试局部数据结构测试(如何进行单元测试?Junit框架 白盒测试)
- 集成测试:把单元模块按照一定的策略组合起来形成一个大的功能模块,我们对这个模块进行测试,就叫做集成测试。接口测试,输入参数,全局数据结构测试,集成模块功能测试,单个模块的陷阱对整个集成后模块的影响,单个模块之间的功能是否有影响(灰盒测试)
- 系统测试:就是对我没给你的系统功能进行全面的测试。对系统功能进行全面的测试,功能、界面、兼容性、易用性、性能、安全、可靠性、可移植性(黑盒测试。回归测试、冒烟测试属于系统测试)
- 验收测试:用户来对系统进行全面测试,和系统测试的内容是一样的,包含一些文档测试(黑盒测试)
三、按照实施组织划分(α测试、β测试、第三方测试)
- α测试:其实就是在开发环境下,让非开发人员和非测试人员来进行系统测试。
- β测试:在用户和真实使用环境下,用户不受时间地点限制,进行测试,测试出的问题会反馈给开发人员,开发人员会不断进行修改直到没有问题。
- 第三方是第三方的软件测评机构按照一定的标准规范进行软件测试。
四、按照是否运行划分(静态测试、动态测试)
- 静态测试:不运行代码,检查,(代码走查,code review),看代码的书写规范,风格是否符合公司标准,看代码的逻辑结构,功能书否符合要求。
1.静态质量:度量所依据的标准是ISO9126。在该标准中,软件的质量用以下几个方面来衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可维护性(Maintainability)、可移植性(Portability)。 - 动态测试:动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
- 代码静态分析和文档测试都属于静态测试
- 大多数软件测试工作都属于动态测试。
五、按照是否手工划分(手工测试、自动化测试)
- 手工测试:手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。(具有一定的灵活性,探索性测试测试用例很多,比较繁琐,量大时间长容易出错。效率低)
- 自动化测试:提前按照一定的脚本设定的条件,让机器自动去执行。效率很高不会出错除非机器本身出现状况。
六、按照是否查看代码划分(黑盒、白盒、灰盒)
-
黑盒测试:不关注软件内部结构,逻辑,代码实现,只关心输入输出看相应的输入是否对应着和需求一致的输出。
1.黑盒的测试设计测试用例的方法有哪些?(等价类、边界值、因果图、场景法、错误猜测法、正交法) -
白盒测试:主要测试的是系统的内部逻辑结构是否符合需求,关注代码的实现功能,主要对代码进行测试。
1.白盒测试的方法有哪些?(语句覆盖、路径覆盖、条件覆盖、判定覆盖、条件组合覆盖、判定组合覆盖)
-
灰盒测试:介于黑盒和白盒之间。
七、按照测试对象划分(业务测试、界面测试、容错性测试、文档测试、兼容性测试、易用性测试、安装测试、安全测试、性能测试、内存泄漏测试)
-
业务测试(场景测试):其实就是根据需求设定,把不同的功能点按照一定的策略组合起立,形成一个业务流场景法。
-
界面测试:用户通过界面和系统进行直接交互的,界面的设计直接决定了用户的体验感官。
界面测试的依据:UI设计师的界面设计稿,元素的布局,盘版、大小
-
容错性测试:当系统由于外部的一些异常操作或者外部的环境引起的系统错误,但系统可以自我消化掉这些问题,不直接展示给用户,这个叫做系统的容错性(例如限制手机号是11位)
-
文档测试:国家有关计算机软件产品开发文件编制指南中共有14 种文件,可分为3 大类。
1.开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设
计说明书、模块开发卷宗。
2.用户文件:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠
性;降低技术支持成本。
3.管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。 -
兼容性测试: 兼容性主要是指软件之间能否很好的运做,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。(最常见的就是浏览器的兼容性测试,不同浏览器在css,js解析上的不同会导致页面的显示不同。常见的IE8的兼容性。)
-
易用性测试:易用性(Useability)是交互的适应性、功能性和有效性的集中体现。易用性属于人体工程学的范畴,人体工程学(ergonomics)是一门将日常使用的东西设计为易于使用和实用性强的学科。(在某些大厂会有专门的部门来进行易用性测试,又叫用户体验测试。)
-
安全性测试:安全测试是一个相对独立的领域,需要更多的专业知识。例如web的安全测试,需要熟悉各种网络协议TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如SQL注入、Xss等。
-
安装测试:测试程序的安装、卸载。典型的是app的安装、卸载
-
性能测试:检查系统是否满足需求规格说明书中规定的性能。
-
内存泄漏测试:很多软件系统都存在内存泄露的问题,尤其是缺乏自动垃圾回收机制的“非托管”语言 编写的程序,例如C、CH、Delphi等。从用户使用的角度来看,内存泄露本身不会造成什 么危害,一般用户可能根本不会感觉到内存泄露的存在。但是内存泄露是会累积的,只要执 行的次数足够多,最终会耗尽所有可用内存,使软件的执行越来越慢,最后停止响应。可以 把这种软件的问题比喻成软件的“慢性病”。
文章评论