当前位置:   article > 正文

软件测试基础知识(一)--0120221224_迭代模型为什么有集成失败的成本

迭代模型为什么有集成失败的成本

目录

一、软件概述

1、软件生命周期

2、软件开发模型

(1)瀑布模型

(2)快速原型模型

(3)迭代模型

(4)螺旋模型

(5)敏捷模型

3、软件质量概述

4、软件缺陷产生的原因:

(1)软件缺陷的分析

(2)软件缺陷的处理流程

二、软件测试简介

1、 软件测试的目的

2、软件测试的分类

(1)按照测试阶段分类

(2)按照测试技术分类

 (3)按照软件质量特性分类

(4)按照自动化程度分类

(5)按照测试项目分类

(6)其他分类


一、软件概述

1、软件生命周期

问题定义→需求分析→软件设计→软件开发→软件测试→软件维护→淘汰 

2、软件开发模型

(1)瀑布模型

瀑布模型优点检查点清晰,分工明确,有利于大型软件开发人员的组织管理及工具的使用与研究,可以提高开发的效率。

瀑布模型缺点严格按照线性执行,增加了开发风险;要求必须有产出结果,增加了开发工作量。对于现代软件,各阶段之间的关系很少是线性,瀑布模型已经不适合现代软件开发。

(2)快速原型模型

快速原型模型优点:克服了需求不明确带来的风险,适用于不能预先确定需求的软件项目。

快速原型模型缺点:原型设计较难;不利于开发人员对产品的扩展。

(3)迭代模型

迭代模型优点:适应客户需求变更;降低了开发成本和风险。

迭代模型缺点:增加了集成失败风险;容易退化为“边做边改”模式,失去整个项目的控制。

(4)螺旋模型

 螺旋模型包含四个象限

  • 制定计划:确定软件目标,制定实施方案,列出项目开发的限制条件。
  • 风险分析:评价所制定的实施方案,识别风险并消除风险。
  • 实施工程:开发产品并进行验证。
  • 客户评估:客户对产品进行审核评估,提出修正建议,制定下一步计划。

螺旋模型优点:强调了风险分析,有助于将软件质量融入开发中;小分段构建大型软件,易于计算成本;客户参与,保证项目可控性。

螺旋模型缺点:构建过程太过繁琐,不适合小型项目。

(5)敏捷模型

 敏捷模型是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。

敏捷模型的特点:

  • 项目被拆分成多个子项目,迭代完成,每个迭代都要经过测试。
  • 快速响应需求变更,在修改过程中,软件一直处于可用状态。
  • 不断对产品进行细微、渐进式地改进,每次改进一部分,如果可行再逐步扩大改进范围。
  • 开发未动,测试先行。
  • 注重“人”的作用。

敏捷模型优点:及时响应客户需求变更,不断适合新的趋势。

敏捷模型缺点:管理相对混乱,不适合大型项目。

3、软件质量概述

软件质量是指软件产品满足基本需求及隐式需求的程度。软件产品满足基本需求是指其能满足软件开发时所规定需求的特性,其次是软件产品满足隐式需求的程度。

从软件质量的定义,可将软件质量分为三个层次:

  • 满足需求规定:软件产品符合开发者明确定义的目标,并且能可靠运行。
  • 满足用户需求:软件产品的需求是由用户产生的,软件最终的目的就是满足用户需求,解决用户的实际问题。
  • 满足用户隐式需求:软件如果满足用户隐式需求,既潜在的可能需要在将来开发的功能。将会极大的提升用户满意度,这就意味着软件质量更高。

软件质量模型

 影响软件质量的因素:

  • 需求模糊
  • 软件开发缺乏规范性文件指导
  • 软件开发人员问题
  • 缺乏软件质量控制管理

4、软件缺陷产生的原因:

  • 需求不明确
  • 软件结构复杂
  • 开发人员水平有限
  • 项目期限短
  • 使用新技术

(1)软件缺陷的分析

(2)软件缺陷的处理流程

 每个公司的软件缺陷处理流程不尽相同,但是他们遵循的最基本流程是一样的,都要经过提交、分配、确认、处理、复测、关闭等环节

  • 提交:测试人员发现缺陷以后,将缺陷提交给测试组长。
  • 分配:测试组长接受到测试人员提交的缺陷以后,将其移交给开发人员。
  • 确认:开发人员接受到移交的缺陷之后,会与团队甚至测试人员一起商议,确认该缺陷是否是一个缺陷。
  • 拒绝:如果商议之后,缺陷不是一个真正的缺陷则拒绝处理,关闭缺陷。如果经过商议之后,确定其是一个真正的缺陷,则可以根据缺陷的严重程度或优先等级立即处理或延期处理。
  • 复测:开发人员修改好缺陷之后,测试人员重新进行过测试(复测),检测缺陷是否确实已经修改。如果未被正确修改在,则重新提交缺陷。
  • 关闭:测试人员重新测试之后,如果缺陷已经被正确修改,则将缺陷关闭,整个缺陷处理完成。

二、软件测试简介

软件测试的发展也经历了一个漫长的过程,其发展过程可用下图表示:

1、软件测试的目的

  • 对于软件开发来说,软件测试通过找到问题缺陷帮助开发人员找到开发过程中存在的问题,包括软件开发的模式、工具、技术等方面存在的问题与不足,预防下次缺陷的产生。
  • 对于软件测试来说,使用最少的人力、物力、时间等找到软件中隐藏的缺陷,保证软件的质量,也为以后软件测试积累丰富的经验。
  • 对于客户需求来说,软件测试能够检验软件是否符合客户需求,对软件质量进行评估和度量,为客户评审软件提供有力的依据。

2、软件测试的分类

(1)按照测试阶段分类

  • 单元测试:验证软件单元是否符合软件需求与设计,开发人员自测。
  • 冒烟测试:软件构建版本建立后,对系统的基本功能进行简单的测试。这种测试重点验证的是程序的主要功能,而不会对具体功能进行深入测试。
  • 集成测试:冒烟测试之后,将已经测试过的软件单元组合在一起测试它们之间的接口,用于验证软件是否满足设计需求。
  • 系统测试将经过测试的软件在实际环境中运行,并与其系统的成分(如数据库、硬件和操作人员等)组合在一起进行测试。
  • 验收测试主要是对软件产品说明进行验证,逐行逐字的按照说明书的描述对软件产品经行测试,确保其符合客户的各项要求。

(2)按照测试技术分类

  • 黑盒测试把软件(程序)当做一个有输入与输出的黑匣子,它把程序当做一个输入域到输出域的映射,只要输入的数据能输出预期的结果即可,不必关系程序内部是怎样实现的。

  •  白盒测试测试人员了解软件程序的逻辑结构、路径与运行过程,在测试时,按照程序的执行路径得出结果。白盒测试就是把软件(程序)当作一个透明的盒子,测试人员清楚的知道从输入到输出的每一个过程。

  • 总结相对于黑盒测试来说,白盒测试对测试人员的要求会更高一点,它要求测试人员具有一定的编程能力,而且要熟悉各种脚本语言。但是在软件公司里,黑盒测试与白盒测试并不是界限分明的,在测试一款软件时往往是黑盒测试与白盒测试相结合对软件进行完整全面的测试。

(3)按照软件质量特性分类

  • 功能测试:测试软件功能是否满足客户的需求,包括准确性、易用性、适合性、互操作性性等
  • 性能测试:测试软件的性能是否满足客户的需求,性能测试包括负载测试、压力测试、兼容性测试、可移植性测试和健壮性测试等。

(4)按照自动化程度分类

  • 手工测试:测试人员一条一条的执行代码测试工作。费时费力且很难验证、保证测试效果。
  • 自动化测试:借助脚本、自动化测试工具等完成相应的测试工作,它也需要人工的参与,但是它可以将要执行的测试代码或流程写成脚本,执行脚本完成整个测试工作。

(5)按照测试项目分类

  • 界面类测试:验证软件界面是否符合客户的需求。
  • 安全性测试:试软件在没有授权的内部或外部用户的攻击或恶意破坏时如何进行处理,是否能保证软件与数据的安全。
  • 文档测试:以需求分析、软件设计、用户手册、安装手册为主,主要验证文档说明与实际软件之间是否存在差异。

(6)其他分类

  • α测试:软件上线之前进行的版本测试。由开发人员和测试人员或者用户协助进行测试。测试人员记录使用过程中出现的错误与问题,整个测试过程是可控的。
  • β测试:软件上线之后进行的版本测试。由用户在使用过程中发现错误与问题并进行记录,然后反馈给开发人员修复。
  • 回归测试:对修改后的程序重新进行测试确认原有的缺陷已经消除并且没有引入新的缺陷,这个而过重新测试的过程就叫作回归测试。
  • 随机测试:没有测试用例、检查列表、脚本或指令的测试,它主要是根据测试人员的经验对软件进行功能和性能抽查。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/202501
推荐阅读
相关标签
  

闽ICP备14008679号