- 测试阶段:编码后或者编码前TDD(测试驱动开发)
- 测试对象:最小模块、测试人员:白盒测试工程师或者开发工程师
- 测试依据:代码和注释+详细的设计文档
- 测试方法:白盒测试
- 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
集成测试
集成测试也称联合测试(联调),集成测试是按照一定的组合策略把功能模块组装起来,就是把组装后的模块进行测试。
集成测试主要的目的是检查软件之间的接口是否正确。
- 测试阶段:一般单元测试之后进行
- 测试对象:模块间的接口
- 测试人员:白盒测试工程师或开发工程师
- 测试依据:单元测试的模块+概要设计文档
- 测试方法:黑盒测试和白盒测试之间的结合
- 测试内容:模块之间数据的传输、模块之间功能冲突、模块组装功能正确性,全局数据结构、单模块缺陷对系统的影响;
系统测试
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试,时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
- 测试阶段:集成测试之后
- 测试对象:整个系统(软、硬件)
- 测试人员:黑盒测试工程师
- 测试依据:需求规格说明文档
- 测试方法:黑盒测试
- 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性
回归测试
回归测试是指修改了旧代码之后,重新进行测试以确认没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅度降低系统测试、维护升级等阶段的成本。
在软件测试过程中,软件各个阶段都会进行多次回归测试,随着系统的庞大、回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性显得尤为重要。
冒烟测试
冒烟测试是基本的流程的测试,它相当于一个准入原则。它的对象是每一个新编译的需要进行测试的正式软件版本,目的是确认软件的基本功能正常,可以进行后续的正式测试工作,冒烟测试的执行者是版本编译人员。
冒烟测试一般在开发人员开发完毕后送给测试人员进行测试时,测试人员会先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。
我们在进行冒烟测试时,会用到提测用例,它包含了基本流程的测试用例。
验收测试
验收测试是部署软件之前的最后一个测试操作,它是技术测试的最后阶段,验收测试的目的是为了确保软件就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买展示该软件系统满足原始需求。
- 测试阶段:系统测试通过之后
- 测试对象:整个系统(包括软硬件)
- 测试人员:主要是最终用户或者需求方
- 测试依据:用户需求、验收标准
- 测试方法:黑盒测试
- 测试内容:同系统测试(功能…各类文档)
2.按测试实施组织
α测试
是用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下实施进行的测试,α测试的目的是评价软件产品FLURPS(即:功能、局域化、可使用性、可靠性、性能和支持)
α测试不能由程序员或者测试员进行完成。
β测试
它是一种验收测试,由软件的最终用户在一个或者多个场所进行。
α测试和β测试的区别:
- 测试场所不同:α测试是指把用户请到开发方的场所进行测试的,β测试是指在一个或多个用户的场所下进行的测试;
- 测试环境不同: α测试是受开发方空间,用户数量相对比较少,时间比较集中,β测试环境不受开发方控制,用户数量比较多,时间不集中;
- 先进行α测试,β测试时间周期较长。
第三方测试
介于用户和开发方之间组织的测试
3.按是否运行划分
静态测试
静态方法是指不运行被侧程序本身,仅通过分析或者源程序的语法、结构、过程、接口等来检查程序的正确性,对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符 执行这些方式来找出错误。
- 静态质量:度量所依据的ISO2510,在该标准中,软件的质量用以下几个方面来进行衡量:即功能性、可靠性、可用性、兼容性、有效性、可维护性、可移植性
代码静态分析和文档测试都属于静态测试
动态测试
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序和输出结果
大多数的测试工作都属于动态测试。
4.按是否手工划分
手工测试
手工测试就是人为的一个一个输入测试用例,然后观察结果,和机器测试相对应,属于比较原始但是必须执行的一个步骤
- 优点:自动化无法替代探索性测试、发散思维结果的测试
- 缺点:执行效率慢,量大易错
自动化测试
是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件,总而言之,自动化测试就是将人为的测试转化为机器执行的一个过程。
自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。
而我们通常所说的自动化就是功能自动化。
自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高
自动化实施步骤:
- 完成功能测试,版本基本稳定
- 根据项目特性,选择适合项目的自动化工具,并搭建环境
- 提取手工测试的测试用例转化为自动化测试的用例
- 通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
- 生成自动测试 告
- 持续改进,脚本优化
自动化实施的时机在于系统的功能稳定、变动不大的基础上;当然自动化也无法取代手工测试。
5.按是否查看代码分
黑盒测试
黑盒测试的实质就是不关心程序的内部结构,只关心软件的输入和输出的数据。而称为黑盒是相当于把被测的软件当成一个黑盒子,不管其内部的构造。
常见的方法有:等价类、因果图、边界值、正交排列、场景法、错误猜测法
白盒测试
白盒测试的实质就是只关心程序的内部逻辑和结构,与黑盒相反。它的方法是语句覆盖法、逻辑覆盖法、循环覆盖法、路径覆盖法。
灰盒测试
是介于白盒测试和黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输入、输出的正确性,同时也关注程序的内部的情况。
6.按测试地域划分
国际化测试
在设计或者开发软件的过程中使得软件可以适用于不同的语言和不同的风俗习惯,在软件进行习惯,在软件进行语言转换时不需要源码的修改,这样就称为国际化。
- 本地化后的软件在外观上与原来版本是否存在很大的差异,外观是否整齐、不走样;
- 是否对所有界面元素都进行了本地化处理,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音的提示)、日志等;
- 在不同的屏幕分辨率下是否正常显示;
- 是否存在不同的字体的大小,字体设置是否恰当;
- 日期、数字格式、货币等是否能适应不同国家的文化习俗;
- 排序的方式是否考虑了不同语言的特点;
- 在不同的国家采用不同的度量单位,软件受否能适应和转换;
- 软件是都能在不同类型的硬件上正常运行,尤其是当地市场上销售的流行硬件上;
- 软件是否能在windows或者其他操作系统的当地版本上正常运行;
- 联机帮助和文档是否已经翻译,翻译后的链接是否正确,正文翻译是否正确恰当,是否有语法错误;
本地化测试
7.按测试对象分
业务测试
是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试过程。
业务测试关注需求和用户。
界面测试
界面测试又称UI测试,测试用户界面的功能的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯、此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。
在进行界面测试时,我们经常进行响应式界面测试:
①界面在不同(分辨率)屏幕下文字没有消失、文字不重叠、完全展示;
②界面的图片没有变形、不清晰、没有消失、不重叠;
③界面页面排版,布局合理;
④界面页面的展示按照需求去设计;
容错性测试
容错性的测试检查软件在异常条件下自身是否有防护性的措施或某种灾难性的手段。
我们进行容错性测试包括两个方面:
①输入异常数据或进行异常操作,如果系统的容错性好就不会导致系统出错甚至崩溃;
②失效恢复性测试:人为用一些暴力的手段让系统发生故障,查看系统的自我保护和自我恢复能力;
我们经常从这三面进行考量:
1.服务器硬件发生故障,有备用服务器进行用户无感知切换;
2.系统崩溃(宕机),切换到备用系统;
3.断电、断 后有备用电源,备用 络进行切换;
文档测试
- 开发文件:可行性研究 告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗;
- 用户文件:用户手册、系统手册,用户文档的作用:改善易安装性;改善软件的易学性和易用性;改善软件可靠性,降低技术支持成本;
- 管理文件:项目开发计划、测试计划、测试分析 告、开发进度月 、项目开发总结 告
在进行文档测试,从以下几个方面进行考虑:
- 文档的术语;
- 文档的正确性;
- 文档的完整性;
- 文档的一致性;
- 文档的易用性
兼容性测试
Web测试
App测试
兼容性主要是指软件之间是否能够很好的进行运作,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。
- 平台测试
- 浏览器测试
- 软件本身能否向前或者向后兼容
- 测试软件能否与其他相关的软件兼容
- 数据兼容性测试
易用性测试
易用性是交互的适应性、功能性和有效性的集中体现。易用性属于人体工程学的范畴。
易用性测试又称用户体验测试
安装测试
测试程序的安装、卸载
安全测试
安全测试是一个相对独立的领域,需要更多的专业知识。例如:Web的安全测试,需要熟悉各种 络协议TCP/HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等,从软件来说,熟悉各种攻击手段,例如:SQL注入、Xss等;
我们可以从以下几个方面进行考虑:
①上传过程或下载过程不能被拦截;
②不能上传有病毒的文件;
③上传或者下载文件过大,系统性能检测并提示;
性能测试
性能测试是检查系统是否满足需求规格说明书中规定的性能;
通常表现在以下几个方面:
- 对资源的利用(CPU的使用、磁盘的占用、 络带宽、耗电量、并发数、处理周期等)进行精确的度量;
- 对执行间隔
- 日志事件(如中断, 错);
- 响应时间(用户发送请求到用看看到自己预期的相应内容的间隔时间)
- 吞吐量(吞吐量是指服务器处理的信息量单位时间吞吐量越大,说明系统性能越好)
- 辅助存储区(例如:缓冲区、工作区的大小等)
- 处理精度等进行的监测
内存泄露测试
造成内存泄漏的原因有很多种,如下:
- 分配内存之后忘记回收;
- 程序写法有问题,造成没办法回收;
- 某些API函数的使用不正确,造成内存泄漏;
- 没有及时释放.
内存泄漏的检测:
1.对于不同的程序可以使用不同的方法来进行内存泄漏的检查,还可以使用一些专门的工具来进行内存问题的检查,而有些开发工具本身就带有内存问题检查机制,要确保程序员在编写程序和编译程序的时候打开这些功能;
2.通过代码扫描分析工具进行检查;
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!