第一章 – 理解软件测试
1. 软件测试的概念
- 广义概念:指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认
- 狭义概念:识别软件缺陷的过程,即实际结果与预期结果的不一致
2. 软件测试的目的
- 测试的目的就是发现软件中的各种缺陷
- 测试只能证明软件存在缺陷,不能证明软件不存在缺陷
- 测试可以使软件中缺陷降低到一定程度,而不是彻底消灭 。
- 以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量 。
3. 软件测试的意义
- 解放程序员和售后服务人员。
- 软件测试可以降低软件质量风险,使程序员能够更专心于解决程序的算法和效率。
- 同时经过严格检验的完整产品也减轻了售后服务人员的工作量。
4. 测试工作流程
5. 测试基本工作
划(Program)
- 针对整个测试工作作出计划性的策略,其中包括:被测项目、测试执行时间、测试进度、测试策略、测试工具、参与人员等信息。
- 参考 址:https://blog.csdn.net/weixin_43664254/article/details/89239052
例(Case)
- 测试用例,是为了实施测试而面向被测试的系统提供的一组集合,包含标题,模块,环境,操作平台,前置条件,操作步骤,输入数据,预期结果,附件,备注等。
注意: 每一条测试用例都只有唯一的一条编 ,一个功能点可能对n条测试用例 - 参考 址:https://blog.csdn.net/weixin_43664254/article/details/89244714
测试用例解决的问题:
- 不知道是否较全面的测试了所有功能
- 测试的覆盖率无法衡量(测试覆盖率=测试用例的条数/软件的功能个数)
- 对新版本的重复测试很难实施(新版本可以在旧版本基础上增加测试用例)
- 存在大量冗余测试影响测试效率(将旧版本的测试用例个数进行删减)
陷(Bugs)
strong>bug的定义: 当软件需求说明存在并且正确,程序与规格说明之间不匹配的地方,当程序没有实现最终用户合理预期的功能要求时,就是软件错误
- 参考 址:https://blog.csdn.net/weixin_43664254/article/details/89314406
strong>解决方法:
.第一时间找到问题解决问题
.版本的回滚
结(Summary )
- 测试工作完成后,编写测试 告。对整个测试过程编写一份总结性文档。
- 内容包括:被测项目,测试参与人员、缺陷汇总 告,测试完成时间等信息。
- 参考 址:https://blog.csdn.net/weixin_43664254/article/details/89315897
第二章 – 理解软件开发
.什么是需求
满足用户需求期望或正式规定文档所具备的条件和权能,包含用户需求和软件需求。
需求是开发和测试的依据,需求不一定完全正确也需要进行验证。
.什么是事件流
一个事件的操作流程
.什么是配置管理
- 是通过技术或行政手段堆软件产品及其开发过程和声明周期进行控制、规范的一系列措施。
- 目标:记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。
4.软件生命周期(SDLC)的六个阶段
)、问题的定义及规划
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
)、需求分析
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。“唯一不变的是变化本身。”,同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。
)、软件设计
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。
)、程序编码
此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
)、软件测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。
测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
)、运行维护
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。
. 软件生命周期模型
- 从概念提出的那一刻开始,软件产品就进入了软件生命周期。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为”生命周期模型”(Life Cycle Model)。
- 典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型。
瀑布模型的特点(文档是主体),很多的问题在最后才会暴露出来。迭代模型比瀑布模型问题暴露的要早;快速原型法比瀑布模型直观。
第三章 – 测试策略
单元测试
- 完成对最小的软件设计单元—模块的验证工作
- 目标是确保模块被正确地编码
- 使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误
- 通常情况下是面向白盒的
- 对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试,及早地发现和解决不易显现的错误
- 单元测试的内容 接口测试 ;内部数据结构;全局数据结构 ;边界覆盖;语句覆盖;错误路径
集成测试
- 通过测试发现与模块接口有关的问题
- 目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构
- 应当避免一次性的集成(除非软件规模很小),而采用增量集成
- 集成测试主要内容
- API
- API/参数组合
系统测试
- 根据软件需求规范的要求进行系统测试,确认系统满足需求的要求
- 系统测试人员相当于用户代言人
- 在需求分析阶段要确定软件的可测性,保证有效完成系统测试工作
- 系统测试主要内容
- 所有功能需求得到满足 所有性能需求得到满足
- 其他需求(例如安全性、容错性、兼容性等)得到满足
用户验收/确认测试
Alpha测试
- 是由用户在开发者的场所来进行的,Alpha测试是在一个受控的环境中进行的
Beta测试
- 由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场,用户记录测试中遇到的问题并 告给开发者
压力测试VS性能测试
-
性能测试的目的不是去找bugs,而是排除系统的瓶颈,以及为以后的回归测试建立一个基准。而性能测试的操作,实际上就是一个非常小心受控的测量分析过程。在理想的情况下,被测软件在这个时候已经是足够稳定了
-
性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个 站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。 概括就是:在不同负载下(负载一定)时,通过一些系统参数(如反应时间等)检查系统的运行情况;
-
压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可以接受的范围内,比如经常规定的叶面3秒钟内响应;概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。
-
举例说明:针对一个 站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试。如果同时对系统进行大量的数据查询操作,就包含了强度测试。
第四章 – 主流测试工具
性能压力测试
名称 | 优点 | 缺点 | 操作难度 | 收费 |
---|---|---|---|---|
loadrunner | 功能强大支持录制脚本 | 商业版,收费。 | 简单 | 收费 |
jmeter | 功能强大支持录制脚本 | 学习成本高 | 中等 | 免费 |
soapUI | 功能强大支持录制脚本 | 学习成本高 | 困难 | 收费 |
Selenium+TestNG | 不能生成测试 告 | 学习成本高 | 困难 | 免费 |
HTTPLoad | 功能简单,只能简单压力测试 | 学习成本 | 简单 | 免费 |
功能测试
名称 | 优点 | 缺点 | 收费 | 客户端 | 录制 | 支持语言 |
---|---|---|---|---|---|---|
katalon | 功能强大,操作简单 | 新软件,用户不多,教程少 | 免费 | 有 | Yes | JS |
Selenium | 功能强大,操作繁琐 | 无客户端,安装繁琐 | 免费 | 无 | Yes | 多语言 |
QTP | 功能强大,操作简单 | 需要收费 | 收费 | 有 | Yes | VBS |
接口测试
名称 | 优点 | 学习成本 | 收费 | 客户端 | 录制 |
---|---|---|---|---|---|
Jmeter | ~~~ | 高 | 免费 | 有 | Yes |
soapUI | ~~~ | 高 | 收费 | 有 | Yes |
postMan | ~~~ | 中 | 免费 | 有 | Yes |
Curl | ~~~ | 中 | 免费 | 无 | No |
安全测试
名称 | 优点 | 缺点 | 收费 | 客户端 |
---|---|---|---|---|
APPScan | 针对WEB应用进行自动安全扫描 | 学习成本第 | 收费 | 有 |
测试管理工具
名称 | 优点 | 缺点 | 收费 | 客户端 |
---|---|---|---|---|
禅道 | 功能多样,使用与整个项目管理 | 全部内容需要收费 | ~ | Yes |
BugZilla | 只能用来管理缺陷,生成测试 告 | 安装繁琐 | 免费 | No |
备注:目前就能想到这些,后续会介绍软件如何使用!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!