⭐️前言⭐️
本篇文章开始,博主带领大家走入新篇章——软件测试,使得自己慢慢掌握测试开发的技能,能使得自己在职场竞争中更具竞争力。
🍉博客主页:****🍁【如风暖阳】🍁
🍉精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】
🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁🍉本文由 【如风暖阳】 原创,首发于 CSDN🙉
🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言
🍉博客中涉及源码及博主日常练习代码均已上传码云(gitee)、GitHub
📍内容导读📍
🍅1.什么是软件测试?
最常见的理解是:软件测试就是找BUG,发现缺陷。
就像我们在刚买来一部手机或者一台电视的时候,会进行一遍检查,看看能不能正常使用,就是在“测试”。
软件测试就是验证软件产品特性是否满足用户的需求。
🍅2.调试和测试的区别
调试和测试共有以下三点的不同:
- 1.目的不同 - 调试:为了发现并解决软件中的缺陷- 测试:为了发现软件中的缺陷
- 2.参与的角色不同 - 调试:开发人员- 测试:测试人员、开发人员
- 3.执行阶段不同 - 调试:编码阶段- 测试:贯穿于软件的整个生命周期
🍅3.软件测试的常见名称解释
3.1 需求
需求就是指满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。
用户需求就是指甲方提出的需求,该需求一般比较简略。
软件需求或者叫功能需求,会详细描述开发人员必须实现的软件功能。
公司在进行软件开发的时候,会把用户需求转化为软件需求,因为用户需求存在市场可行性和技术可行性的问题,并不一定能够实现,所以需要产品经理主刀,与其他人员共同,根据用户需求来制定软件需求,来详细的描述必须实现的软件功能,让开发人员和测试人员进一步开展工作。
3.2 bug
历史上的第一个BUG:
1945年9月的某天,在一间老式建筑里,从窗外飞进来一只飞蛾,此时Hopper正埋头工作在一台名为Mark II的计算机前,并没有注意到这只即将造就历史事件的飞蛾。这台计算机使用了大量的继电器(电子机械装置,那时还没有使用晶体管)。突然,Mark II死机了。Hopper试了很多次还是不能启动,他开始用各种方法查找问题,最后定位到了某个电路板的继电器上。Hopper观察这个继电器,惊奇地发现一只飞蛾已经被继电器打死。Hopper小心地用镊子将飞蛾夹出来,用透明胶布贴到“事件记录本”中,写上“第一个发现虫子的实例”。Hopper的事件记录本,连同那只飞蛾,现在都陈列在美国历史博物馆中。
bug的概念:
- 当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。
- 当需求规格说明书没有提到的功能,判断标准以最终用户为准;当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
3.3 测试用例
测试用例是为了实施测试而向被测试系统提供的一组集合,这组集合包含:测试环境、测试步骤、测试数据、预期结果等要素。
以注册网易邮箱为例,体会什么是测试用例:
标题:注册网易邮箱
测试环境:
windows 10
Microsoft Edge 版本 107.0.1418.56 (正式版本) (64 位)
测试数据:
邮箱地址:abc
密码:123456
手机号:13137197608
验证码:123
测试步骤:
1.打开微软浏览器,输入网易注册地址https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail
2.输入邮箱地址、密码、手机号,获取验证码并输入验证码,勾选用户协议
3.点击注册
预期结果:
展现注册成功的结果页,并且使用账号可以正常登录。
围绕着软件需求来设计测试用例,解决了重复测试的问题,测试用例要保持的原则是避免用后即弃。
🍅4.软件的生命周期
软件的生命周期是指从软件产品的设想开始,到软件不再使用而结束的时间。
如果把软件看成是有生命的事物,那么软件的生命周期可以分为六个阶段,即需求分析、计划、设计、编码、测试、运行维护。
- 需求分析:分析用户需求是否合理(市场分析、技术分析),完成软件需求文档。
- 计划:制定需求执行计划。
- 设计:将需求细化成一个个任务,进行技术设计(设计哪些接口,采用哪些技术),产出设计文档。
- 编码:开发人员按照需求文档以及设计文档来进行编码。
- 测试:测试人员参考测试用例来执行测序
- 运行维护:项目上线之后对产品进行线上的维护
🍅5.开发模型
5.1 瀑布模型
瀑布模型是其他所有模型的基础框架,其特点是线性的开发流程,并不能够应对需求而发生变化,这就导致产生了测试被后置的缺陷。
测试被后置将会使得风险往往被推至后期才显露,失去了及早纠正的机会;而且必须有足够的时间预留给测试阶段,否则将导致测试不充分,从而把缺陷直接遗留给客户。
该模型使用的场景只有需求固定的小项目。
5.2 螺旋模型
一般在软件开发初期阶段,需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一。
该模型引入了全流程的风险分析(其实相当于在瀑布模型的每个阶段后进行了风险分析),每次分析完成后都会生成一个新的原型。
该模型的适用场景:规模庞大、复杂度高、风险大的项目。
缺陷:时间拉长、人力、资金耗费大。
5.3 增量模型和迭代模型
增量模型把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
迭代模型是先开发一个基础版本(包含功能A、B、C),但是A、B、C功能比较简陋,接下来会在这个基础版本上对A、B、C功能进行迭代优化。
5.4 敏捷模型
《敏捷宣言》
个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在上述的《敏捷宣言》中体现了敏捷模型的特点:
轻文档,轻流程,重目标,重产出,响应变化。
敏捷开发有很多种方式,其中scrum是比较流行的一种,在scrum流程中,有三个角色。
产品经理:收集用户的需求,编写需求文档,对产品负责
项目经理:负责召开各种会议,协调项目,为研发团队服务。
研发团队:开发人员、测试人员、ui设计人员等等。
scrum的基本流程如下图所示:
- 产品负责人负责整理用户需求,形成左侧的product backlog(需求待办列表)
- 发布计划会议:产品经理负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog
- 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
- 每日例会:每天项目经理召集站立会议,团队成员回答昨天做了什么,今天计划做什么,有什么问题。
- 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由产品经理整理,形成新的story。
- 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,以达到持续改进的效果。
🍅6.测试模型
在软件测试模型中有V模型和W模型,下边我们来具体了解
6.1 V模型
V模型是瀑布模型的一种演化,目的是改进软件开发的效率和结果。
- 特点:左边每一个阶段和右边的阶段一一对应,左边每个阶段是右边测试每一个阶段的依据。
- 缺点:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试,若有问题不能及时解决。 串行
6.2 W模型
- 特点:双V模型,开发一个V,软件测试一个V,软件开发的过程和软件测试能同步进行,保证项目前期的问题能够及时被发现。
- 缺点:串行,不支持敏捷开发。
⭐️最后的话⭐️
总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁
版权归原作者 如风暖阳 所有, 如有侵权,请联系我们删除。