软件测试认识

    • 什么是软件测试:
    • 软件测试和调试区别
    • 测试和测试开发区别
    • 测试相关概念
      • 什么是需求
      • 什么是测试用例
      • 什么是bug
      • 软件生命周期
    • 开发模型
      • 瀑布模型
      • 螺旋模型
      • 增量、迭代
      • 敏捷开发模型
      • V模型
      • W模型

什么是软件测试:

找bug;发现缺陷;验证功能;性能;是否符合用户需求;
软件测试:验证软件产品特性是否满足闲户的需求.

软件测试和调试区别

1:角色不同;调试是开发;测试:测试人员+开发(通常黑盒测试由测试人员执行;部分白盒测试、系统测试是开发人员执行)
2:阶段不同;调试是开发时候才调试;而测试伴随整个生命周期;介入的时间比较早
3:目的不同;调试是发现问题并且解决问题;测试是发现问题
4:手段不同;调试;debug,分析代码逻辑。测试等价类划分法、边界值等等众多方法。

测试和测试开发区别

测试工程师: 功能测试比较多,设计测试用例,执行测试用例,涉及到的开发工作内容较少的
测试开发工程师: 测试工程师的工作内容上加了一些开发工作(开发测试用例,开发测试工具,开发出来的测试工具让测试人员用,提高测试效率)

测试相关概念

什么是需求

用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略。
软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。

产品经理:大多数公司在进行软件开发的时候会把用户需求转化为软件需求,开发人员和测试人员工作的直接依据就是软件需求;所以产品经理要把用户的需求转换成文档;

需求的作用:把要做什么事情描述清楚;开发测试人员才好进行工作

什么是测试用例

测试用例是一组集合;测试环境、测试数据、预期结果、操作步骤……
比如:
软件测试认识_第1张图片
怎么证明这个测试用例是否通过了;根据实际执行结果;对比预期结果;相同就通过;不相同就没有通过。

测试用例作用:
1:测试用例提高测试人员工作效率/降低测试人员工作的重复性问题
2:测试用例是建立自动化的基础

什么是bug

bug:当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。
当需求规格说明书没有提到的功能,判断标准以最终用户为准: 当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。

软件生命周期

从软件诞生到停服:需求分析、计划、设计、编码、测试、运行维护
需求分析:分析需求是否合理;需求是否完整
计划:谁开发、谁测试、开发多久、测试多久……
设计:UI设计、技术文档;接口涉及到那些库表
编码:写代码
测试:产生一个测试报告
运行维护:线上出现问题;测试人员需要协助开发定位问题、解决问题

开发模型

瀑布模型

瀑布模型的每一个阶段都只执行一次,是线性顺序进行的软件开发模式。
软件测试认识_第2张图片

优点:每个阶段做什么;产生什么非常清晰;
缺点:风险往往在后期的测试阶段才显露;容易失去及早纠正的机会(在测试阶段才能发现问题;然后需要一层一层往前找问题;如果发现需求有问题;那不是白忙活了吗)
适用:比较适合用于小型项目

螺旋模型

内圈到外圈;每一个阶段都会继续风险分析;反复测试;反复分析
软件测试认识_第3张图片
优点: 每个阶段都会进行风险分析,避免一些线上问题发生
缺点: 风险分析可能分析错,需要人力财力的投入
适用: 适用于比较大的项目,风险比较多

增量、迭代

增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。
增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。
软件测试认识_第4张图片

敏捷开发模型

敏捷宣言:
软件测试认识_第5张图片
敏捷开发有很多种方式,其中scrum是比较流行的一种:
scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队;前端、后端、ui设计师)组成。

product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
scrum master负责召开各种会议,协调项目,为研发团队服务。
研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

scrum基本流程
软件测试认识_第6张图片

V模型

软件测试认识_第7张图片
特点;左边开发、右边测试;类似瀑布模型;测试人员在编码后介入;
优点: 测试被划分成许多类型
缺点 : 测试人员介入太晚,发现问题时机太晚

W模型

软件测试认识_第8张图片
特点: 开发一个V测试一个V
优点:测试人员尽早介入了需求
缺点:测试人员和开发人员一定程度上还是串行的;后面的都依赖于前面的。比如验收出现问题;就得一步一步往前回溯。不能很好的变化;不适用敏捷;W模型对于项目需求或技术变化的适应性不如敏捷开发方法;万一用户还有其它的需求;很难做到优化软件。v和w都不支持变化;需求文档一开始就确定了

你可能感兴趣的:(测试,软件测试)