1、什么是软件测试
简单直白的讲,软件测试就是寻找bug(缺陷)的。软件测试的目的就是发现软件的缺陷,评估并提高软件的质量。
一般来说,一款软件产品,从idea到开发完成,再到正式上线,中间一定会伴随着软件测试。大部分软件测试都发生在开发完成到正式上线之间的阶段。
- 试问1:一辆没有经过测试的汽车,大家敢买敢坐吗?(2021频发的Tesla故障)
- 试问2:一枚没有经过测试的导弹,敢运用于实战吗?
2、软件测试之阶段学习
大道无形,书山有路。软件测试可按以下阶段分步式渐进学习。其中,功能测试是基础,掌握一定基础后方能作更深入拓展。
3、软件测试分类
方法其实有很多种,从不同的维度进行分类,其所分的类型也完全不同,通常可以从三个维度对测试方法进行分类。
- 1) 从测试技术的角度分类,测试可以分为黑盒测试、白盒测试和灰盒测试;
- 2) 从被测试对象是否运行的角度进行分类,测试可以分为动态测试和静态测试;
- 3) 从测试执行时使用的工具角度分类,测试可以分为手工测试和自动化测试。
更具体的分类,可以看看下面的这张图
关于黑盒测试和白盒测试有点像过去社会的两种人,黑盒测试就相当于黑道,白盒测试就相当于白道。黑道的大Boss如果要解决什么事情,他们会派下属去处理,并且大Boss只关注结果,至于中间是如何处理的,他并不关心。而白道的人即我们说的公务员,他们对办事的整个流程或法律体系都很了解。
之所以存在灰盒测试,是因为按测试阶段来划分,整个测试的流程包括单元测试、集成测试、系统测试,而白盒测试对应单元测试,黑盒测试对应系统测试。在正确的测试过程中,应该是先测试单元模块,单元模块测试完成之后,并没有立即进入系统测试,而是集成测试,即我们测试完单个模块后,虽然单个模块没有问题,但并不代表这些模块组合在一起时就一定没有问题。那么要验证这些功能模块组合在一起有没有问题,这就是集成测试,其使用方法就是灰盒测试。
随机测试:测试中所有的输入数据都是随机生成的,比如市场监督管理局在查证食品安全时,对商店的食品就是随机抽样检查;APP专项测试中的Monkey测试其实就是随机测试。
冒烟测试:随机测试的一种,验证系统的功能有没有达到测试的条件;正式测试前都会进行冒烟测试,检查系统是否Block阻塞。
回归测试:回归测试主要应用于系统版本升级后,针对系统原有的功能进行验证,毕竟版本升级修改了旧代码谁也不敢保证一定没有问题;回归测试重复性工作比较多,自动化测试的目的其实就是完成回归测试。
安全测试:主要涉及数据安全(防止个人信息泄露)和网络安全(防止网络攻击系统漏洞)。
4、软件测试的职业发展
软件测试职业路线 有三个大方向:技术,管理,业务。
- 技术方向:白盒测试,自动化测试,性能测试,安全测试,测试开发;
- 管理方向:测试主管/经理,项目经理,Scrum Master;
- 业务方向:测试专家,需求分析师,产品经理,金融等行业精英。