⭐️前言⭐️
本篇文章开始,博主带领大家走入新篇章——软件测试,使得自己慢慢掌握测试开发的技能,能使得自己在职场竞争中更具竞争力。
博客主页: 【如风暖阳】
精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】
欢迎点赞 收藏 ⭐留言评论 私信必回哟本文由 【如风暖阳】 原创,首发于 CSDN
博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言
博客中涉及源码及博主日常练习代码均已上传码云(gitee)、GitHub
最常见的理解是:软件测试就是找BUG,发现缺陷。
就像我们在刚买来一部手机或者一台电视的时候,会进行一遍检查,看看能不能正常使用,就是在“测试”。
软件测试就是验证软件产品特性是否满足用户的需求。
调试和测试共有以下三点的不同:
需求就是指满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。
用户需求就是指甲方提出的需求,该需求一般比较简略。
软件需求或者叫功能需求,会详细描述开发人员必须实现的软件功能。
公司在进行软件开发的时候,会把用户需求转化为软件需求,因为用户需求存在市场可行性和技术可行性的问题,并不一定能够实现,所以需要产品经理主刀,与其他人员共同,根据用户需求来制定软件需求,来详细的描述必须实现的软件功能,让开发人员和测试人员进一步开展工作。
软件需求是测试人员进行测试工作的基本依据(用户需求并不能直接作为测试或开发人员的基本依据,因为用户需求不一定合理、正确,需要进行用户需求的提取和分析,将其转化为软件需求,再作为进一步工作的依据)
历史上的第一个BUG:
1945年9月的某天,在一间老式建筑里,从窗外飞进来一只飞蛾,此时Hopper正埋头工作在一台名为Mark II的计算机前,并没有注意到这只即将造就历史事件的飞蛾。这台计算机使用了大量的继电器(电子机械装置,那时还没有使用晶体管)。突然,Mark I死机了。Hopper试了很多次还是不能启动,他开始用各种方法查找问题,最后定位到了某个电路板的继电器上。Hopper观察这个继电器,惊奇地发现一只飞蛾已经被继电器打死。Hopper小心地用镊子将飞蛾夹出来,用透明胶布贴到“事件记录本”中,写上“第一个发现虫子的实例”。Hopper的事件记录本,连同那只飞蛾,现在都陈列在美国历史博物馆中。
bug的概念:
测试用例是为了实施测试而向被测试系统提供的一组集合,这组集合包含:测试环境、测试步骤、测试数据、预期结果等要素。【主要解决测什么和怎么测两个问题】
以注册网易邮箱为例,体会什么是测试用例:
标题:注册网易邮箱
测试环境:
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.点击注册
预期结果:
展现注册成功的结果页,并且使用账号可以正常登录。
围绕着软件需求来设计测试用例,解决了重复测试的问题,测试用例要保持的原则是避免用后即弃。
软件的生命周期是指从软件产品的设想开始,到软件不再使用而结束的时间。
如果把软件看成是有生命的事物,那么软件的生命周期可以分为六个阶段,即需求分析——计划——设计——编码——测试——运行维护。
瀑布模型是其他所有模型的基础框架,其特点是线性的开发流程,并不能够应对需求而发生变化,这就导致产生了测试被后置的缺陷。
测试被后置将会使得风险往往被推至后期才显露,失去了及早纠正的机会;而且必须有足够的时间预留给测试阶段,否则将导致测试不充分,从而把缺陷直接遗留给客户。
该模型适用的场景只有需求固定的小项目。
一般在软件开发初期阶段,需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一。
该模型引入了全流程的风险分析(其实相当于在瀑布模型的每个阶段后进行了风险分析),每次分析完成后都会生成一个新的原型。
该模型的适用场景:需求不确定,变化的可能性很大的大型项目。
缺陷:风险暴露的可能性与风险分析人员的能力有关,消耗一定的资金和时间
增量模型把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
优势:产品能够在较短时间内尽快的交付给用户去使用(可以只有部分功能)
迭代模型是先开发一个基础版本(包含功能A、B、C),但是A、B、C功能比较简陋,接下来会在这个基础版本上对A、B、C功能进行迭代优化。
增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。
《敏捷宣言》
个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在上述的《敏捷宣言》中体现了敏捷模型的特点:
轻文档,轻流程,重目标,重产出,响应变化。
敏捷开发有很多种方式,其中scrum是比较流行的一种,在scrum流程中,有三个角色和五个会议。
三个角色:
产品经理:收集用户的需求,编写需求文档,对产品负责
项目经理:负责召开各种会议,协调项目,为研发团队服务。
研发团队:开发人员、测试人员、ui设计人员等等。
五个会议和scrum的开发流程:
scrum模型中每个迭代周期为1~4周,通常情况下为一周。
在软件测试模型中有V模型和W模型,下边我们来具体了解:
V模型是瀑布模型的一种演化,目的是改进软件开发的效率和结果。
⭐️最后的话⭐️
总结不易,希望uu们不要吝啬你们的哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正