IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 【软件测试-2】& 概念篇 -> 正文阅读

[开发测试]【软件测试-2】& 概念篇


【前言】接下来就要正式进入测试课程的学习啦,这里我们就先了解软件测试的一些基本概念。

软件测试的目的和原则

目的:验证软件有没有问题。
原则:以客户为中心,遵循软件测试的规范、流程、标准和要求。

  1. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
  2. 成功的测试是发现了至今为止尚未发现的错误的测试
  3. 测试并不仅仅是为了找出错误。通过分析错误产生的原因、阶段及错误发生的趋势。

①帮助项目管理者了解当前软件开发过程中的缺陷,以便及时纠错、改进;
②帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;
③让开发人员知道错误产生的重灾区,加强自测试;
④让客户清楚我们专业的质量保证团队,可以向他们提交一份满意的答卷。

  1. 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
  2. 根据测试目的的不同,还有回归测试、压力测试、性能测试、安全测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。
  3. 软件测试为了建立软件的信心。
  4. 从测试的目的出发,大概可以分为两类:为了验证程序能正常工作的测试;为了验证程序不能正常运行的测试

什么是需求?

需求的概念:为了满足用户的期望规定的合同(文档、标准、规范)所需要的条件和权能,称之为需求。

用户的期望就是用户需求,规定的合同就是软件需求(软件需求文档)。

满足人类需求的东西是需要一定的条件和权限的。

一个软件开发的过程如下:

  • 用户需求:一个软件产品的出现不是凭空想的,而是由需求开始的(业务人员检测到市场上某些人某某的需求,然后决定弄一款相关的软件来满足用户的需求)

注意:这个用户不是仅仅指用户,他可能是老板,老板提出的一个需求,也可能是通过市场调研得出的需求,也可能是业务人员的需求(某一类人的需求,如:驾校、银行等),也可能是普通用户需求;
用户需求提出之后,需要产品经理分析验证这个需求是否合理,可行,是否真的能够实现,然后把用户需求转化为详细的软件需求文档

  • 软件需求文档:软件需求文档是对用户需求的细化,它要给出用户需求的功能的实现细节。
  • 编码:开发人员根据软件需求文档进行编码
  • 测试:测试人员根据用户需求和软件需求文档里的细节,把需求通过分析写测试用例,然后测试开发人员做的这些功能是否满足了这些功能需求

用户需求和软件需求的关系:软件需求是用户需求转化而来的,它是经过对用户需求的验证(进行正确性、合理性验证),分析出具体功能实现的细节。而且软件需求不仅仅是把用户需求细化了,还把需求和在系统中即将要实现的功能变的更加规范化了;

需求是开发人员开发的依据,也是测试人员测试的依据。

什么是bug?

历史上第一个计算机故障是由虫子引起的,虫子的英文名为bug,这便是bug名字的由来。

软件错误的判断依据:

  • 当软件需求规格说明存在并且合理,此时如果软件功能和软件需求不相符,就说明是软件错误(BUG).
  • 如果软件需求不存在,而用户需求存在并且合理,软件功能和用户需求不相符,说明是软件错误(BUG).
测试人员是找bug的,开发人员是改bug的

什么是测试用例?

测试用例概念:测试用例其实是一组向被测试系统发起的一组集合,它包含:测试版本、测试环境、测试数据、测试步骤、预期结果、标题、重要性、功能模块、优先级、执行方式等。

网易邮箱注册功能测试用例

标题:邮箱注册邮箱输入项测试

image-20211212180804723

开发模型(5个模型)

随着软件工程学科的发展,人们对计算机软件的认识逐渐深入。软件工作的范围不仅仅局限在程序编写,而是扩展到了整个软件生命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安装部署、运行维护,直到软件被更新和替换新的版本。软件工程还包括很多技术性的管理工作,例如过程管理、产品管理、资源管理和质量管理,在这些方面也逐步地建立起了标准或规范。

软件的生命周期

软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。
如果把软件看成是有生命的事物,那么软件的生命周期可以分成6个阶段,即需求分析、计划、设计、编码、测试、运行维护。

瀑布模型(Waterfall Model)

image-20211212153527419

瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。

瀑布模型优点: –强调开发的阶段性; –强调早期计划及需求调查; –强调产品测试。

瀑布模型缺点: –依赖于早期进行的唯一一次需求调查,不能适应需求的变化; –由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程; 风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会.

瀑布模型的一个最大缺陷在于,可以运行的产品很迟才能被看到。这会给项目带来很大的风险,尤其是集成的风险。因为如果在需求引入的一个缺陷要到测试阶段甚至更后的阶段才发现,通常会导致前面阶段的工作大面积返工,业界流行的说法是:“集成之日就是爆炸之日”。尽管瀑布模型存在很大的缺陷,例如,在前期阶段未发现的错误会传递并扩散到后面的阶段,而在后面阶段发现这些错误时,可能已经很难回头再修正,从而导致项目的失败。但是目前很多软件企业还是沿用了瀑布模型的线性思想,在这个基础上做出自己的修改。例如细化了各个阶段,在某些重点关注的阶段之间掺入迭代的思想。

在瀑布模型中,测试阶段处于软件实现后,这意味着必须在代码完成后有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷直接遗留给用户。

螺旋模型(Spiral Model)

一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一。

这对于那些规模庞大、复杂度高、风险大的项目尤其适合。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。因此,回归测试的重要性就不言而喻了。

image-20211212154231853

螺旋模型优点: 强调严格的全过程风险管理。 –强调各开发阶段的质量。 –提供机会检讨项目是否有价值继续下去。

螺旋模型缺点: 引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入。

增量模型、迭代模型

增量模型和迭代模型

例如给你一个项目
需求:完成A B C D四个功能模块 两周时间

  • 增量模型:第一周 完成A B模块,第二周完成C D模块
  • 迭代模型:第一周完成A B C D四个功能模块的基础功能,第二周A B C D四个功能模块功能的升级和细化

敏捷开发模型

image-20211212151801687

特点:(1)轻文档、轻流程、重目标、重产出;(2)拥抱需求变化
轻文档:敏捷开发的过程中它的周期比较短,一般是2-4周,团队人员也比较少。

敏捷开发的流程:以Scrum流程为例

  • 角色:PO(product owner),它相当于客户的代表方,发布整理客户需求,形成user story
  • SM(ScrumManager),它相当于项目经理,管理整个开发流程,保证敏捷开发流程的顺利实施。
  • ST(ScrumTeam)它相当于研发团队,它有各种技能的人员组成(如开发人员、测试人员等)目标是交付一个高质量可用软件。

敏捷开发的流程:产品发布会议、迭代计划会议、每日站会、产品演示会议、回顾会议

发布计划会议:PO整理客户需求,形成user story,所有的user story会形成product backlog,对user story进行排序,选出这一次迭代需要做的需求(user story);

迭代计划会议:会议由SM和ST来开,他们主要细化需求,分配任务,任务会分配到每个开发人员,具体到任务完成的具体时间;

开发过程中的每日站会:三件事,昨天做了什么,今天的计划,以及遇到的问题;

产品演示会议:客户会根据演示的结果或多或少提出一些修改意见,由产品经理记录,整理成user story,放到下一期迭代当中;

回顾会议:总结

软件测试的两个模型

软件测试V模型

image-20211212152035455

明确的标注了测试过程中存在的不同类型的测试,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系

V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。

V模型优点:左边是开发的一个阶段,右边是测试的阶段,左边的每一个阶段和右边的每一个阶段是一一对应的(左边的每个阶段是右边每个测试阶段的依据)

V模型局限性:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试,导致失去了及早的改正前期风险的机会

软件测试W模型

image-20211212152703002

W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。

W模型特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的

W模型优点:测试在前期就介入了,在项目一开始的需求分析阶段就介入了,这样可以使前期的风险能够及早的发现及早的改正。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。

W模型局限性:需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑.

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 16:01:58  更:2021-12-23 16:02:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:39:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码