测试的种类
测试种类的话,分为功能测试,性能测试和自动化测试
要是按照阶段来进行测试划分的话,又可以说分为单元测试,集成测试,系统测试,还有验收测试
又可以根据懂不懂代码,分为白盒测试和黑盒测试,还有一些其他的测试,比如回归测试,冒烟测试,还有/随机测试
1、 功能测试
功能测试,我们主要是测试软件功能是否可用。我们要测试逻辑功能,就是这个操作是否符合正常人的逻辑思维,举例:智联招聘,它有一块功能做的不好,一般我们是先登录,没有账号的话才进行注册。而智联招聘,我进入到主界面,输入完信息准备登录,才发现默认是注册,这个就属于一块逻辑上的问题。还有界面测试,就是界面正常操作,是否都能够执行成功,比如注册能够执行成功,注册结束之后,能够跳转到登录界面,这个就是进行界面测试。还有就是测试这个软件是否容易使用,也就是易用型测试,如果不好用,用户操作不了,也可以算做一个bug。还有兼容性测试,比如我们测试Android手机上的应用,就经常有兼容性的问题,比如分辨率兼容问题,Android的App分辨率我们就需要使用多台不同尺寸分辨率的手机进行测试,还有性能兼容问题,咱们国内都对手机源代码进行了改动,同一款app,可能在华为上好使,在小米,锤子,oppo上不好使。这些都是功能测试的范围内容。
2、性能测试
时间性能:软件的一个具体事务的响应时间。比如点击一个登陆按钮,到登录成功(失败)的反应时间,浏览器非常常见,ANR(Application not responding 应用程序无响应)
空间性能:软件运行时所消耗的系统资源,比如对内存和cpu的消耗
一般性能测试:软件正常运行,不向其施加任何压力的测试
稳定性测试:也叫可靠性测试,是指连续运行被测系统,检查系统运行时的稳定成都。
负载测试:让被测系统在其能够忍受的压力范围之内连续运行,来测试系统的稳定性。
压力测试:持续不断的给被测试的系统增加压力,直到被测试的系统压垮为止,用来测试系统所承受的最大压力。
3、自动化测试
自动化测试,一般就需要使用脚本来进行测试,也可以叫做白盒测试,技术含量相对来说比较高,这个我也会。我会的语言是python,基本上python的代码基础我是掌握了的。比如python的变量和基本数据类型,输入输出语句,集合和元组操作,以及循环和条件判断操作,还有python中的字典和set集合操作,以及python中面向对象编程,异常,单元测试这些内容,比较熟悉。
自动化测试软件:selenium和appium这两个软件我也使用的比较熟悉,当然也算不上精通,基本的操作,写一些自动化测试脚本是没有问题的。
4、静态测试和动态测试
静态测试,是指不实际运行被测试软件,而只是静态的检查程序代码、界面或者文档中可能存在的错误的过程。
动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程
5、单元测试、继承测试、系统测试和验收测试
单元测试
是指对软件中最小可测试单元进行检查和验证单元测试当一段代码完成之后,是由白盒测试工程师或者开发人员自行测试,比如java中执行单元测试叫做junit测试。
单元测试方式:先静态地观察代码是否符合规范,然后动态地运行一下代码,检查运行的结果。
集成测试
集成测试是单元测试的下一个阶段,是指将通过测试单元模块组装成系统或者子系统,再进行测试,重点测试不同模块的接口部分。
集成测试也是由白盒测试或者开发人员来完成。
系统测试和验收测试
集成测试完成之后,就是系统测试和验收测试。
系统测试:
指的是将整个软件系统看做一个1个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。系统测试由黑盒测试人员在整个系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境的兼容性等。
6、 回归测试、冒烟测试、随机测试
回归测试
是指对软件的新版本进行测试时,重复执行上一个版本测试时的用例,比如在1.0版本中,有一个bug,到了2.0版本中,再重新测试1.0中这个bug
冒烟测试
指对一个软件进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
测试小组在正式测试一个新版本之前,先指派一两个测试人员测试一下软件的主要功能,如果没有实现,则打回开发组重新开发,这样做可以节省大量的时间成本和人力成本。
随机测试
是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。