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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> <笔记> 软件测试——day01 -> 正文阅读

[开发测试]<笔记> 软件测试——day01

1 软件缺陷的定义

  1. 软件未实现产品说明书要求的功能
  2. 软件出现了产品说明书指明不应该出现的功能
  3. 软件实现了产品说明书未提到的功能
  4. 软件未实现产品说明书虽未明确提及但应该实现的目标
  5. 软件难以理解、不易使用、运行缓慢或者(从测试的角度看)最终用户会认为不好

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

2 软件测试定义和目的

2.1 软件测试定义

  • 正向思维的定义
    出发点:使自己确信产品是能够正常工作的评价一个程序和系统的特性或能力,并确定它是否达到期望的结果,软件测试就是以此为目的的任何行为。
  • 反向测试的定义
    出发点:测试是为了发现错误而执行一个程序或者系统的过程。
  • IEEE定义的软件测试
    – 在规定条件下运行系统或构件的过程:观察和记录结果,并对系统或构件的某些方面给出评价;
    – 分析软件项目的过程:检测现有状况和所需状况之间的不同,并评估软件项目的特性。
  • 广义软件测试的定义
    – 软件测试是对软件形成过程中所有工作产品(包括程序以及相关文档)进行测试,而不仅仅是对程序的运行进行测试
    确认(Validation):
    通过检查和提供客观证据来证实特定目的功能或应用是否已经实现
    验证(Verification):
    通过检查和提供客观证据来证实指定的需求是否满足

2.2 软件测试目的

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

2.3 测试和调试的区别

  • 在主体、目标、方法和思路上不同
测试调试
主体测试人员开发
目标找bug将错误修改正确
方法等价类、边界值等程序和逻辑算法
思路反向思维正向思维
  • 测试是从已知的条件开始,使用预先定义的过程,并且有预知的结果;调试是从未知的条件开始。结束的结果可能不可预计。
  • 测试可以计划,可以预先制定测试用例和过程,工作进度可以度量描述调试的过程或持续时间相对比较困难。
  • 测试的对象包括软件开发过程中的文档、数据以及代码,而调试的对象一般来说只是代码。

3 软件危机

软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现的一系列严重问题的现象。

4 软件工程

软件工程包括两方面的内容:

  • 软件开发技术:软件开发方法学、软件工具和软件工程环境
  • 软件项目管理:软件质量、项目估算、进度控制、人员组织、配置管理、项目计划
  • 引起软件危机的主要问题是软件质量问题
  • 软件工程主要解决的是软件质量问题
  • 软件测试是软件质量管理体系中一个非常重要的手段

5 软件的生命周期

常见软件生命周期模型:

  • 瀑布模型
  • 螺旋模型
  • 迭代模型
  • 快速原型模型

5.1 瀑布模型

瀑布模型:最早提出的软件开发的过程模型。

“瀑布模型”
  1. 存在的问题:
    (1)强调时间顺序的严格执行。前阶段不完成,后阶段不开始。
    (2)将测试放在了编码之后。没有体现出测试贯穿软件生命周期的原则。可以避免需求的问题一直延续到代码完成才被暴露或者被发现。
  2. 优点:
    (1)为项目提供按阶段划分的检查点。
    (2)当前一阶段完成后,只需要去关注后续阶段。
  3. 缺点:
    (1)各阶段的划分完全固定,阶段之间产生大量的文档,极大的增加了工作量。
    (2)线性开发,用户等到整个过程的末期才能见到开发成果,从而增加了开发时长和风险。
    (3)瀑布模型不适应用户需求的变化。

5.2 螺旋模型

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

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

5.3 迭代模型

迭代包括产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他元素,强调开发的深入。
在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。

“迭代模型”
  • 迭代过程具有以下优点:
  • 降低了在一个增量上的开支风险。
  • 降低了产品无法按照既定进度进入市场的风险。
  • 加快了整个开发工作的进度。
  • 迭代过程这种模式使适应需求的变化会更容易些。

5.4 敏捷开发模型

敏捷宣言,也叫敏捷软件开发宣言,正式宣布了对四种核心价值十二条原则,可以指导迭代的以人为中心的软件开发方法。

  • 四种核心价值:
    ① 个体和互动 高于 流程和工具
    ② 工作软件 高于 详尽文档
    ③ 客户合作 高于 合同谈判
    ④ 响应变化 高于 遵循计划

敏捷开发模型

5.4 增量模型

增量模型:把软件分割成独立的模块,分批次的完成交互。

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

5.5 快速原型模型

原型:就是一个模板模型。可以模拟操作、简单运行。
典型应用和工具:Axure。制作原理。
思想:快速原型是利用原型辅助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。

  • 优点:克服瀑布模型的切点,减少由于软件需求不明确带来的开发风险,互动性更高更容易了解客户需求,反复循环。
  • 缺点:
    1)所选用的开发技术和工具不一定符合主流的发展。
    2)快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:44:27  更:2021-08-11 12:45:03 
 
开发: 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/17 20:21:20-

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