软件测试的相关概念,流程,可使用工具等

什么是软件测试

使用技术手段对程序的使用需求进行验证,发现程序中的错误,缺陷和问题,确保软件符合规范和用户需求。

软件测试目的

减少软件缺陷,保证软件质量

软件测试工程师职责

  1. 找缺陷,提交缺陷,跟踪缺陷。

  2. 运行程序,执行测试用例,进行功能测试

  3. 设计并编写测试用例,用例评审等工作

  4. 测试总结,出具体测试报告

  5. 测试计划和测试方案的编写

测试主流技能

功能测试

主要验证程序的功能是否满足需求

接口测试

使用测试工具对后端的某个接口进行测试,是服务端性能测试的基础,是测试工程师的必备技能

接口测试主要的三步
  1. 接口文档解析

  2. 接口用例编写

  3. 实用工具执行接口测试用例

其中接口测试文档又称为API文档由后端开发人员编写,用来描述接口信息的文档

接口测试的好处
  1. 测试提前,后端接口写完后就可以测试,不需要界面

  2. 可以测试出功能测试测试不到的问题,接口测试可以绕过一些验证

  3. 更容易实现自动化测试

自动化测试

使用测试工具,批量的对接口进行测试,通过执行程序语言编制的测试脚本自动地测试软件

性能测试

使用测试工具(如 Jmeter),模拟多人访问,找到程序缺陷

测试分类

按阶段划分

  • 单元测试

    针对程序源代码进行测试(程序员测试),例如 Junit 测试

  • 集成测试

    又称接口测试,以模块为单位的测试,针对模块之间访问地址进行测试

  • 系统测试

    对整个系统进行测试,包括功能、兼容、文档等测试

  • 验收测试

    一般把项目部署到生产环境

    主要分为内测、公测、使用不同人群来发掘项目缺陷

按代码可见度划分

  • 黑盒测试

    不关注代码,只从 UI 界面操作测试,类时功能测试

  • 灰盒测试

    部分源码可见,不关注UI界面,例如接口测试

  • 白盒测试

    全部代码可见,不关注UI界面,针对源码测试,例如 Junit

质量模型

软件质量模型将软件质量属性划分为八个质量特性:

  1. 功能性

    当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力

    • 完备性:功能集对指定任务和用户目标的覆盖程度(明示和隐含的用户预期)

    • 适合性:功能促使指定的任务和目标实现的程度

    • 正确性:提供具有所需精度的正确或相符的结果或效果的能力

    • 功能性的依从性:产品或系统遵循与该功能相关的标准、约定或法规

    • 安全保密性:保护信息和数据的能力,以使未授权的人员或系统不能阅读或修改这些信息和数据, 而不拒绝授权人员或系统对它们的访问

  2. 性能

    相对于所用资源的数量,软件产品可提供适当性能的能力。

    • 时间特性:产品或系统执行其功能时,其响应时间、处理时间以及吞吐量满足需求的程度

    • 资源利用性:产品或系统执行其功能时,所使用资源数据量和类型满足需求的程度

    • 容量:产品或系统参数最大限度满足需求的能力

    • 效率的依从性:产品或系统遵循与效率相关的标准、约定或法规以及类似规定的程度

  3. 兼容性

    软件产品质量属性中的兼容性是指软件产品在共享软件或者硬件的条件下,产品、系统或者组件能够与 其他产品、系统或组件交换信息,实现所需功能的能力。

    • 共存性:在与其他产品共享通用的环境和资源的条件下,产品能够有效执行其所需的功能并且不会 对其他产品造成负面影响。

    • 互操作性:两个或多个系统、产品或组件能够交换信息并使用已交换的信息

    • 兼容性的依从性:产品或系统遵守与兼容性相关的标准、约定或者法规以及类似规定的程度

  4. 易用性

    产品被理解、学习、使用和吸引用户的能力。(易懂、易学、易用、漂亮)。

    • 可辨识性:帮助用户辨识产品或系统是否符合他们的要求,是否适合以及如何将产品用于特定的任 务和环境的能力

    • 易学性:使用户能学会其应用的能力

    • 易操作性:使用户能操作和控制的能力

    • 用户差错防御性:预防用户犯错的能力

    • 用户界面舒适性:提供令人愉悦的交互性的能力

    • 易访问性:产品或系统提供广泛功能供用户使用的能力

    • 易用性的依从性:产品或系统遵循与易用性相关的标准、约定或法规以及类似规定的程度

  5. 可靠性

    指在特定条件下使用时,软件产品维持规定的性能级别的能力。可靠性三要素:规定的环境、规定的时 间、规定的性能。

    可以从如下3个层层递进的句子来理解可靠性的要求:

    • 第一层:产品或系统最好不要出故障,即是成熟性

    • 第二层:产品、系统对故障和异常有一定的容忍度,出现故障了不要影响主要的功能和业务,即是错

    • 第三层:如果影响了主要功能和业务,系统可以尽快定位问题并恢复的能力,即是易恢复性。

    • 成熟性:避免由软件中故障而导致失效的能力(产品长时间运行功能出现失效的概率;软件自身错 误导致导致整个软件失效,对错误预先进行防范)

    • 容错性:在软件出现故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力

    • 易恢复性:在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力

  6. 安全性

    是指软件产品或系统保护信息和数据的程度,其可使用户、产品或系统具有与其授权类型、授权级别一 致的数据访问程度。

    • 保密性:产品或系统确保数据只有在被授权是才能被访问

    • 完整性:系统、产品或组件防止未授权访问、篡改计算机程序或数据的程度

    • 真实性:对象或资源的身份识别能够被证实符合其声明的程度

    • 抗抵赖性:活动或事件发生后可以被证实且不可被否认的程度(可以理解为系统需要有记录用户行 为日志并保留足够长的时间)

    • 可核查性:活体的活动可以被唯一追溯到该实体的程度

    从产品设计的角度来说,无论产品的目标对象是什么,形态是什么,都至少需要具备如下功能(又称产 品隐藏的安全需求)来满足基本的安全属性。

    1)认证和授权功能:产品、系统、组件需要通过认证才能访问,通过授权来确认访问者的访问权限, 不能非法越权、提权。

    2)加密功能:数据在存储和传输过程中均需要加密。

    3)审计功能:提供审计功能,并能将审计信息存储足够长的时间(如6个月)。

  7. 可维护性

    可被修改的能力。修改可能包括纠正、改进或软件对环境、需求和功能规格说明变化的适应。

    • 模块化:由多个独立组件组成的系统或程序,其中一个组件的变更对其他组件的影响最小的程度

    • 可复用性:资产能够被多个系统或其他资产建设的能力

    • 易分析性:可被诊断自身的缺陷/失效原因或标识其待修改部分的能力

    • 易修复性:产品能够被有效修改,且不会引入缺陷或降低现有产品质量的能力

    • 可测试性:能够为系统、产品或组件建立测试准则,并通过测试执行来确定测试准则是否被满足的 有效性和效率的程度

    • 可维护性的依从性:产品或系统遵循与可维护性相关的标准、约定或法规以及类似规定的程度

  8. 可移植性

    从一种环境转移到另一种环境的能力。(这里的环境可以理解为硬件、软件或者系统等不同的环境)

    • 适应性:无须采用额外的活动或手段就可适应不同的指定环境的能力

    • 易安装性:反映产品成功安装/卸载的有效性和效率的属性

    • 易替换性:在同样的环境下,产品能够替换另一个具有相同用途的指定软件产品的能力

    • 可一致性的依从性:产品或系统遵循与可移植性相关的标准、约定或法规以及类似规定的程度

软件测试流程

  1. 需求评审

    理解需求。测试团队需要详细了解软件的功能和性能需求,以便制定相应的测试计划和策略。

  2. 编写测试计划

    分工,谁来测试哪些功能。

    在需求分析的基础上,测试团队制定测试计划,确定测试的范围、目标、资源、时间表和责任人。测试计划通常包括测试的目标、测试方法、测试环境、测试数据、风险评估等内容。

  3. 编写测试用例

    如何进行测试,测试的各种情况,以覆盖软件的各种功能和场景。测试用例是描述 测试步骤、输入数据、预期结果和执行条件的文档,用于验证软件是否符合预期行为。

  4. 执行测试用例

    测试执行阶段。运行测试用例,记录测 试结果,并跟踪发现的缺陷。

  5. 缺陷管理

    测试团队跟踪和管理发现的缺陷。这包括记录缺陷、分配优先级、分配责任人、跟踪修复进度,并 验证修复后的缺陷。

  6. 生成测试报告

    测试完成后,测试团队生成测试报告,总结测试结果和发现的问题。测试报告通常包括测试覆盖率、通过率、失败率、缺陷统计等信息,以便项目团队和利益相关者了解软件的质量状况。

回归测试

随着软件的更新和修改,测试团队需要执行回归测试,确保已修复的缺陷没有引入新的问题,并验 证软件的稳定性和功能完整性。

持续改进

软件测试是一个持续改进的过程。测试团队应该定期评估测试过程和方法,识别改进的机会,并不 断优化测试策略和流程,以提高测试效率和软件质量。

测试用例

基本概念

测试用例就是为特定目的而设计的一组由测试输入、执行条件以及预期结果组成的文档。它是软件测试的核 心,用于验证软件是否满足需求规格说明书中的要求,以及找出软件中的缺陷。

简而言之: 是为测试项目而设计的执行文档

作用

  1. 防止漏测

  2. 实施测试的标准

  3. 指导测试执行

  4. 提高测试效率

  5. 促进团队协作和沟通

用例设计的编写格式

  1. 测试用例编号:唯一标识测试用例的编号,一般由项目 模块 编号组成。

  2. 测试标题:简要描述测试用例的目的。

  3. 测试模块:功能所属模块。

  4. 优先级:测试用例的优先级,通常用于确定测试执行的顺序。

  5. 前置条件:执行测试前必须满足的条件或状态。

  6. 测试步骤:执行测试的详细步骤。

  7. 测试数据: 实施测试时用到的哪些特殊数据。

  8. 预期结果:按照测试步骤执行后,系统应呈现的正确结果或状态。

  9. 测试状态:如未开始、进行中、已完成等。

  10. 负责人:负责编写和执行该测试用例的测试人员。

测试用例设计基本方法

  1. 等价类划分法

    测试中不可能对所有数据进行测试。在测试时,需要对数据进行分类,挑出每类中典型的代表。确定有效等价类(满足的合法的数据),确定无效等价类(不合法的数据)。

    案例: 用户名 6--10位自然数和大小写字母组合

    image-20250227124311979

  2. 边界值分析法

    主要是对输入内容的边界值进行测试,是对等价类划分法的补充。

  3. 判定表发

    以表格的形式,罗列出多条件相互依赖的关系。

    判定表法定义:是一种以表格形式表达多条件逻辑判断的工具。

    解决的问题: 解决多条件有依赖关系测试。

    1)明确需求

    2)画出判定表

    3)根据规则编写测试用例

  4. 场景法

    把实际使用的场景转化为流程图,根据操作的流程图步骤设计测试用例。也是解决多条件的测试问题。

缺陷管理

软件在使用过程中存在的任何问题都叫软件的缺陷,简称 bug。

判定缺陷的标准

  1. 少功能

  2. 功能错误

  3. 多功能

  4. 隐性功能未实现

  5. 不易使用(用户体验度),例如:查询慢

缺陷产生的原因

需求分析阶段:了解客户端需求时有歧义

文档,设计阶段

编码阶段

硬件环境

缺陷核心内容

缺陷的标题:描述缺陷的核心问题

缺陷的预期结果:希望得到的结果

缺陷的预置条件:缺陷产生的前提

缺陷的实际结果:实际的得到结果

缺陷的复现步骤:复现缺陷的过程

缺陷的必要附件:图片、日志等信息(证据)

缺陷类型

功能错误

界面(UI)错误

兼容性

数据

易用性

改进建议

架构

缺陷管理工具

禅道

国产项目的任务管理工具,可以同时提供给产品,研发,测试部门使用。

特点

国产、免费、开源、简单、轻量级

地址

禅道

测试工具

抓包工具

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也 用来检查网络安全。抓包也经常被用来进行数据截取等。

Charles

是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请 求和请求结果达到分析抓包的目的。

接口测试工具

postman、apipost、jmeter

Jmeter

jmeter是Apache 组织使用 Java开发的一款测试工具

  1. 可以用于对服务器、网络或对象模拟巨大的负载

  2. 通过创建带有断言的脚本来验证程序是否能返回期望的结果

软件测试过程模型

开发瀑布模型

image-20250227130257470

V模型

站在软件开发整个生命周期的角度上划分。V模型是最具有代表意义的测试模型。V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系。

image-20250227130313208

W模型

站在测试人员的角度上,当需求给测试、开发人员后,开始接入。前期主要是对测试的计划,任务分配,用例的编写。W模型由两个V字型模型组成,分别代表测试与开发过程,测试与开发是并行关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Black—slience

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值