关于软件测试分类常用的几种分类方式及其具体方法和内容介绍
目录
1.软件测试分类(重点部分)
测试金字塔与业务测试分析
1.1按开发阶段分类
(1)单元测试、集成测试、系统测试、验收测试(交付测试)
1.2按测试实施组织
(1)alpha内测版本、Beta公测版本、gamma接近于正式发布的版本(第三方测试)
1.3按是否运行划分
(1)静态测试、动态测试
1.4自动测试
1.5按是否查看代码划分
(1)黑盒测试、白盒测试
1.6按测试地域划分
1.7按测试对象划分
(1)业务测试
(2)界面测试
(3)容错性测试
(4)文档测试
(5)兼容性测试
(6)易用性测试
(7)安全测试
(8)性能测试
(9)内存泄漏测试
1.8其他分类
2.测试报告的输出
3.常用测试管理工具
4.禅道的使用
5.常见基础功能测试
测试用例的万能公式:功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全性测试
按照测试对象划分(10个测试)顺口溜:
- 文档内存兼容性:文档测试、内存泄漏测试、兼容性(浏览器、系统、自身、其他软件、数据兼容性)测试、容错性测试、性能测试;
- 界面易用可双安:界面测试、易用性测试、可靠性测试、安全性、安装卸载测试
UI界面层:进行功能验证测试,兼容性与用户测试
业务逻辑层:客户端模拟测试、内外接口测试、SDK(SoftWare DeveLopment Kit)接口测试
数据处理层:单元测试
ROI:投入产出比(投入相同的时间与精力。越往上层,产出越低,定位更难、效率越低 )
1)单元测试
从程序内部结构出发设计测试用例,对程序内的最小模块(方法、类)进行测试
单元测试步骤:
1.在pom.xml添加依赖
2.下载插件file-settings-pliguis-junit
3.创建单元测试类Ctrl+Shift+T
4.单元测试类中写每个方法的单元测试代码
2)集成测试
组装测试在单元测试基础上,,按照一定的逻辑组合单元模块形成一个功能模块,重点关注模块和模块之间的接口
3)系统测试
整体测试项目,对功能、性能及软件运行的软硬件环境进行测试,包括回归测试和冒烟测试。
1) 冒烟测试:对软件基本流程和工作做的一个粗略测试,看基本流程是否跑通,一般对研发人员的第一个版本进行冒烟测试,测试系统是否具备可测性。
- 评价系统是否正式进入正式的测试环节依据——准入原则
- 提测用例:针对冒烟测试进行的测试用例,主要针对本次迭代的主要功能和系统核心流程进行测试用例的设计
2) 回归测试:修复一个bug后,把之前的测试用例在新的代码上再次测试(保障本次功能是正确的,且历史功能也是正确的)
- 回归测试策略:评价回归测试的范围、自动化测试
4)验收测试(交付测试)
部署软件前的最后一个测试操作。技术测试的最后一个阶段。确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,满足项目文档需求。相比系统测试多了一个文档测试。
α测试与Beta测试的区别:
测试的场所不同:Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。
测试的环境不同:Alpha测试的环境是受开发方控制的,用户数量相对比较少,时间较集中。beta测试的环境则相反,是不受开发方控制,用户数量相对比较多,时间不集中。
测试的时间不同:alpha先于beta测试。通用的软件产品需要较大规模的beta测试,测试周期比较长。
1)静态测试(依赖经验)
不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序是否有误。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。 检查项:代码风格和规则审核;程序设计和结构的审核;业务逻辑的审核;走查、审查与技术复审手册。
静态质量:度量所依据的标准是ISO25010。即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可维护性(Maintainability)、可移植性(Portability)。
代码静态分析和文档测试都属于静态测试
2)动态测试
写测试用例,运行被测程序,检查运行结果与预期结果的差异,分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
大多数软件测试工作都属于动态测试。
就是在预设条件(正常、异常)下运行系统或应用程序,评估运行结果。
自动化测试:功能测试自动化、性能测试自动化、安全测试自动化。(通常说的自动化是指功能测试自动化) 接口测试的ROI(产出投入比)要比UI测试高。
自动化测试按照测试对象分:接口测试、web自动化、APP自动化、UI测试等。
回归测试是自动化测试最好的用处
适用场合:
自动化测试实施步骤:
1.完成功能测试,版本基本稳定
2.根据项目特性,选择适合项目的自动化工具,并搭建环境
3.提取手工测试的测试用例转化为自动化测试的用例
4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
5.生成自动测试报告
6.持续改进,脚本优化。
白盒测试方法:语句覆盖法、逻辑覆盖法(含路径覆盖、判定覆盖、判定组合覆盖、条件覆盖)、循环覆盖法
软件本地化和国际化测试是一个综合了翻译行业和软件测试行业的测试类型。要求测试人员具备一定的翻译能力、语言文化,同时具备测试人员的基本技能。
本地化和国际化测试的一些要点:
测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。关注需求和用户
界面测试(UI测试),测试用户界面的功能模块的布局(文字、图片、控件)是否合理、整体风格是否一致、各控件放置位置是否符合人体工学;关注整体的协调,整体布局清晰
响应式测试:系统页面随屏幕分辨率不同而自适应,需注意:
- 页面文字随屏幕分辨率变化的时候不会重叠、遮挡、消失
- 页面图片随屏幕分辨率变化的时候不会重叠、遮挡、消失、模糊
- 页面功能随屏幕分辨率变化的时候没有消失
- 页面功能随屏幕分辨率变化的时候可以正常使用
- 严格遵循UI设计图
- 页面在不同的屏幕分辨率进行衔接、衔接是否四化、不出现断层
当系统由于外部环境的影响或用户的误操作导致系统发生错误,但系统可以进行自我处理,使其正常稳定运行。
容错性测试包括两个方面:
1)输入异常数据或进行异常操作,检验系统的保护性:如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。
比较温柔的容错性测试通常构造一些不合理的输入来引诱软件出错,例如:
(1)数据级别:日期、货币、时间
(2)验证级别:查询信息前后空格,trim(),验证码输入错误,同一个系统前后信息的容错处理
环境容错处理:系统运行时出现断电、断网,服务器故障的时候,可以随时切换电源、网络、备用服务器,而用户无感知。
界面容错处理:进行一些危险或用户禁止操作时,有无提示或者把功能屏蔽
测试文档和软件系统的一致性:文档的术语、正确性、完整性、一致性、易用性
包括平台测试、浏览器测试、软件本身能否向前或者向后兼容、数据兼容性、测试软件能否与其它相关的软件兼容的测试。最常见的是浏览器的兼容性测试,不同浏览器内核不一样,在css,js解析上的不同,会导致页面的显示不同。
是交互的适应性、功能性和有效性的集中体现,符合标准和规范、直观性、灵活性、舒适性、实用性,易用性属于人体工程学。
web的安全测试,需要熟悉各种网络协议TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等;
从软件来说,熟悉各种攻击手段,例如SQL注入、Xss等。作为web入门测试,可以IBM的appscan。
检查系统是否满足需求规格说明书中规定的性能。通常表现在以下几个方面:
为什么进行性能测试?
- 希望用户体验好,系统能快速响应用户的需求
- 系统能处理预期的用户负载、事务数量
- 在满足以上指标的情况下,可以稳定运行
内存泄露是会累积的,只要执行的次数足够多,最终会耗尽可用内存,使软件的执行越来越慢,最后停止响应。造成内存泄露最常见的有以下几种:
随机测试:对软件中的重要功能进行复测
探索性测试:一边了解学习项目,一边进行测试
在项目测试完毕后,需要出具测试报告:
整个测试过程:
需求分析(需求串讲、验证、从设计需求中提取)--测试计划(测试方案、测试策略)-测试用例编写(需求测试)--测试执行(冒烟测试、系统测试、回归测试,交叉测试、自由测试)--测试报告(缺陷分析、测试结论)
测试执行过程中,每收到一个测试版本都需要进行冒烟测试
版本发布之后,要跟踪、收集反馈信息
对测试需求、计划、用例和实施过程进行管理、对[软件缺陷进行跟踪处理的工具。记录、规范、统计、分析、回溯、改进,测试管理工具应该具有的基本功能如下:
工具:
QC/ALM:基于Web的测试管理工具
CQ:商业版本,专注于配置管理工作中的变更管理工具
JIRA:项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
TestLink开源:TestLink 是sourceforge用于管理测试用例和测试过程,缺少缺陷管理的功能
禅道国产开源:专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,实现了软件的完整生命周期管理。
启动禅道注意!!!
配置端口:修改Apache端口非8080,修改MySQL端口非3306
登录用户默认admin,密码123456
一款项目管理工具,管理软件开发的生命周期:需求分析——计划——设计——编码——测试——运行维护——测试用例管理——bug管理——报表统计
例题:如何测试一个APP??
从如下几部分考虑:
1.安装和卸载
一旦出错就是紧要重要的缺陷:主要关注以下几点:
2.运行
3.注册和登录
4.日历控件
5.权限设置
6.软件更新
强制更新和非强制更新
7.网络环境
中国电信、中国移动、中国联通
8.兼容性