什么是软件测试
测试就是在规定的条件下,对一个产品或程序进行操作,及时的发现程序错误,衡量软件的质量,并对其是否能满足 设计要求进行评估的过程。
正向思维、逆向思维
正向思维:出发点是使自己确信产品是能够正常工作的,评价一个程序和系统的特性或能力,并确定它是否到达期望的结果,软件测试就是以此为目的的任何行为
逆向思维:测试是为发现错误而执行的一个程序或者系统的过程。测试是为了程序有错,而不是证明程序无错
一个好的测试用例在于它能发现以前未发现的错误
一个成功的测试是发现了以前未发现的错误的测试
软件测试分类
软件测试分为四个大部分,按阶段划分、按是否运行程序划分、按是否查看源代码划分、其他四个大部分,按阶段划分分为四个小部分,单元测试、集成测试、系统测试和验收测试。
单元测试
是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。
总的来说,单元就是人为规定的最小的被测功能模块。
集成测试
集成测试是单元测试的下一个阶段,是指将通过测试单元模块组装成系统或者子系统,再进行测试,重点测试不同模块的接口部分。
系统测试和验收测试
集成测试完成之后,就是系统测试和验收测试。
系统测试:指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试由黑盒测试人员在整个系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境的兼容性等。
按是否运行程序划分分为两个部分,静态测试和动态测试
静态测试
是指不实际运行被测试软件,而只是静态的检查程序代码、界面或者文档中可能存在的错误的过程。
动态测试
是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
按是否查看源代码划分分为白盒测试和黑盒测试
黑盒测试又分为功能测试和性能测试,功能测试包含了逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试。
性能测试分为一般性能测试、稳定性测试、负载测试和压力测试。
其他包含了回归测试,冒烟测试和随机测试。
回归测试
是指对软件的新版本进行测试时,重复执行上一个版本测试时的用例,比如在1.0版本中,有一个bug,到了2.0版本中,再重新测试1.0中这个bug(回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。)
冒烟测试
指对一个软件进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
随机测试
是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
测试的流程
刚开始要需要确认好项目,然后会下发产品说明书PRD,接下来会下发需求文档,然后需要参加评审,需要需求人员,开发人员,测试人员和项目经理等等共同参加,之后分为两部分,一部分是开发人员,需要按照需求文档详细的设计,编码,自测最后提测,另一部分是测试人员需要指定测试计划,编写测试用例,测试用例评审,最后提测,接下来的冒烟测试就是测试主流程是否通过,然后进行功能测试,通过禅道记录所出现的bug,接下来回归测试用来验证上个版本的问题有没有修复,有没有出现新的bug,然后验收测试来看是否按照客户,公司开发测试经理的需求,如果都没问题就可以进行上线。