自动化测试,包括了UI自动化和接口自动化测试!
仓库参考书籍和资源:
1.《测试之美》
2.《软件测试的艺术》
3.《软件测试常用技术与实用模版》 李龙、黎连业
4.《软件测试教程》贺平
5.《敏捷软件测试:测试人员与敏捷团队的实践指南》
6.《深入敏捷测试 整个敏捷团队的学习之旅》
测试(Test)就是为检测特定的目标是否符合标准而采用专用的工具或者方法进行验证,并最终得出特定的结果。
软件测试(Software Testing)
:在有限的时间内提高软件质量
的保证,是软件开发过程中重要的部分。
- 测试并不仅是为了找出错误,而且要通过分析错误产生的原因和错误的发生趋势,帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。
- 需要测试工程师设计出具有针对性的测试方法,以改善测试的有效性。
- 没有发现错误的测试也是有价值的,完整的测试是评估软件质量的一种方法。
综上总结:软件测试目的是尽可能早的发现软件中存在的陷并提高软件质量。
- 主要工作:
- 对需求规格说明书的仔细研究
- 将要测试的产品分解成可独立测试的单元
- 为每一个测试单元确定采用的测试技术
- 为测试的下一个阶段及其活动制定计划
- 制定计划包括两个部分:
- 概要测试计划
- 详细测试计划
测试大纲是软件测试的依据,包括测试项目
、测试步骤
、测试完成的标准
。
-
测试大纲的本质 从测试的角度对被测对象的功能和各种特性的细化和展开。
-
测试大纲的好处
- 保证测试功能不被遗漏,也不被重复测试
- 合理安排测试人员
- 使得软件测试不依赖个人
软件测试报告是软件测试过程中最重要的文档,包括如下内容:
- 记录问题 发生的环境
- 记录问题的 再现步骤
- 记录问题 性质的说明
- 记录问题的 处理进程
- 问题处理进程从一定角度上反映测试的进程和被测软件的质量状况以及改善过程。
软件测试执行过程的三个阶段
-
- 测试主要的功能和关键的执行路径,排除主要的障碍。
-
- 依据测试计划和测试大纲、测试用例,逐一测试功能、特性、性能、用户界面、兼容性、可用性等。
- 预期可发现大量不同的性质、不同严重程度的错误和问题。
-
- 系统已达到稳定,在一轮测试中发现的错误已十分有限;复查已知错误的纠正情况,确认未引发任何新的错误时,终结回归测试。
在集成测试过程中的两个重要部分是功能冻结
和代码冻结
的确定。这两个部分界定出回归测试期的起止界限。
- 功能冻结(Function/Feature Freeze)
- 经过测试,符合设计要求,确认系统功能和其他特性均不再做任何改变。
- 代码冻结(Code Freeze)
- 理论上,在无错误时冻结程序代码,但实际上,代码冻结只标志系统的当前版本的质量已达到预期的要求,冻结程序的源代码,不再对其做任何修改。这个里程碑是设置在软件通过最终回归测试之后。
软件测试根据不同的测试对象以及测试项目的背景可采用不同的测试模型实施测试活动。
软件测试模型有:V模型、W模型、H模型、X模型、敏捷测试
等。
➡️主要参考:《软件工程概论》
测试理念 | |
---|---|
尽早测试 | 测试人员尽早参与软件项目,及时开展测试的准备工作,包括编写测试用计划、制定测试方案、测试用例。 尽早地开展测试执行工作,一旦代码模块完成就应该开展单元测试,代码模块被集成为相对独立的子系统,就开展集成测试,一旦有了Build提交,便可以开展系统测试工作。 |
全面测试 | 对软件的所有产品进行全面的测试,包括需求、设计文档、代码、用户文档。 软件开发及测试人员全面参与到测试工作中,如对需求的验证和确认。 |
全过程测试 | 测试人员要充分关注开发过程。 测试人员要对测试的全过程进行全程的跟踪。 |
独立的、迭代的测试 | 只要测试条件成熟,测试准备活动完成,测试的执行活动就可以开展。 |
专业的测试部门完成 | 程序员应该避免测试自己的程序。 |
测试计划 | 制订严格的测试计划,安排足够的测试时间 |
修改有记录 | 方便第一时间跟踪 |
指对一项特定的软件产品测试任务的描述,体现测试方案、测试方法、测试策略和技术
。
- 避免程序遗漏
- 测试进度的把控
- 一个度量指标
- 分析缺陷的依据
- 项目的管理成本
编写测试用例需要遵守5C原则(Correct准确、Clear清晰、Concise简洁、Complete完整、Consistent一致) 。
大多数的测试用例包括:
测试用例必有内容 | 用例编号 | 所属模块 | 用例标题 | 用例优先级 | 前提条件 | 测试数据 | 操作步骤 | 预期结果 | 用例状态 |
---|---|---|---|---|---|---|---|---|---|
解释说明 | 测试用例的唯一标识,主要用来识别测试用例的目的。 用例编号需要具有指引性和维护性,格式一般由字母、数字、下划线组成。 |
为了更好识别以及维护用例。 一般会使用 JIRA进行管理 |
简洁明了的一句话来描述测试用例的关注点,原则上测试标题也具有唯一性。 | 一般划分为三个级别:高、中、低。 高优先级别用例是指软件的核心业务、基本功能、重要特性以及使用频率比较高的部分。 ➡️有的公司会用P0、P1、P2来划分哦! |
指测试用例在执行前需要满足的一些的条件,否则测试用例无法执行。 因果关系 |
执行测试用例的步骤描述,测试用例执行人员根据该操作步骤完成测试执行。 👉小技巧:可以熟悉文档后自己进行书写一份。方便开发复现Bug。 |
用来判断被测对象是否正常。 根据需求规格说明书来描述用户的期望。 |
用例状态一般分三种:PASS通过、FAIL失败、N/A未执行。 |
按照测试层次划分为四个层次:
-
底层层次:单元测试(Unit Testing)
-
系统层次:系统测试(System Testing)
一般按以下三种方式划分:
配置管理工具 | 缺陷管理工具 | 性能测试工具 | UI测试工具 | 接口测试工具 | 抓包工具 | 自动化测试工具 |
---|---|---|---|---|---|---|
SVN | Quality Center JIRA Mantis |
- kylinpet LoadRunner |
Airtest | Postman Jmeter |
fiddler httpwatch Wireshark Charles |
Appium - - - App UI自动化测试 移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台 Selenium - - - Web UI 自动化测试 Web应用程序测试的工具,Selenium测试直接运行在浏览器中。 Postman - - - 接口测试 Robot Framework - - - Web UI自动化测试,接口测试,APP测试 Jmeter - - - 接口测试,性能测试 Loadrunner - - - 性能测试 预测系统行为和性能的负载测试工具。 Monkey - - - App稳定性测试 Appscan - - - 安全性测试 Jenkins - - - 持续集成 自动化构建、编译、部署、任务执行、测试报告等。 |
超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)
最广泛的一种网络协议,是一种属于应用层的面向对象的协议。