软件测试可以怎么分类

你可能知道功能测试,性能测试,系统测试,自动化测试这些名词,但是软件测试绝不是这么分的。这个问题看似简单实则大坑,因为软件测试的分类方法有很多,一般人很难回答全。

1.软件测试的分类

划分依据 类型
软件生命周期 单元测试、集成测试、系统测试、回归测试、验收测试
测试点 功能测试、性能测试、稳定性测试、易用性测试、安全性测试、兼容性测试、安装测试
测试环境 α测试(受控环境) 、β测试(不受控环境)
查看代码 白盒测试、黑盒测试、灰盒测试
分析方法 静态测试、动态测试
执行方式 手工测试、自动化测试

2.常见面试问题

2.1集成测试和系统测试区别?
  • 测试对象不同:集成测试针对的是功能点,系统测试针对的是整个软件。

  • 测试用例粒度:集成测试比系统测试粒度更细,系统测试用例更强调系统的运行。

  • 执行时间不同:集成测试先做,系统测试后做。

  • 测试方法不同:集成测试一般包含接口测试、界面测试、性能测试。测试方法一般是黑盒测试和白盒测试相结合。系统测试对整个产品进行全面的测试。

2.2白盒测试、黑盒测试、灰盒测试有什么区别?

白盒测试允许测试人员接触到软件代码,测试的对象是代码。主要有两种测试分析方法,一种是静态分析,另一种是动态分析。静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。

黑盒测试主要关注软件的功能实现,功能在软件内部是如何实现的,所以并不需要接触代码。测试人员需要根据软件需求说明书,在一定的输入情况下,检验软件的输出。

灰盒测试则是白盒黑盒兼而有之,它不仅关注程序功能的实现,还关注程序内部运行的情况。灰盒测试在软件的集成测试阶段经常使用。

2.3接口测试到底算白盒测试,还是黑盒测试?

虽然很多人接口测试界定很模糊,其实通过分析,我们不难得出想要的结论。我们来看接口测试的定义:

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

看了定义,我们知道,接口测试内的接口并不简单。如果说只是暴露给外部的接口,那么肯定是黑盒测试了,但是还包括程序内部各个子系统之间的接口。而黑盒测试并不考虑程序内部是如何运行的,所以接口测试肯定不能算黑盒测试。但是白盒测试又要求查看程序的代码,但是接口测试似乎又不需要查看代码(起码当时使用postman,JMeter这类工具的时候不需要)。所以,接口测试最准确的界定应该是:灰盒测试。

2.4什么是静态测试?什么是动态测试?

动态测试很容易理解,就是要运行程序,检查程序运行时的各项指标是否符合要求,包括功能、性能等方面。

静态测试不需要运行程序,而是通过检查源代码的语法、结构、执行过程、接口、架构等方面来检查程序的正确性。广义的静态测试还包括需求文档测试,设计文档的测试(系统架构设计、业务流程设计、界面设计等)

2.5什么是α测试?什么是β测试?

α测试是用户在开发环境下的测试,或者是开发内部的用户在模拟实际环境下的测试。α测试不能由开发人员(程序员、测试员)实施。α测试下发现问题,可以迅速反馈给开发人员修复。由于α测试在系统测试后面,软件的质量已经稳定,所以主要关注软件产品的功能性、易用性、美观性、艺术性等方面。

β测试是用户在实际使用环境下进行的测试,在游戏行业,又叫公测。β测试也不能由开发人员实施。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。

alpha测试在可控环境下进行,开发人员可以指导用户测试;beta测试在不受控环境下进行。alpha测试主要有开发方组织,beta测试主要由发行方组织。

随着测试技术的提高,以及专业测试服务机构的大量涌现,很多软件的Beta测试外包给这些专业测试机构进行测试。

参考文档

  1. 软件测试分类,链接:https://blog.csdn.net/daboluo521/article/details/81385017
  2. 黑盒测试和白盒测试的区别,链接:https://www.cnblogs.com/i16i1007/p/6624072.html
  3. 接口测试到底是什么?如何制造接口数据,链接:https://blog.csdn.net/Loadrunn/article/details/60876638
  4. 接口测试和功能测试的区别,链接:https://www.cnblogs.com/fuxinxin/p/9242417.html
  5. 灰盒测试,链接:https://www.cnblogs.com/twyth/articles/1956873.html
  6. 软件测试方法——静态测试与动态测试,链接:https://www.cnblogs.com/pkfy314/p/5872556.html
  7. α测试和β测试区别,链接:https://blog.csdn.net/u011987219/article/details/49255639

你可能感兴趣的:(软件测试可以怎么分类)