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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 1.软件质量 -> 正文阅读

[开发测试]1.软件质量

一、软件质量

什么是质量

定义:影响产品或服务满足给定需求的能力的特性和特性的总和。

质量来自:

  • 客户的观点是否适合使用或其他客户需求
  • 生产者观点满足要求

软件质量

定义:软件符合质量标准的程度。

Prevention is better than cure

软件质量包括过程和质量

质量保证与工作流程有关

质量保证关于产品


一些定义

二、软件测试

软件缺陷

Error 错误:发生在编写程序的过程中。

Fault 故障 :是一个或多个错误的表现。

Failure 失效:当执行错误的代码段导致传播到程序输出的错误状态时,就会发生这种情况。

Incident 事故:发生故障时不显示任何消息。

软件缺陷定义

  • 不符合用户期望(期望)
  • 软件功能可能无法正确执行
  • 各种软件问题 例如,不一致,用户界面故障
  • 软件缺陷=Bug

缺陷来源

  • 需求定义
  • 设计
  • 执行
  • 支持系统
  • 软件测试不充分
  • 升级

缺陷何时发生

  • 软件没有做规范要求它应该做的事情
  • 软件做了一些规范说它不应该做的事情
  • 该软件做了一些规范没有提到的事情
  • 该软件不会执行产品规范未提及但应该执行的操作
  • 软件难懂、难用、慢……

正确程序

  • 没有语法错误
  • 运行过程中无明显错误
  • 没有不当言论
  • 有效输入 - 正确输出
  • 无效输入 - 正确输出
  • 任何可能的输入 - 正确的输出

软件测试的历史

image-20211108100824990

软件测试定义

  • 软件测试是有计划的、系统的必不可少的步骤
  • 这是一项实证调查,旨在为利益相关者提供有关被测产品或服务质量的信息
  • 我们可以知道用户的期望是否实现
  • 软件测试是软件质量保证的关键步骤

通过手动或自动方式对系统或系统组件进行演练或评估的过程,以验证其是否满足特定要求或识别预期结果与实际结果之间的差异。

注意:软件测试的本质功能是验证和确认

验证(Verification):软件应符合其规范(我们构建的产品是否正确?)

? 确定软件开发周期给定阶段的产品是否满足前一阶段建立的要求的过程。

确认(Validation):软件应该做用户真正需要的事情(我们正在构建正确的产品吗?)

? 在软件开发过程结束时评估软件以确保符合软件需求的过程。

test和debug的区别:

testdebug
自动测试手动操作
可以不知道细节必须知道细节
正确性证明和处理错误仅正确性证明
检查推理
计划,在控制中不在控制中

根据 G.J.Myers 的观点,软件测试的目的:

  • 查找软件错误
  • 降低软件不起作用的风险

测试的类型

  • C1:按照测试生成的来源

image-20211108210726436
  • C2:进行测试的生命周期阶段

image-20211108210748450
  • C3:按照特定测试活动的目标

image-20211108210818839
  • C4:按照被测对象的特征

image-20211108210835849 image-20211108210917476
  • C5:按照测试过程模型

  1. Testing in waterfall model(瀑布模型)

    缺点:不能对上一步的模型进行调整

image-20211108211408080
  1. Testing in V-model(V 模型)

    在开发周期的每个阶段显式地指定测试活动

    image-20211108211548589
  2. Spiral testing(螺旋测试)

    应用于软件增量时,每个增量都可能是最终将应用程序交付给客户的原

    型。

    image-20211108211819489
  3. Agile testing(敏捷测试)
    • 从需求阶段开始,在整个开发项目中都包含与测试相关的活动
    • 与指定测试要求的客户合作
    • 测试人员和开发人员必须相互合作,而不是充当对手
    • 经常进行小块测试
  4. Test-driven development (测试驱动开发,TDD)

    ? Requirements specified as tests

三、软件测试规则

  • 尽早测试并经常测试
  • 集成应用程序开发和测试生命周期
  • 形式化测试方法
  • 制定全面的测试计划
  • 使用静态和动态测试

  • 定义您的预期结果
  • 了解应用程序背后的业务原因
  • 使用多个级别和类型的测试
  • 审查和检查工作,它会降低成本
  • 不要让你的程序员检查他们自己的工作

测试通过规则

  • 是否执行所有测试用例
  • 功能设计是否完成
  • 我们是否得到足够的错误

什么是测试用例

如果系统根据其规范运行,则用于测试系统的输入和来自这些输入的预测输出。

测试用例生成规则

  • 避免模糊的测试用例
  • 类似的功能应该被抽象和分类
  • 避免复杂的测试用例

软件测试员的能力

  • 技术能力
  • 沟通能力
  • 怀疑
  • 自信
  • 耐心
  • 分析能力
  • 合作
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:33:46  更:2021-12-06 15:34:22 
 
开发: 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:46:58-

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