首页 > 其他分享 >软件测试03:软件工程和软件生命周期(未完全)

软件测试03:软件工程和软件生命周期(未完全)

时间:2023-05-18 18:55:19浏览次数:40  
标签:03 生命周期 迭代 模型 软件工程 软件 软件测试

软件测试03:软件工程和软件生命周期

软件危机

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

软件工程

  • 基本软件危机对于计算机发展的阻碍,1968年,在联邦德国召开的国际会议,北大西洋公约组织的计算机科学家讨论软件危机问题。提出了软件工程这个名词,从此软件生产进入工程化时代。
  • 软件工程包括两方面的内容:
    • 软件开发技术:软件开发方法学、软件工具和软件工程环境
    • 软件项目管理:软件质量、项目估算、进度控制、人员组织、配置管理、项目计划
  • 引起软件危机的主要问题是软件质量问题
  • 软件工程主要结界的就是软件质量问题
  • 软件测试是软件质量管理体系中一个非常重要的手段

软件生命周期

软件生命周期模型

  • 瀑布模型

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

  • 迭代模型

    • 迭代包括产生产品发布(稳点、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他元素,强调开发的深入。
    • 在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。
    • 迭代过程具有以下优点:
      • 降低了在一个增量上的开支风险。
      • 降低了产品无法按照既定进度进入市场的风险。
      • 加快了整个开发工作的进度。
      • 迭代过程这种模式使适应需求的变化会更容易些。

  • 螺旋模型

    • 螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
      • 引入了其他模型不具备的风险分析,使软件在无法排出重大风险时有机会停止,以减小损失。
      • 螺旋模型更适合大型的昂贵的系统级的软件应用。
  • 快速原型

  • 增量模型

  • 敏感开发型

标签:03,生命周期,迭代,模型,软件工程,软件,软件测试
From: https://www.cnblogs.com/lurenj/p/17413030.html

相关文章

  • com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '2006
    今天遇到这个错误搞了近20分钟记录下来最后发现问题出现在这里把这里的$改成#就好了......
  • 软件测试系列:移动端安卓APP测试必备之ADB命令 (二)
    adb常见命令1、查看日志adblogcat-vtime表示打印时间adblogcat-vcolor表示使用不同的颜色来显示每个优先级adblogcat-f<filename>表示将日志输出到文件(文件存在手机上),例如,adblogcat-f/sdcard/log.logadblogcat>log.log表示保存日志到PC上adblogca......
  • 【蜡烛图】035期-成交量实战技法
            ......
  • Custom elements in iteration require 'v-bind:key' directives.
    Customelementsiniterationrequire'v-bind:key'directives.这个错误提示"Customelementsiniterationrequire'v-bind:key'directives"的意思是在循环中使用自定义元素时,需要为每个元素添加v-bind:key指令。......
  • YAML Ain't Markup Language
    YML(或YAML)是一种轻量级的标记语言,它是一种易于阅读且易于编写的数据序列化格式。YML的全称是YAMLAin'tMarkupLanguage,也就是说它的作者并不希望它被视为一种标记语言,而更多地是一种“人类可读的数据序列化格式”。YML的语法简洁明了,它使用缩进表示层级结构,可以用于描述键值对......
  • ModuleNotFoundError: No module named 'MySQLdb'
    想用FastApi搞点东西,之前没怎么接触过python,根据pyloong大佬的文章https://pyloong.github.io/pythonic-project-guidelines/practices/web/#36-fastapi创建demo,到运行是出现了这个错误:ModuleNotFoundError:Nomodulenamed'MySQLdb'。然后各种chatGPT,bing,google,找到的都是要我......
  • PB6接SCL,PB7接SDA,IIC通信访问 24C02, STM32F103的HAL版本
    在野火霸道板子上,已有at24c02,256个字节。/*测试代码*/staticuint8_tflag;uint8_tdata_w[]={1,2,3,4,5};uint8_tdata_r[5]={0};AT24CXX_Init();//初始化IIC接口flag=AT24CXX_Check();//检查器件if(flag==0){u16Writ......
  • 什么是软件测试领域的 false-positive test?
    在软件测试领域,"false-positivetest"是指在测试过程中产生了误报的测试结果。这意味着测试工具或测试流程错误地将一个实际上是正确的功能或行为标记为错误或异常。False-positivetest在软件测试中是一个常见的现象,尤其是在自动化测试中。这种情况可能由多种因素引起,下面我将......
  • 软件测试领域的 penetration testing 的概念和目标
    在软件测试领域,渗透测试(PenetrationTesting)是一种安全测试方法,旨在评估计算机系统、网络或应用程序的安全性。渗透测试模拟了恶意黑客攻击的方式和方法,以揭示潜在的安全漏洞和弱点,并提供有关如何修复这些问题的建议。渗透测试有助于组织识别并加强其信息系统的安全性。以下是渗......
  • 2023.5.18——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......