软件测试——概念

什么是软件测试?

最常见的理解是:软件测试就是找BUG,发现缺陷。
概念:软件测试就是一系列活动,这些活动是为了评估一个程序或者软件系统的特性或能力,并确定是否达到了其预期的效果。

需求

  • 需求的定义
    用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略。(一句话)
    软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能(一个文档,描述用户需求如何实现)
  • 为什么有需求
    明确开发和测试的模块或者功能
  • 测试眼中的需求
    在具体设计测试用例的时候,首先需要搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例。
    过程如下,业务需求—>软件功能需求点—>测试需求点—>测试用例

测试用例(Case)

  • 什么是测试用例
    测试用例是一组集合,测试环境,测试数据,预期结果,操作步骤等
  • 为什么有测试用例
    测试用例是提高测试人员工作效率,降低测试人员工作的重复性问题
    是建立自动化测试的基础

BUG

实际结果与软件需求(规格说明书)结果不匹配
错误不是bug

软件生命周期

如果把软件看成是有生命的事物,那么软件的生命周期可以分成6个阶段,即需求分析、计划、设计、编码、测试、运行维护。
需求分析:分析需求是否合理,需求是否完整
计划:工作人员和测试的安排
设计:软件页面设计和结构设计
编码:编写代码
测试:测试软件可能出现的问题发现问题反馈给开发人员
运行维护:如有问题,协助开发人员定位解决问题

开发模型和测试模型

开发模型
  • 瀑布模型
    在这里插入图片描述
    特:线性的
    优:每个阶段的任务和产出非常清晰
    缺:风险到后期才显露,失去早期纠正问题的机会
    适:周期短的项目
  • 螺旋模型
    在这里插入图片描述
    优:避免线上问题
    缺:风险分析可能会出错,需要人力财力
    适:适用于风险多 比较大的项目
  • 增量迭代模式
    增量:登录开发完成——>创建课程——>上课
    迭代:登录开发有办法——>创建课程开发一部分——>开发上课模块一部分
  • 敏捷模式
    敏捷宣言:
    个体与交互重于过程和工具
    可用的软件重于完备的文档(开发文档 需求文档)
    客户协作重于合同谈判
    响应变化重于遵循计划
    在每对比对中,后者并非全无价值,但我们更看重前者。
    敏捷中的scrum开发模式:
    三大角色:product owner(产品经理)、scrum master(项目经理)和team(研发团队)
    其中product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
    scrum master 负责召开各种会议,协调项目,为研发团队服务。
    研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
    迭代开发:与瀑布不同,scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4 周。参与的团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。
    在这里插入图片描述
    产品负责人负责整理user story,形成左侧的product backlog。
    发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
    迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
    每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
    演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
    回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。
测试模型
  • V模型
    在这里插入图片描述
    用户需求:PM将用户需求收集形成软件需求
    需求分析与系统:验证需求是否正确,确定编程语言
    概要设计:项目结构如何设计
    详细设计:每个接口涉及那些库表,涉及那些任务
    编码:写代码
    单元测试:java中测试每一个方法
    集成测试:许多方法集成到一起测试
    系统测试:模块和模块之间无影响
    验收测试:验收的人 产品,运营
    特点:左边是开发,右边是测试
    优点:测试被划成许多类型
    缺点:测试人员介入太晚,发现问题的时机晚
  • w模型
    在这里插入图片描述
    特点:开发是一个v,测试是一个v
    优点:测试人员尽早介入了需求
    缺点:测试人员和开发人员一定程度上还是串行的 不能拥抱变化,不能适用于敏捷
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值