软件测试常见测试分类

软件测试常见分类

  • 1. 按照开发阶段划分
  • 2. 按照实施组织划分
  • 3. 按照是否运行划分
  • 4. 按照是否手工划分
  • 5. 按照是否查看代码划分
  • 6. 按测试地域划分
  • 7. 按测试对象划分

软件测试常见测试分类_第1张图片

1. 按照开发阶段划分

软件测试常见测试分类_第2张图片
投入相同的人力和精力,越往上层,它的产出越低;越往上层,定位问题越困难;越往上层,测试效率越低

  1. 单元测试
    解释:对程序的最小的单元进行测试,这个单元是一个类,也可能是一个方法
    测试阶段:开发前(TDD:Test——Driven——Development 测试驱动开发)
    测试对象:单元模块
    测试内容:①模块接口的测试:输入输出 输入参数的数量,类型,类型的排列,输出是否符合接口设计的文档②局部数据结构设计 ③路径设计:if else switch ④错误处理测试
    单元测试的步骤:①在pom.xml添加依赖②下载插件③创建单元测试类:ctrl + Shift + T
    @Test 每一个单元测试方法上必须有,不然不会被认为是单元测试方法,不会被执行
    @Ignore 忽略一个单元测试
    @Before 在执行每一个的单元测试方法之前进行
    @After 在执行每一个单元测试方法之后执行

  2. 集成测试
    集成:按照一定的策略(逻辑)组合单元模块形成一个功能模块
    测试阶段:单元测试之后
    测试方法:灰盒测试
    测试人员:开发工程师,白盒测试工程师
    测试依据:概要设计文档,详细设计文档
    测试内容:接口之间数据的传输,全局数据结构,模块组装的功能的正确性,单个功能模块缺陷对整体的影响,模块和模块之间的功能冲突
    局部数据结构属于单元测试

  3. 系统测试
    测试阶段:集成测试之后
    测试方法:黑盒测试方法
    测试人员:黑盒测试工程师
    测试依据:需求文档
    测试内容:功能,界面,易用性,性能,安全性,兼容性,可靠性
    回归测试:在系统引入新的代码的时候进行回归测试;增加新功能,修改BUG
    回归测试的策略很重要:评估回归测试的范围,自动化测试
    冒烟测试:对系统的主要功能和核心流程进行测试
    评判系统是否进入正式的测试环节的依据——准入原则
    提测用例:很少,主要针对本次迭代的主要功能和系统的核心流程进行测试用例的设计

  4. 验收测试
    客户(甲方)按照用户的需求对系统进行测试
    测试人员:客户
    测试内容:和系统测试一致,文档测试(软件测试文档,功能设计文档,用户使用手册,详细的功能使用文档等)

2. 按照实施组织划分

  1. α测试
    用户到开发环境下进行测试
    优点:测试过程中发现的问题可以及时反馈给开发人员,及时得到解决
    缺点:用户在开发环境下,容易受开发人员和测试人员的影响

  2. β测试
    实际用户在真实的环境下进行测试,测试环境地域不受限制
    优点:测试的结果更接近用户实际使用的情况的反馈
    β测试在α测试之后

α测试和β测试对比
地域不一样:α测试是在开发环境下,β测试是在用户实际使用环境下
时间的集中程度不一样:α测试测试的时间比较集中,β测试时间相对比较分散

  1. 第三方测试
    由软件的第三方测评机构进行测试

3. 按照是否运行划分

  1. 静态测试
    软件测试常见测试分类_第3张图片
  2. 动态测试
    写测试用例,运行程序,对系统进行测试,查看分析系统的输出是否符合预期

4. 按照是否手工划分

  1. 手工测试
    设计测试用例,运行程序,一步一步手动执行测试用例,对系统进行测试
    缺陷:量大容易出错,效率比较低
    优点:测试时比较灵活,可以根据不同的实际情况进行测试用例的修改和完善

  2. 自动化测试
    把手工测试的测试用例转换为自动化脚本,让机器去执行脚本;给定预先设计好的条件和结果的预判去执行;
    接口自动化,性能自动化,web自动化,app自动化
    自动化的意义:解放双手,提高测试效率
    如何判断一个自动化脚本是否有价值?自动化脚本的使用率 使用率越高越有价值
    什么样的项目适合使用自动化?

5. 按照是否查看代码划分

  1. 黑盒测试
    测试的时候只关心输入和输出,不去看功能的内部逻辑,代码具体的实现
    具体实现方法:等价类,边界值,因果图,场景法,正交设计法,错误猜测法

  2. 白盒测试
    对程序的内部的逻辑,结构,功能进行测试
    单元测试就属于白盒测试
    白盒测试的方法:语句覆盖法,逻辑覆盖法,循环覆盖法(for,while,do while )
    逻辑覆盖:路径覆盖,判定覆盖,判定组合覆盖,条件覆盖

  3. 灰盒测试
    介于白盒测试和黑盒测试之间,既关心输入输出,又关心程序内部的逻辑结构

6. 按测试地域划分

  1. 国际化测试
  2. 本地化测试

软件国际化:就是开发一款软件的时候运用了一种工程技术,可以使得软件使用不同国家的语言和当地的风俗习惯而不用修改软件的源码。

7. 按测试对象划分

  1. 界面测试
    文字:大小、类型、粗细、斜体、颜色
    图片:大小、颜色、清晰度、排版、是否重叠
    控件:按钮、文本框、滚动条
    有效控件高亮,无效控件置灰
    备注,提示说明语言表达是否清晰
    整体布局的排版

  2. 容错性测试
    当系统因为外部环境的影响或者用户的误操作导致系统发生错误,但是系统可以自我处理,使系统正常稳定运行
    数据级别:日期,货币,时间
    验证级别:查询信息的前后空格,trim(),验证码输入错误,同一个系统前后信息的容错处理
    环境容错处理:当系统运行的时候出现断电,断网,服务器故障的时候可以随时切换用电器,网络,备用服务器,并让用户无感知
    界面容错处理:进行一些危险操作的时候,有没有给用户提示,或者把这些功能屏蔽掉;注册的时候账户和密码的位数限制,当用户输入最大的位数的时候就禁止输入了;用户只能输入一些规定好的固定选项的时候,以下拉框的形式展示;在一些复杂容易出错的操作,会给用户提示

  3. 文档测试
    软件开发过程当中产生的文档进行测试,软件设计文档,流程图文档,功能分析设计文档,用户手册等
    主要测试文档和软件系统的一致性
    文档的术语是否得当,正确性,完整性,易用性

  4. 兼容性测试
    web系统的兼容性(Windows Mac IOS的不同版本,不同的浏览器内核不一样,对同一个页面的解析不一样;APP兼容性测试;IOS Android;软件本身先前或者向后的兼容性;软件是否和其他相关的软件的兼容性;数据的兼容性

  5. 易用性设计
    用户体验性测试(UE)
    符合标准规范 直观性 灵活性 舒适性 实用性

  6. 性能测试

为什么要进行性能测试? ①希望用户能够有很好的体验,系统能够快速的响应用户的需求
②系统能够处理预期的用户负载
③系统能够处理预期的事务数量
④系统在满足以上指标的情况下,可以稳定的运行,用户有良好的体验

TPS(Transaction Per Second):每秒能处理的事务数量(工具);吞吐量:系统在单位时间内处理的信息量;点击率:每秒向服务器发送的http请求的个数
系统在运行时占用的资源的情况:CPU,内存,磁盘,网络带宽,耗电量

  1. 安全测试
    安全测试是一个相对独立的领域,需要更多的专业知识。例如web的安全测试,需要熟悉各种网络协议
    TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如
    SQL注入、Xss等。

你可能感兴趣的:(测试,单元测试,java,软件测试)