软件测试Day3|软件测试理论01

news2024/10/6 12:26:03

目录

    • 1.缺陷
      • 1.1 定义
      • 1.2 缺陷由来
    • 2. 软件测试的定义和目的
      • 2.1 软件测试定义
      • 2.2 软件测试目的
    • 3. 软件开发模型
      • 3.1 生命周期
      • 3.2 瀑布模型
      • 3.3 螺旋模型
      • 3.4 迭代模型
      • 3.5 敏捷开发模型-scrum
      • 3.6 增量模型
      • 3.7 快速原型模型
    • 4. 软件测试流程和模型
      • 4.1 软件测试工作流程
      • 4.2 软件测试模型
        • 4.2.1 V模型
        • 4.2.2 W模型
        • 4.2.3 H模型
        • 4.2.4 X模型
      • 4.3 软件测试理念
    • 5. 软件测试技术
      • 5.1 软件测试分类
        • 5.1.1 按开发阶段分:重点
        • 5.1.2 按代码运行分
        • 5.1.3 按软件特性分
        • 5.1.4 按软件测试技术分
        • 5.1.5 按运行主体分
        • 5.1.6 其他测试
      • 5.2 软件测试原则

1.缺陷

1.1 定义

所有不满足需求和超出需求的都是缺陷;没有不存在缺陷的软件,只有迄今为止尚未发现的缺陷。

  • 软件未实现产品说明书中的功能
  • 软件实现了产品说明书不应该出现的功能
  • 软件实现了产品说明书未提到的功能
  • 软件未实现了产品说明书未明确提及但应该出现的功能
  • 软件难以理解、不易使用、运行缓慢或者最终用户会认为不好

1.2 缺陷由来

计算机软件第一夫人,大明路Colbol计算机语言,将缺陷命名为BUG。

2. 软件测试的定义和目的

2.1 软件测试定义

  • 正向思维:出发点:使自己确信产品是能够正常工作的评价一个程序和系统的特性或能力,并确定它是否达到期望的结果,软件测试就是以此为目的的任何行为。(调试)
  • 反向思维:测试是为发现错误而执行一个程序或系统的过程;测试是为了证明程序有错,而不是证明程序无错;一个好的、成功的测试用例是发现了以前未发现的错误的测试。(测试)
  • IEEE定义的测试:在规定条件下运行系统或构件的过程:观察和记录结果,并对系统或构建的某些方面给出评价。
  • 广义的软件测试:在软件形成过程中的所有工作产品进行测试,而不是只针对程序。

2.2 软件测试目的

  • 以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,保证各种错误和缺陷得以修复,避免软件发布后由于潜在的软件错误和缺陷造成的隐惠所带来的商业风险。
  • 同时利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误;

3. 软件开发模型

3.1 生命周期

在这里插入图片描述

3.2 瀑布模型

在这里插入图片描述

  • 最早提出的软件开发的过程模型。
  • 存在的问题:
    1)强调时间顺序严格执行(前阶段不完成后阶段不开始)【线性开发,各个阶段划分完全固定,阶段之间产生大量文档,极大增加工作量】
    2)将测试放在编码之后。没有体现出测试贯穿软件生命周期的原则,不能避免需求的问题一直衍生到编码完成。
    3)不适应用户需求的变化。

3.3 螺旋模型

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
在这里插入图片描述

  • 引入了其他模型没有的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
  • 更适合大型的昂贵的系统级的软件应用。

3.4 迭代模型

迭代包括产生产品发布(稳定、可执行的版本)的全部开发活动和要使用该发布必须的所有其他元素,强调开发的深入
在这里插入图片描述

  • 开发迭代是一次完整的经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。
  • 优点
    1)降低了在一个增量上的开支风险。
    2)降低了产品无法按照既定进度进入市场。
    3)加快了整个开发工作的进度。
    4)迭代过程这种模式使适应需求的变化会更容易些。

3.5 敏捷开发模型-scrum

敏捷宣言也叫做敏捷软件开发宣言,正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法
在这里插入图片描述
在这里插入图片描述

3.6 增量模型

把软件分割成独立的模块,能够分批次的完成和交付

  • 缺点:打破原有的结构和框架,可能会带来一定的风险
  • 一般会和迭代模型一起运用
    1)增加了新功能
    2)优化了…功能
    3)修复了…已知bug

3.7 快速原型模型

应用领域越来越多;原型:就是一个模型,可以模拟操作、简单运行【典型运用软件 Axure—产品经理制作原型】

4. 软件测试流程和模型

4.1 软件测试工作流程

1)获取测试需求->2)编写测试用例->3)制定测试方案->4)开发与设计测试用例>-5)执行测试->6)提交测试报告->7)测试分析与评审->8)提交测试总结->9)准备下一版本测试

4.2 软件测试模型

4.2.1 V模型

在这里插入图片描述

  • 揭示了开发过程与测试过程中各阶段的对应关系
  • 缺点与不足
    1)V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析、系统设计的验证;
    2)需求的满足情况一直到后期的脸收测试才被验证;
    3)没有体现出“尽早地和不断地进行软件测试”的
    原则。

4.2.2 W模型

由两个v字型模型组成,分别代表测试与开发过程,明确表示出了测试与开发的并行关系。
在这里插入图片描述

  • 优点:
    1)测试的活动与软件开发同步进行
    2)测试对象不仅仅是程序,包括需求和设计
    3)尽早发现软件缺陷可降低软件开发的成本
  • 局限性: 在w模型中,需求、设计、编码等活动被视为串行的,这样就无法支持灵活的迭代。

4.2.3 H模型

H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。
在这里插入图片描述

  • H模型揭示了一个原理:软件测试是一个独立的流程!
  • H模型指出软件测试要尽早准备,尽早执行;只要某个测试达到准备就绪点,测试执行活动就可以开展,并且不同的测试活动可按照某个次序先后进行,也可以反复进行。

4.2.4 X模型

  • x模型也是对V模型的改进,x模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接通过集成最终合成为可执行的程序;缺点类似V模型
  • X模型定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。
    在这里插入图片描述

4.3 软件测试理念

  • 尽早测试:测试人员早期参与测试项目;尽早开展测试执行工作
  • 全面测试:对软件的所有产品进行全面测试;软件开发和测试人员全面的参与到测试工作
  • 全过程测试:测试人员成分关注开发过程;对测试的全过程进行全程的跟踪
  • 独立的、迭代的测试:测试活动是独立的;测试活动应该是循环往复、不断进行的

5. 软件测试技术

5.1 软件测试分类

5.1.1 按开发阶段分:重点

  • 单元测试:单元测试又称模块测试,是针对软件设计的最小单位-程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。(白)
    1)一般要读程序;
    2)大多是时候是开发人员自己去完成(但是一般不认为是测试)
  • 集成测试:集成测试也叫做组装测试。涉及到许多接口测试,是一个持续不断的过程。通常在单元测试的基础上,将所有的程序模块进行有序的递增的测试,是检验程序单元或部件的接口关系,逐步集成为符合概要设计需求的程序部件或整个系统。(灰)
  • 确认测试:也叫有效性测试(有时候称为冒烟测试,冒烟测试一般不作为正式的测试环节)。是在模拟的环境下,验证软件的所有功能和性能及其他特性是否与用户的预期要求一致。通过了确认测试之后的软件,才具备了进入系统测试阶段的资质。(功能是否实现,一般都是正向测试)(黑)
  • 系统测试:是在真实的系统运行的环境下, 检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并最终满足用户的所有需求。(黑)
  • 验收测试:是软件产品检验的最后一个环节。按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。(黑)

5.1.2 按代码运行分

  • 静态测试:不实际运行被测对象,静态检查程序代码、界面或文档中可能出现错误的过程
    1)代码测试:测试代码是否符合相应的标准和规范;
    2)界面测试:主要测试软件的实际界面与需求中的说明是否符合;
    3)文档测试:主要测试用户手册和需求是否真正符合用户的实际需求。
  • 动态测试:指实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是程序是否运行。

5.1.3 按软件特性分

  • 功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求
    1)逻辑功能测试
    2)界面测试
    3)易用性测试
    4)安装/卸载测试
    5)兼容性测试
  • 性能测试:功能的另-一个指标,主要关注软件中的某功能在指定的时间、空间条件下,是否使用正常;软件的性能包括很多方面,主要有时间性能和空间性能两种。
  • 安全性测试:验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰。

5.1.4 按软件测试技术分

  • 黑盒测试:通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子。完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行测试,它只是检查程序是否按照需求规格说明书的规定正常实现。
  • 白盒测试:又称结构测试。通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在一个透明盒子里,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。
  • 灰盒测试:介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,是通过一 些表征性的现象、事件、标志来判断内部的运行状态。

5.1.5 按运行主体分

  • 手工测试:功能测试,点点点
  • 自动化测试:利用工具软件、编写代码,测试被测软件。

5.1.6 其他测试

  • 回归测试:是指对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例(一般在系统测试)
    1)验证之前版本产生的所有缺陷全部被修复;
    2)确认修复这些缺陷没有引发新的缺陷。
  • 冒烟测试:是指在对一个新版本进行系统大规模的测试之前,先验证一 下软件的基本功能是否实现,是否具备可测性。也叫可测性测试。
  • 随机测试:是指测试人员基于经验和直觉的测试,发现一些边缘性的错误。(一般在验收测试)
  • 猴子测试:把自己当成不懂产品的笨蛋或者小动物随便乱点没有任何的主观意识和想法参与进来让些意想不到的操作造成错误的结果。(一般在验收测试)

5.2 软件测试原则

  • 质量第一原则,时间要服从质量。
    1)测试时间不够的情况下,(还有大量内容没有测试),软件能不能发布/上线(×)
    2)严重bug没修复,但是赶着上线,能不能通融(×)
  • 所有测试的标准建立在用户需求之上。
    1)需求重要吗?错误的需求对测试人员有什么影响?(很大)
  • 软件一启动就是软件测试的开始,而不是等程序写完才开始测试。
  • 穷举测试是不可能的。
    1)软件发布了,但是有缺陷是测试人员的错吗?(不一定,测试人员不可能发现所有缺陷)
  • 第三方测试会更客观、有效。
  • 测试计划是做好测试工作的基础。
  • 测试用例的设计出来的,不是写出来的。所以要根据测试目的,采用相应的方法去设计测试用例,提高测试效率,更多的发现错误,提高程序的可靠性。
    1)设计和编写测试用例有什么区别?设计是一项脑力活动,编写的一项体力活动,将设计好的内容通过文字形式表现出来。
  • 一般来说,一段程序中发现的错误数越多,其中存在的错误概率越大。
    1)针对已经发现缺陷的模块,如何进行深入测试?(对该模块使劲儿测,关联模块也需要测试)
  • 重视文档,妥善保存一切测试过程文档(测试计划、测试用例、测试报告等)
  • 把尽早测试和不断测试作为测试人员的座右铭。
    1)软件项目不着急的时候,测试任务完成了,你会干什么(继续测试,缺陷是找不完的)
  • 回归测试的关联性要引起充分注意,修改一个错误而引起更多的错误。
    1)项目上线了还需要测试吗?(√)
  • 测试应该从”小规模“开始,逐步转向大规模。
  • 不可将测试用例置之度外,必须彻查每一个测试结果。
  • 一定要注意测试中的错误集中现象,与程序员的编程水平和习惯有很大关系。
  • 对测试错误结果一定要有一个确认的过程。
    1)缺点(语言表达能力、沟通能力、没耐心、粗心)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/954596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AntV】canvas表格s2完全封装手册

前言 由于我们业务中有很多地方需要有纵向复制,刷选等操作,一般的传统表格并不支持。 目前支持度较好的葡萄城表格与handsontable都需要收费,而s2作为一款轻量级开源表单较为符合我们的需求,但是由于s2仍然不够成熟,有非常多的功能需要自定义。 我在公司对s2做了大量封…

100天精通Golang(基础入门篇)——第20天:Golang 接口 深度解析☞从基础到高级

🌷🍁 博主猫头虎🐅🐾 带您进入 Golang 语言的新世界✨✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂&#x1f…

FI 数据源(AP) 及 增量逻辑

AP 一般AP里要分析行项目数据,交易数据,历史付款信息。 还有一些供应商主数据。 基础的抽取数据源就是下面几个: 0FI_AP_4: Vendors: Line Items with Delta Extrcation0FI_AP_6: Vendor Sales Figures via Delta Extraction0FI_AP_7: Ve…

SQLPro Studio for Mac:强大的SQL开发和管理工具

SQLPro Studio for Mac是一款强大的Mac上使用的SQL开发和管理工具,它支持各种数据库,包括MySQL,PostgreSQL,SQLite等。使用 SQLPro Studio,您可以轻松地连接和管理您的数据库,执行SQL查询和脚本&#xff0c…

【python爬虫】8.温故而知新

文章目录 前言回顾前路代码实现体验代码功能拆解获取数据解析提取数据存储数据 程序实现与总结 前言 Hello又见面了!上一关我们学习了爬虫数据的存储,并成功将QQ音乐周杰伦歌曲信息的数据存储进了csv文件和excel文件。 学到这里,说明你已经…

国标视频融合云平台EasyCVR视频汇聚平台关于远程控制的详细介绍

EasyCVR国标视频融合云平台是一个能在复杂网络环境下统一汇聚、整合和集中管理各类分散视频资源的平台。该平台提供了多种视频能力和服务,包括视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、集群、电子地图、H.265视频自动转码和智能分析等…

一种基于WinDump自动抓包实现方法

本发明的技术方案包括以下步骤和组件: 配置抓包参数:设置抓包的IP、端口以及过滤包大小等参数,以控制抓取的数据范围。循环自动抓包:利用WinDump工具实现循环自动抓包功能,类似于记录日志的方式保留抓包数据。当抓包数…

年收入超10亿美金?OpenAI 的“赚钱戏法”

点击关注 文丨郝鑫、刘雨琦,编丨刘雨琦 “我当时见到他不到三分钟,就在想,啊,19岁的比尔盖茨估计也就这样了吧!” 在YC创始人Paul Graham(格雷厄姆)的眼里,28岁的Sam Altman与19…

香港服务器快还是台湾服务器快?

​  基于机房位置不同,香港服务器相对于台湾服务器在访问速度方面有一定的优势。香港服务器拥有CN2线路,因此访问速度较快。在网络服务商方面,中华电信等台湾服务商提供的带宽也具有很高的性价比。 香港服务器对大陆用户的影响 对于大陆用户…

如何将电子画册生成二维码,扫码查看产品图册?

随着移动互联网的发展,二维码已经成为了人们生活中不可或缺的一部分。无论是支付宝、微信支付的扫码支付,还是商家的促销活动、产品包装上的二维码,都展示了二维码的广泛应用。 电子画册也果不其然,它也可以生成二维码&#xff0c…

高德地图jsapi报错INVALID_USER_SCODE

看了各种网上方法,还是搞不定。无奈在高德开放平台提了工单。 很快高德的技术人员就给出了答复“您好,您检查一下您的安全密钥是否在key之前,安全密钥设置必须是在JS API 脚本加载之前进行设置,否则设置无效。” 并给出了推荐的…

使用 zipfile创建文件压缩工具

在本篇博客中,我们将使用 wxPython 模块创建一个简单的文件压缩工具。该工具具有图形用户界面(GUI),可以选择源文件夹中的文件,将其压缩为 ZIP 文件,并将压缩文件保存到目标文件夹中。 C:\pythoncode\new\z…

如何提高工业网关的数据传输速度?

工业网关是工业物联网系统中不可或缺的设备,提高工业网关的数据采集、传输速度,是保障和优化物联网系统运营效率的基础。如何提高工业物联网关的数据传输速度?本篇就为大家简单介绍一下。 1、选用高品质网络设备 选用具有足够带宽容量的高质…

深圳发墨西哥专线要多久才能清关?

深圳发往墨西哥专线的货物清关时间会受到多种因素的影响,包括货物的性质、数量、海关政策、运输方式以及货物的文件准备等。下面将详细介绍这些因素对清关时间的影响。 1.货物的性质和数量是影响清关时间的重要因素之一。 一般来说,墨西哥专线中普通商品…

C语言_分支和循环语句(3)

文章目录 前言一、猜数字游戏1.1.电脑随机生成一个数(1~100);1.2.猜数字:1.3.玩完一把不过瘾,可以继续玩,不用退出程序。1.4.rand 和 srand 之间的联系5.猜数字游戏源码 二、go to 语句2.1.例如&#xff1a…

PMP项目管理主要学习内容是什么?

PMP项目管理是指根据美国项目管理学会(Project Management Institute,简称PMI)制定的项目管理知识体系和方法论进行项目管理的一种认证。PMP主要关注项目的规划、执行和控制等方面的知识和技能。 下面是PMP项目管理《PMBOK指南》第六版的主要学习内容: …

RT-内核介绍

内核是一个操作系统的核心,是操作系统最基础也最重要的部分。它负责管理系统的线程、线程间通信、系统时钟、中断及内存等。 下图为 RT-Thread 内核架构图,内核部分包含内核库、实时内核实现。 内核库是为了保证内核能够独立运行的一套小型的类似C库的函…

新款岚图 FREE 26.69 万元,继续修高端操作

新款岚图 FREE 正式上市,新车共有一款车型,超长续航智驾版售价 26.69 万元。 在选装和上市权益方面,新款岚图 FREE 可选装百度 Apollo 高阶智驾选装包,价值 2.5 万元。 在 12 月 31 日前购买新款岚图 FREE ,用户可以…

视频监控/视频汇聚/视频云存储EasyCVR平台接入华为ivs3800平台提示400报错,该如何解决?

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频云存储/安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频…

【高级程序设计语言C++】C++11

1. lambda表达式2. 移动构造函数和移动赋值运算符重载3. default关键字4. delete关键字5. 可变参数模板6. push_back和emplace_back的区别6.1. emplace_back的优势 7. 包装器7.1. 包装器的语法格式 1. lambda表达式 在C中,lambda表达式是一种用于创建匿名函数的语法…