目录
按照是否查看代码划分
(1)黑盒测试
黑盒测试就是不关心软件内部的实现,不关心代码的逻辑结构(相当于代码者一部分是看不见的),只关心输入输出是否符合预期。
好处:不用看代码(不懂代码的也可以进行测试);
黑盒测试测试系统的功能,站在用户的角度区使用功能,有利于培养用户思维
测试用例是按照需求设计的,不容易遗漏需求
测试方法:等价类,边界值,因果图,场景法,错误猜测法,正交法。
(2)白盒测试
白盒测试就是针对代码进行的是测试,分析和测试代码的逻辑和结构,实现的功能,看是否符合用户的需求。
测试方法:语句覆盖,路径覆盖;判定覆盖,条件覆盖,条件组合覆盖,判定和条件组合覆盖。
(3)灰盒测试
介于黑盒测试和白盒测试之间
按照开发阶段划分
越往下测试效率越高,定位问题越容易;越往上集成度越高, 越往下单元模块耦合性越低
(1)单元测试
针对软件组成最小的单元模块进行测试(类、方法);
测试阶段:编码前(TDD),编码后;
测试对象:组成软件的最小单元模块
测试方法:白盒测试
测试人员:白盒测试工程师后者开发人员
测试依据:详细测试文档(软件测试V模型)
测试内容:模块的接口,局部数据的测试,边界测试,异常测试,路径测试
编码前如何测试?
测试驱动开发:测试人员先写测试代码,空跑——开发人员根据异常写代码——直到测试用例代码通过
(2)集成测试
按照一定的策略把单元模块组合起来形成一个达的功能模块,对这个功能模块进行的测试叫做集成测试
测试阶段:单元测试后
测试对象:集成模块
测试方法:灰盒测试
测试人员:黑盒测试工程师,开发人员
测试依据:详细测试文档(软件测试V模型)
测试内容:整个模块功能的正确性,单元模块之间接口的正确性,全局数据结构测试,单个模块的缺陷对整个模块的影响,模块之间功能的冲突
(3)系统测试
当软件开发完成,系统的全面的对软件的功能进行测试
测试阶段:集成测试后
测试对象:整个系统
测试方法:黑盒测试
测试人员:黑盒测试工程师
测试依据:需求测试文档
测试内容:系统的功能,界面,兼容性,易用性,可靠性,可移植性,安全性,性能。
回归测试:当系统引入了新的代码的时候,要查看新的代码是否影响了旧的功能,进行回归测试。(版本更新迭代,修改BUG)
一般采用自动化。
冒烟测试:正式测试之前,对软件系统的基本流程和核心功能进行测试,如果测试通过,才同意正式测试。(准入原则)
(4)验收测试
软件上线前的最后一道测试,有用户后者产品经理发起的
测试阶段:系统后
测试对象:同系统测试
测试方法:黑盒测试
测试人员:用户、产品方
测试依据:用户需求 V模型
测试内容:同系统测试(包含一些文档,用户使用手册,功能设计文档)
白盒测试怎么测试摸一个单元模块(方法)
用Junit-单元测试框架
按照实施组织划分
(1)α测试
指的是让用户或除了开发和测试人员以外的公司内部人员到开发现场去进行测试
测试环境:开发环境
α测试先于β测试之前的
(2)β测试
实际用户在实际使用环境下进行测试,不限时间,不限地点
α测试和β测试的区别:测试环境不同;时间集中程度不一样;α测试优先于β测试的
(3)第三方
第三方软件测评机构对软件进行测试(按业界的标准和规范进行测试)
按照是否运行划分
(1) 静态测试
不运行代码,分析代码的分格,是否符合公司的标准规范;分析代码的结构、逻辑、算法、方法的实现是否满足用户的需求。(ISO25010标准)
(2)动态测试
运行代码,执行测试用例,进行测试。
按照是否手工划分
(1)手工测试
手工执行用例,查看测试结果
优点:不可替代的,无法被自动化测试替代,手工测试的过程认为可控的,有了利于做探索性测试。
缺点:量大容易出错,效率比较低
(2)自动化测试
机器按照预先设定好的条件去执行测试,这些条件包括正常和异常的方面
根据自动化测试脚本,有UI自动化、接口自动化、性能自动化
按照地域划分
软件国际化:开发软件的时候使用了一种工程技术,使得软件在适用不同国家道的语言,风俗使用习惯的时候不用去改变软件的源码就可以做到。
例如:windows操作系统,抖音国际版,苹果手机,Microsoft、office、Word
软件国际化测试
软件本地化测试