软件测试概论(二)_1

  软件测试贯穿整个软件开发生命周期,与软件开发息息相关,因此了解必要的开发模型和测试模型是非常有必要的!



一、软件开发模型

  1.1 大爆炸模型

  1.2 边写边改模型

  1.3 瀑布模型

  1.4 快速原型模型

  1.5 螺旋模型

  1.6 迭代模型

  1.7 敏捷开发模型

  1.8 开发模型小结

二、软件测试模型

  2.1 V模型

  2.2 W模型

  2.3 X模型

  2.4 H模型

三、软件开发和软件测试的关系



一、软件开发模型

  软件开发模型是软件开发全过程,能够覆盖软件生命周期的基本阶段,确定设计的方法、过程及工具;经典的软件开发模型有:大爆炸模型、边写边改模型、瀑布模型、快速原型模型、螺旋模型、迭代模型、敏捷开发模型等;

1.1  大爆炸模型

  大爆炸名词源于宇宙大爆炸理论,软件公司将所有人力、物力全部投入到产品开发过程中,一段时间后,产品出炉;此种模型方式简单,几乎无正规开发过程的计划、进度安排,产品质量不可控。

1.2  边写边改模型

  实际工作中最常见的模型之一,在产品初期,建立大概设计,后续开始编码、测试,发现bug,修改bug循环中,直至产品轮廓日渐清晰,最终完成产品;该模型适合中小型项目的快速开发,较正规开发过程较早的显现成果;处于该开发模型下的测试人员,将陷入无休止的重复测试。

  

1.3  瀑布模型

  瀑布模型式是典型的预见性方法,此模型将软件生命周期划分为(按固定顺序相连的)若干阶段:需求分析、设计、编码、集成、测试、维护。开发过程严格按步骤进行,步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 如图下所示:

1.4  快速原型模型

  快速原型模型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。快速原型模型最重要的目的是确定用户真实的需求并支持需求的动态变化,一般不单独使用,而与瀑布模型或螺旋模型一起使用;

1.5   螺旋模型

  螺旋模型是瀑布模型和快速原型模型的有机结合,由风险驱动,较其他模型强调了风险分析,比较适合较大型的系统,但是缺乏对风险的评估;

1.6   迭代模型

  迭代模型是统一过程开发过程(RUP,Rational Unified Process)推荐的软件开发模型。迭代开发是指在进行较大型的项目任务时,将迭代开发分为若干次,每次迭代都要从项目的管理及计划/分析/设计/实现到运作整个过程。

1.7   敏捷开发模型

  敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

1.8   开发模型小结

  “万变不离其宗”,软件生命周期是一定的,而软件开发模型是在软件生命周期中如何进行软件开发的一种策略或指导方法,它是由软件工程师在实际工作中总结和提炼出的一套覆盖软件生命周期的框架。在软件生命周期中可以选择多个软件开发模型协同开发。

未完,待续。。。。

-------------------------------------------

文章部分内容来自网络,如有侵权,请联系作者删除!

--------------------------------------------------------

“  乘   风  破  浪  会  有  时  ,  直  挂  云  帆  济  沧  海  ”

  

时间: 2024-12-10 04:57:46

软件测试概论(二)_1的相关文章

软件测试概论

软件测试概论 基础概念 [定义] 软件测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度 .完全度和质量的软件过程. [内容] 软件测试主要工作内容是验证(verification)和确认(validation ). 验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情.(Do the right thing) 确认是一

软件测试作业二——找出程序中的错误

一.软件程序中的错误 软件程序中的错误有三种:faults(故障), errors(错误), failures(失败). 软件故障(faults):软件中的静态缺陷. 软件错误(errors):不正确的内部状态,该状态是某个故障的表现. 软件失败(failures):与需求或其他期望行为的描述有关的,外部的,不正确的行为. 二.分析下列程序 程序一: public int findLast (int[] x,int y){ //Effects:If x==null throw NullPoint

软件测试(二)PICT的使用 组合测试方法(两两组合测试,可遍历组合测试)

一.两两组合测试 # # 两两组合测试 # PLATFORH: x86, ia64, amd64 CPUS: Single, Dual, QUad PAHL: 120MB, 1GB, 4GB, 64GB HDD: SCSI, IDE OS: NT4, Win2k, Winxp, Win2k3 IE: 4.0, 5.0, 5.5, 6.0 (如图输入) 得到结果(两两组合的结果): PLATFORH CPUS PAHL HDD OS IE amd64 Single 4GB SCSI Win2k 4

软件测试实验二——使用Selenium

In this Experiment, I used RunWith(Parameterized.class) to finish the task. Problems I met in this lab: 1. Install Selenium IDE in FireFox and add Selenium to my java project. Solution: (1)Selenium IDE:   (2) Selenium WebDriver: Download:http://www.s

软件测试(二)之 Failure, Error & Fault

知识回顾 软件测试中的错误主要分为三种:Failure, Error 和 Fault. 下面就分析一下它们的不同: Fault的定义:可能导致系统或功能失效的异常条件(Abnormal condition that can cause an element or an item to fail.),可译为“故障”. Error的定义:计算.观察或测量值或条件,与真实.规定或理论上正确的值或条件之间的差异(Discrepancy between a computed, observed or me

软件测试概论01

IT公司技术部门结构划分: 产品部门:用户需求,界面原型(预期结果) 开发部门:编码,程序(实际效果) 测试部门:找Bug(比对实际结果与预期结果之间的差别) 运维部门:上线,维护 一.软件相关 1.什么是软件? 软件=程序+文档 2.软件的生命周期(软件是如何做出来的) 例如:盖房子 计划,需求,设计(概要设计,详细设计),施工,检测,使用 (1)计划(时间.人员.资源.风险评估) (2)需求(功能需求.性能需求.安全需求.兼容需求等) (3)设计(概要设计.详细设计) (4)编码(C.C++

软件测试实验二

2, (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示.(单词之间用空格隔开,如“Hello World My First Unit Test”): (2)编写单元测试进行测试: (3)用ElcEmma查看代码覆盖率,要求覆盖达到100%. import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.util.Collec

Software Testing Lab2 (软件测试实验二) —— Selenium安装及入门

Download and install Firefox browser If you are the user of WINDOWS, there is a link available for you. Download and install selenium&firebug There is the way that how I finish this step. Open Firefox, click the buttom like picture. Then, search sele

软件测试作业二

(1)findLast public int findLast (int[] x, int y) { //Effects: If x==null throw NullPointerException // else return the index of the last element // in x that equals y. // If no such element exists, return -1 for (int i=x.length-1; i > 0; i--) { if (x