文章目录

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函数的使用不正确,造成内存泄露。
- 没有及时释放。
注:系统测试、验收测试的内容就是按测试对像来划分的。