当前位置: 首页 > news >正文

认识软件测试

今天小编来分享下什么是测试。

这个里的测试是指软件测试

软件测试:是通过执行程序、系统、组件,以验证其是否满足规定的需求、发现其中存在的bug并评估其质量过程

与其类似还有一个,软件测试开发工程师

软件测试开发工程师:是介于传统测试工程师与开发工程师直接的角色,不仅负责测试策略与用例设计、还具有较强的编码能力、开发自动化测试框架、工具、脚本,以提升测试效率和质量保障能力。

那么值得注意的是,有些公司它招人是测试,但它也有可能会让你干测开的活。

接下来,小编再来分享一下关于测试的相关知识

需求

在多数的软件公司中,需要分为两种,一种是软件需求,一种是用户需求。

用户需求:

以最终用户或客户角度出发,描述他们希望系统“能做什么”或“解决什么问题”的高层次、业务导向的诉求。通常以自然语言、用例或用户故事的形式表达

示例:

“用户希望能够通过手机号一键登录,无需记住密码。”

软件需求:

是将用户需求转化为技术团队可理解、可验证、可实现的详细规范,明确系统“必须具备哪些功能”和应满足哪些约束条件“。它是开发和测试工作的直接依据

这里还分为功能性需求、非功能性需求

功能性需求:

描述系统应提供的具体功能或行为

示例:

”系统应在用户输入错误密码5次后锁定账户30分钟“

非功能性需求:

描述系统运行时的质量属性或约束条件,如性能、安全性、可用性、兼容性等

示例:

”系统应支持1000万并发用户同时登录,响应时间不超过2秒“

对比如下:

开发模型

分享这个开发模型之前,不能不提一句软件开发的生命周期。

软件开发的生命周期:

需求分析——>计划——>设计——>编码——>测试——>运行维护。

阶段主要工作内容关键产出物测试角色关注点
1. 需求分析与用户/业务方沟通,收集、分析、确认系统需要实现的功能和约束;明确“做什么”。- 用户需求文档(URD)
- 软件需求规格说明书(SRS)
- 用户故事/用例
- 参与需求评审
- 评估需求的可测试性
- 识别测试范围和风险
- 初步定义验收标准
2. 计划制定项目整体计划,包括时间、资源、技术方案、风险管理等;测试团队制定测试策略。- 项目计划书
- 测试计划(Test Plan)
- 质量保证计划
- 编写测试计划(范围、方法、资源、进度、风险)
- 确定测试类型(功能、性能、安全等)
- 规划自动化策略
3. 设计系统架构设计、模块划分、数据库设计、接口定义等;将需求转化为技术方案。- 系统架构图
- 详细设计文档(DDD)
- 接口文档(API Spec)
- 参与设计评审
- 设计测试方案与测试用例
- 准备测试数据和环境
- 设计自动化测试框架(如适用)
4. 编码开发人员根据设计文档编写代码,实现功能。- 源代码
- 单元测试代码
- 构建产物(如 jar、apk、exe)
- 编写/维护自动化测试脚本
- 执行冒烟测试/每日构建验证
- 与开发协作进行缺陷修复验证
- 推动单元测试覆盖率
5. 测试执行各类测试,验证系统是否满足需求,发现并跟踪缺陷。- 测试用例
- 测试报告
- 缺陷报告(Bug List)
- 质量评估报告
- 执行功能、回归、集成、系统等测试
- 提交并跟踪缺陷
- 验证修复结果
- 输出发布质量建议
6. 运行维护项目测试结束之后,项目需要进行上线,并对产品进行 线上的维护。线上的维护主要分为三个方面。分别为修 复性维护、完善性维护和预防性维护。 修复性维护:对项目中未发现的问题进行修复。 完善性维护:对功能进行完善。 预防性维护:居安思危,为了避免产品在线上出现一 些其他不可预料的问题,进行一些防护的手段- 运维日志
- 用户反馈记录
- 热修复/补丁版本
- 监控线上质量(如错误率、性能)
- 支持线上问题复现与定位
- 回归测试补丁版本
- 收集生产问题用于改进测试覆盖

常见的开发模型:

瀑布模型:

开始——>需求分析——>计划——>设计——>编码——>测试——>结束

可以看到和软件的生命周期还是有点类似的

优缺点如下:

优点

缺点

1.强调开发的阶段性

2.线性结构,每个阶段只执行一次

3.是其他模型的基础框架

1.测试后置

    前面各阶段遗留下来的风险推迟到测试阶段才被发现,导致项目大面积返工,失去了及早修复的机会

     必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给用户

2.周期长,产品或许很迟才能被看到和使用,可能会导致需求/功能过时

综上来说,瀑布模型适用场景:需求固定的小项目

螺旋模型:

图片来源:https://www.itcast.cn/news/20201008/15522827061.shtml

在有些场景中,软件开发的初期需求不是很明确时,会采用渐进式的开发模型。而螺旋模型是渐进式开发模型代表之一。

优缺点如下:

优点

缺点

强调严格的全过程风险管理

强调各开发阶段的质量

增加风险分析和原型

项目中存在发风险性与风险管理人员的技能水平有直接关系

需求人员、资金、时间的增加和投入,可能导致项目成本过高

增量、迭代模型:

增量模型:

将系统划分为多个功能增量,每个增量都是一个可交付的完整子系统,逐步叠加直至完成全部功能。

可以理解为:先做一部分功能、做完再做下一部分

迭代模型:

通过多次循环开发、每次迭代都包含需求、设计、编码、测试等完整流程,逐步完善系统

可以理解为:每次做全功能、但越来越完善

优缺点对比如下:

对比维度

增量模型(Incremental Model)

迭代模型(Iterative Model)

优点

- 用户可早期使用部分功能
- 降低一次性交付风险
- 便于资源分阶段投入

- 快速响应变化
- 持续改进质量
- 技术风险早暴露

缺点

- 增量间接口需提前规划,否则集成困难
- 后期修改早期增量成本高

- 管理复杂度高
- 需要较强自动化与协作能力
- 可能缺乏整体架构规划(若控制不当)

敏捷模型:

敏捷模型是一种以人本、协作、响应变化和可工作软件为核心的软件开发方法论,强调小步快跑、持续交付、快速反馈,它不是单一的模型,而是一类方法的统称。

它存在着一个重要的《敏捷宣言》内容如下:

个体与交互重于过程和工具

可用的软件重于完备的文档

客户协作重于合同谈判

响应变化重于遵循计划

由此可以总结出四个特点:轻文档、轻流程、重目标、重产出

敏捷开发有很多方式,其中较为流行的是:scrum方式

scrum:又称为迭代式增量软件开发模型

其中三个角色和五个重要会议是比较重要的

三个角色:

1.product owner(产品经理) :负责整理user story(用户故事) 定义商业价值,对其进行排序,制定发布计划,对产品负责

2.scrum master(项目经理):负责召开各种会议,协调项目,为研发团队服务。

3.team(研发团队):研发团队由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品

五个重要会议:

1.发布计划会议:

产品经理负责讲解用户故事,对其进行估算和排序,发布计划会议的产出:就是制定这一期迭代要完成的story列表,sprint backlog

2.迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初步预估

3.每日例会:项目经理召集站立会议,团队成员回答昨天做了什么、今天计划做什么、有什么问题

4.演示会议:迭代结束后,召开演示会议,相关人员都受邀参加,团队负责人向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由产品经理整理,形成新的story

5.回顾会议:项目团队对本期迭代进行总结、发现不足、制定改进计划,下一次迭代继续改进,以达到持续改进的结果

那么对于这个开发模型分享到这里,接下来分享下测试模型

测试模型:

在测试中,有两个非常重要且具有标记性的测试模型:V模型和W模型

V模型:

V模型是瀑布模型在测试领域的延伸,强调开发阶段与测试阶段的一一对应关系,左侧是开发活动,右侧是测试活动,形成V字形结构

优点:

明确标注了测试过程中存在的不同类型的测试,并且清除的描述了这些测试阶段和开发过程期间各阶段的对应关系,有效提升测试的质量和效率

缺点:仅仅把测试作为编码之后的一个阶段,未在需求阶段就介入测试,缺点就类似于瀑布模型

W模型

是对v模型进行改进,它强调:测试不仅针对程序本身,也针对开发过程中所有工作产物(如需求文档,设计文档),且测试活动与开发活动并行开展。

图片来源:https://blog.csdn.net/weixin_51059284/article/details/123208765
W模型的核心特点:

有两个V字叠加,形成W形

      左侧V:开发过程+对应的测试设计

      右侧V:验证与确认并行

测试对象扩展:不仅测代码、还测需求、设计等文档(即静态测试)

测试尽早介入:从需求阶段就开始测试活动(如评审、检查);

对比如下:

http://www.dtcms.com/a/427636.html

相关文章:

  • 网站服务器数据库湛江网站建设公司哪个好
  • 动手实现简单Vue.js ,探索Vue原理
  • UNIX下C语言编程与实践18-UNIX 文件存储原理:目录、i 节点、数据块协同存储文件的过程
  • 珠宝怎么做网站wordpress 活动报名插件
  • 除自身以外数组的乘积
  • 爬虫逆向--Day25Day26--原型链补环境
  • 拍拍灯电路(用咪头识别拍拍动作)
  • 极限!ubuntu系统联网
  • 第三章 字典与集合
  • 网站设计的价格沪深300指数基金
  • Java-01-基础篇-JDK日志(JUL)
  • (基于江协科技)51单片机入门:7.LED点阵屏
  • 江协科技 CAN总线入门课程(错误处理)
  • 网站的建设与规划方案企业网站建设要素
  • antdv- Tooltip 文字提示组件
  • 算法题(222):摆花
  • 如何向alexa提交网站wordpress custom login
  • SpringCloud电商微服务项目衣拉客搭建指南
  • dev c++工具下载 dev c++安装包下载 dev c++软件网盘资源分享
  • 如何去掉Excel多余空行
  • 房地产网站欣赏万网空间管理
  • 做多语言网站多少钱免费网站安全软件大全下载安装
  • 【密码学实战】openHiTLS X509命令行工具: 数字证书生成与转换
  • 从“减塑”到“降碳”新天力“2R”模式推动行业低碳转型
  • AFSim雷达显控一体化
  • 网站建设类型智盈中心网站建设
  • 零基础从头教学Linux(Day 45)
  • 网站策划方案论文wordpress软件网站模板下载
  • 大数据变长存储算法
  • Ubuntu22.04安装Samba服务器