1. 按照是否查看代码划分(重点)
1.1 黑盒测试
把软件当成黑色的盒子,不关心程序内部的结构、逻辑,只关心输入和输出。
- 黑盒测试设计用例的方法有哪些?
等价类、边界值、因果图、正交法、场景设计法、错误猜测法。
1.2 白盒测试
把软件当成一个透明的盒子,检查软件内部的结构、逻辑、语句是否正确。
- 白盒测试设计用例的方法有哪些?
语句覆盖法(最弱)、逻辑覆盖法、路径覆盖法、循环覆盖法。
1.3 灰盒测试
介于黑盒测试和白盒测试之间,既要考虑输入和输出,又要考虑程序内部的结构。
单元测试—白盒测试
集成测试—灰盒测试
系统测试—黑盒测试
验收测试—黑盒测试
2. 按照测试地域划分
软件本地化:将软件处理成不同的语言版本的技术
软件国际化:使软件可以生成不同的语言版本,和适应不同的风俗,在转换的时候不需要修改软件源代码的技术
2.1 国际化测试
软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测试则是针对这类软件产品进行的测试。由于软件的全球化普及,还有软件外包行业的兴起,软件的本地化和国际化测试俨然成为了一个独特的测试专门领域。
本地化和国际化测试与其他类型的测试存在很多不同之处。本地化和国际化测试的一些要点:
1、 本地化后的软件在外观上与原来版本是否存在很大的差异,外观是否墼齐、不走样。
2、 是否对所有界面元素都进行了本地化处理,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音的提示)、日志等。
3、 在不同的屏幕分辨率下界面是否正常显示。
4、是否存在不同的字体大小,字体设置是否恰当。
5、 日期、数字格式、货币等是否能适应不同国家的文化习俗。例如,中文是年月日,而英文是月日年。
6、 排序的方式是否考虑了不同语言的特点。例如,中文按照第一个字的汉语拼音顺序排序,而英文按照首字母排序。
7、 在不同的国家采用不同的度量单位,软件是否能自适应和转换。
8、 软件是否能在不同类型的硬件上正常运行,特别是在当地市场上销售的流行硬件上。
9、 软件是否能在Windows或者其他操作系统的当地版本上正常运行。
10、联机帮助和文档是否已经翻译,翻译后的链接是否正常。正文翻译是否正确、恰当, 是否有语法错误。
软件本地化和国际化测试是一个综合了翻译行业和软件测试行业的测试类型。它要求测 试人员具备一定的翻译能力、语言文化,同时具备测试人员的基本技能。
2.2 本地化测试
之前所介绍的测试类方法(一)(二)全是本地化测试。
3. 按照测试对象划分
3.1 业务测试
是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。类似于场景设计法。
3.2 界面测试
界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等,以及不同分辨率下的界面是否美观、合理。
3.3 容错性测试
容错性测试是检查软件在异常条件下自身是否具有防护性的措施或某种灾难性恢复的手段。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。
- 容错性测试包括两个方面:
① 输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。(如:验证码检验)
② 灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系
统和数据是否能尽快恢复。
3.4 文档测试
-
国家有关计算机软件产品开发文件编制指南中共有14 种文件,可分为3 大类:
① 开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。
② 用户文件:用户手册、操作手册,用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本。
③ 管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。 -
文档测试的关注点:
文档的正确性
文档的完整性
文档的一致性
文档的易用性
3.5 兼容性测试
兼容性主要是指软件之间能否很好的运做,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。
- 通常从以下方面进行测试:
平台测试
浏览器测试
软件本身能否向前或者向后兼容
测试软件能否与其它相关的软件兼容
数据兼容性测试 - 问:为什么要在不同的浏览器上进行兼容性测试?
答:不同浏览器的内核不同。
3.6 易用性测试
易用性是交互的适应性、功能性和有效性的集中体现。
- 通常从以下方面进行测试:
产品设计遵循标准规范
直观性
舒适性
3.7 安装测试
测试程序的安装、卸载
典型的是app的安装、卸载
用命令行进行安装、卸载
3.8 安全测试
安全测试是一个相对独立的领域,需要更多的专业知识。例如web的安全测试,需要熟悉各种网络协议
TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如SQL注入、Xss等。
(作为web入门测试,可以IBM的appscan。)
- 上传和下载的安全性该如何测试?
3.9 性能测试
检查系统是否满足需求规格说明书中规定的性能。
- 通常表现在以下几个方面:
对资源利用(如内存、处理机周期等)进行的精确度量
对执行间隔
日志事件(如中断,报错)
响应时间
吞吐量(TPS)
辅助存储区(例如缓冲区、工作区的大小等)
处理精度等进行的监测
3.10 内存泄漏测试
很多软件系统都存在内存泄露的问题,尤其是缺乏自动垃圾回收机制的“非托管”语言 编写的程序,例如C、CH、Delphi等。从用户使用的角度来看,内存泄露本身不会造成什 么危害,一般用户可能根本不会感觉到内存泄露的存在。但是内存泄露是会累积的,只要执 行的次数足够多,最终会耗尽所有可用内存,使软件的执行越来越慢,最后停止响应。可以 把这种软件的问题比喻成软件的“慢性病”。
- 造成内存泄露的原因有很多,最常见的有以下几种:
分配完内存之后忘了回收。
程序写法有问题,造成没办法回收。
某些API函数的使用不正确,造成内存泄露。
没有及时释放。 - 内存泄漏的检测:
① 对于不同的程序可以使用不同的方法来进行内存泄露的检查,还可以使用一些专门的工具来
进行内存问题的检查,例如MemProof. AQTime、Purify、BundsChecker等。 有些开发工具本身就带有内存问题检查机制.要确保程序员在编写程序和编译程序的时候打开这些功能。
② 通过代码扫描分析工具来检查