测试分类下_按是否查看代码、测试对象等方式划分


在这里插入图片描述

1.按是否运行划分

  • 静态测试(Static testing):不运行程序,测代码(语法/词法/业务逻辑) + 文档(正确性/完整性/可读性/一致性)。
  • 动态测试(Dynamic testing):运行程序,一般所说的软件测试或功能测试都是动态测试。

2.按是否手工划分

  • 按是否手工划分:手工测试(Manual testing)、自动化测试(Automation Testing)。
优点缺点
自动化测试提高执行效率、不容易出错没有思想 (无法实现探索性测试、发散思维结果的测试)
手工测试执行效率慢、量大易错有思想(可以实现探索性测试、发现思维结果的测试)
  • 注意:自动化测试永远无法替代手工测试。
  • 自动化实施步骤:
    1.完成功能测试,版本基本稳定
    2.根据项目特性,选择适合项目的自动化工具,并搭建环境
    3.提取手工测试的测试用例转化为自动化测试的用例
    4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
    5.生成自动测试报告
    6.持续改进,脚本优化。
  • 自动化测试工具:
    功能自动化测试:selenium
    性能自动化测试:loadRunner
    接口自动化测试:jmeter
  • 自动化测试框架:
    Python:unittest
    Java:testNG

3.按是否查看代码划分(重点)

3.1黑盒测试(Black-box Testing)

  • 概念:黑盒测试也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据

  • 理解不看软件的代码,只对软件界面的功能进行测试,看软件结果与预期结果是否一致

  • 设计测试用例方法:等价类、边界值、因果图、正交排列表、场景事件法、错误猜测法。

3.2白盒测试(White-box Testing)

  • 概念:白盒测试又称结构测试透明盒测试逻辑驱动测试基于代码的测试。白盒指的打开盒子,去研究里面的源代码和程序结果

  • 理解对代码进行测试,即对代码里的路径覆盖、接口、数据结构、业务逻辑、边界处理、错误处理……等进行测试

  • 设计测试用例方法:基本方法及举例
    语句覆盖法:使程序中的每个可执行语句都能执行一次的测试用例。
    逻辑覆盖法:判定法,条件法,判定和判定组合,条件和条件组合,判定和条件组合。
    循环覆盖法:for while
    路径覆盖法:设计测试用例时,覆盖程序中所有可能的执行路径。(switch try-catch)

  • 接口测试也是白盒测试的是一种;白盒测试不是接口测试 。

3.3灰盒测试(Gray-Box Testing)

  • 概念:灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
  • 理解:关注代码又关注功能,即代码+功能(白+黑=灰)。

4.按测试地域划分

  • 按测试地域划分:国际化测试、本地化测试。

  • 软件国际化:开发软件的时候,使得软件能适用于不同国家的语言和风俗,当软件按需要转化语言时,不用修改源代码的这种工程技术,称之为软件国际化。
    (软件国际化目的是实现软件本地化)

  • 本地测试:在本国测试为本地测试,非本国外国际测试。

  • 国际化测试:
    1>是否对所有界面元素都进行了本地化处理,例如菜单、工具栏、日志等。
    2>在不同的屏幕分辨率下界面是否正常显示。
    3>是否存在不同的字体大小,字体设置是否恰当。
    4>日期、数字格式、货币等是否能适应不同国家的文化习俗。
    5>排序的方式是否考虑了不同语言的特点。
    6>在不同的国家采用不同的度量单位,软件是否能自适应和转换。
    7>软件是否能在Windows或者其他操作系统的当地版本上正常运行。
    ……

5.按测试对像划分(次重点)

  • 一、业务测试:是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。
    注意:所有业务流程都要测试(不仅测试正常流程,异常流程也要测试),而且必须了解用户需求(不用考虑输入框类型、规则等)。

eg:查看邮件业务

登录网站-输入用户名、密码登录-进入收件箱-查到邮件-点击打开-查阅-关闭邮件-退出邮箱-关闭网站

  • 二、界面测试:界面体验感。
    eg:功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。

  • 三、容错性测试
    1> 输入异常数据或进行异常操作,以检验系统的保护性.
    eg:输入错误数据类型、输入定义域外的数值等等。
    2> 灾难恢复性测试(是一个单独的测试类型)。
    eg:通过各种手段,让软件强制性地发生故障,系统保存的数据是否丢失,系统和数据能否尽快恢复。

  • 四、文档测试
    1> 开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。
    2> 用户文件:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本。
    3> 管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。
    4> 补充_文档测试的关注点:文档的术语、文档的正确性文档的完整性文档的一致性、文档的易用性。

  • 五、兼容性测试
    1>平台测试:APP测试(IOS系统、安卓系统)和浏览器测试(Google、Firefox、ie、360)
    2>件本身能否向前或者向后兼容
    软件的向前兼容性:新功能不能影响老功能的使用
    软件的向后兼容性:新功能不能影响系统或者软件的后续开发
    3>测试软件能否与其它相关的软件兼容
    4>数据兼容性测试。

  • 六、易用性测试
    一般指适应性、功能性和有效性。
    eg:1>产品要符合易用性标准规范
    2>直观
    3>舒适
    4>实用

  • 七、安装测试
    eg:测试程序的安装、卸载。(典型的是app的安装、卸载)

  • 八、安全测试
    eg:SQL注入(如下图)、Xss等。
    在这里插入图片描述

  • 九、性能测试
    eg:对资源利用(如内存、处理机周期等)进行的精确度量、对执行间隔、日志事件(如中断,报错)、响应时间、吞吐量(TPS)、辅助存储区(例如缓冲区、工作区的大小等)、处理精度等进行的监测等。

  • 十、内存泄漏测试
    1> 对于不同的程序可以使用不同的方法来进行内存泄露的检查,还可以使用一些专门的工具来进行内存问题的检查,例如MemProof. AQTime、Purify、BundsChecker等。 有些开发工具本身就带有内存问题检查机制。要确保程序员在编写程序和编译程序的时候打开这些功能。
    2> 通过代码扫描分析工具来检查

造成内存泄露的原因有很多,最常见的有以下几种。

  • 分配完内存之后忘了回收。
  • 程序写法有问题,造成没办法回收。
  • 某些API函数的使用不正确,造成内存泄露。
  • 没有及时释放。

注:系统测试、验收测试的内容就是按测试对像来划分的。


版权声明:本文为qq_43361209原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。