四软件工程与软件测试

(亲爱的,点击上方蓝色小字,快速我)

4.1软件工程简介

4.1.1什么是软件工程

随着软件工程学科的发展,人们对计算机软件的认识逐渐深入。软件工作的范围不仅仅局限在程序编写,而是扩展到了整个软件生命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安装部署、运行维护,直到软件被更新和替换新的版本。

软件工程还包括很多技术性的管理工作,例如过程管理、产品管理、资源管理和质量管理,在这些方面也逐步地建立了标准活规范。

4.1.软件的生命周期

4.1.3软件工程的研究领域

至少包括人员管理、项目管理、可行性分析、需求分析、系统设计、编码、测试、质量管理和配置管理等。

4.1.4软件工程的发展历史

4.1.5软件工程化概念的提出

0世纪60年代,“软件危机”就已经出现。针对“软件危机”,人们提出了软件工程化的概念。软件工程的概念首次出现在年的NATO(北大西洋公约组织)会议上。

4.1.6“软件工程”

0世纪70年代,“软件工厂”的概念出现,主要围绕软件过程和软件复用展开研究,是软件工程思想得到进一步的深化和提高。

这一时期主要提出了“面向对象”的编程思想,软件测试在这一阶段有了新的挑战,尤其是单元测试方法的改变。

4.1.7软件过程管理

软件不是一个人研发出来的,而是一大帮人一起研发出来的,因此需要沟通、协作,需要大家遵循一定的流程和做事的方式,这就是“软件过程”。

著名的“瀑布模型”尝试从软件过程的角度解决“软件危机”。认为只要把软件生命周期(软件从“生”到“死”)按严格的阶段划分之后就能实现软件开发过程的工程化:

4.1.8软件过程相关方法和工具

围绕着软件过程,软件专家们提出了各种具体的软件过程实践方法和思想,各大软件厂商也提供了支持这些方法和思想的工具。

例如:微软的VSTS(VisualStudioTeamSuite)就是基于名为MSF(MicrosoftSolutionFramework)软件过程的思想和方法的一套支持工具。

4.1.9软件工程发展的新趋势

敏捷软件工程师哲学理念和一系列开发指南的综合。

4.1.10软件工程的目的

软件工程的目的是提高软件的质量和生成率,最终实现软件的工业化生成。

4.软件开发模式

软件开发模式是软件工程研究的重要领域。软件测试与软件的开发模式息息相关。在不同的开发模式中,测试的作用有细微的差别,测试人员应该充分理解软件的开发模式,以便找准自己在其中的位置和角色定位,以便于充分发挥测试人员的价值。

4..1常见的软件开发模式

主要有以下3类:

线性模型、渐进式模型、变换模型。

4..线性模型

最具代表性的是“瀑布模型”。

业界流行的说法是“集成之日就是爆炸之日”。

4..3渐进式模型

最具代表之一的是“螺旋模型”,这对于那些规模庞大、复杂度高、风险大的项目尤其适合。

增量开发能显著降低项目风险,结合软件持续构建机构,构成了当今流行的软件工程最佳实践之一。

增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。

目前很多软件过程所说的迭代开发,实际上都是增量开发和迭代开发的结合。

4..4变形模型

注:在每一次迭代原型出来后,测试人员都需要从原型界面、系统主要功能、性能等方面对原型进行评审。

4..5软件开发模式的发展

4..6RUP的历史

业界普遍认为,开发负责的软件项目必须采用基于UML的、以架构为中心的、用例驱动与风险驱动相结合的迭代式增量开发过程,这一过程通常被称为RUP(RationalUnifiedProcess,Pational统一过程)。

为什么叫Rational统一过程呢?这就要从RUP的创始人IvarJacobson讲起了。

现代软件开发之父IvarJacobson博士被认为是深刻影响或改变了整个软件工业开发模式的几位世界级大师之一。他是模块和模块结构、用例、现代业务工程、Rational统一过程等业界主流方法、技术的创始人。IvarJacobson博士与GradyBooch和JamesRumbaugh一道共同创建了UML建模语言,被业界誉为UML支付。IvarJacobson的用例驱动方法对整个OOAD行业影响深远,他因此而成为业界的一面“旗帜”。

年,IvarJacobson离开爱立信公司,创立了ObjectSystem公司,吸纳了增量迭代思想,开发出Objectory过程。

年,爱立信收购了ObjectSystem。

年,Rational公司又从爱立信收购了Objectory,Jacobson与GradyBooch、JamesRumbaugh一起开发了UML,这期间Objectory过程逐渐进化为Rational统一过程(RUP)。

年,IBM收购了Rational公司。

4..7RUP过程模型下的软件测试

强调6项最佳实践:

(1)迭代地开发软件(DevelopIteratively)。

()管理需求(ManageRequirements)。

(3)应用基于构件的构架(UseComponentArchitectures)。

(4)为软件建立可视化的模型(ModelVisually,UML)。

(5)不断地验证软件的模型(ContinuouslyVerifyQuality)。

(6)控制软件的变更(ManageChange)。

4..8RUP工具

IBMRational提供了RUP相关支持工具。

4..9“重型”过程VS.“轻量”过程

由于以RUP为代表的统一过程在很多时候过于烦琐,实施成本太高,并且对需求的变化反映不够敏捷,因此,敏捷过程越来越受欢迎。

敏捷过程是一系列轻量的过程模型的总称,其代表是XP(极限编程)模型。

RUP将系统开发分为若干次迭代,每次迭代都包括需求、分享、设计、实现、测试等工作流。每个工作流都规定了输入工件、输出工件、参与角色、工作流的具体活动内容。

RUP被称为重型软件过程模型,它包含几十个角色、上千份文档制品、并和Rational的系列工具紧密结合。这样的重量级过程被业界戏称为“大象”级过程,考虑到成本因素,一般小型的软件团队很难遵循这样的过程。

4..10敏捷运动

年,以KentBeck、AlistairCockburn、WardCunningham、MartinFowler等人为首的“轻量”过程派聚集在犹他州的Snowbird,决定把“敏捷”(Agile)作为新的过程家族的名称。

在会议上,他们提出了《敏捷宣言》。

4..11极限编程(XP)

基于敏捷的核心思想和价值目标,XP要求项目团队遵循13个核心实践:

团队协作(WholeTeam)、规划策略(PlanningGame)、结对编程(PairProgramming)、测试驱动开发(Test-DrivenDevelopment)、重构(Refactoring)、简单设计(SimpleDesign)、代码集体所有权(CollectiveOwnership)、持续集成(ContinuousIntegration)、客户测试(CustomerTests)、小型发布(SmallReleases)、每周40小时工作制(40-HourWeek)、编码规范(CodingStandard)、隐喻(Metaphor)。

4..1XP中软件测试

XP强调测试先行,以单元测试驱动开发过程的实践,因此良好的测试思维和单元测试技术是这一实践的基础。

XP强调小版本迭代开发、重构和持续集成,因此对于测试的频率提出了更高的要求,需要测试与开发的紧密协作,以及高效率的测试执行(例如自动化的测试)。

4..13XP工具

包括XP计划、性能测试、构建工具、验收测试工具、单元测试工具等。

4.3不同软件开发模式下的软件测试

按照软件工程的两大流派,可以分成“流程派”和“个体派”。“流程派”以CMM和ISO为代表,强调按既定的流程工作。

“个体派”以新兴的敏捷开发为代表,强调人在过程中发挥的价值。

4.3.1CMM和ISO中的软件测试

“流程派”强调形式文档的制度、规范和模板,严格按照制度办事,按照要求形成必要的记录,检查、监督和持续改善。因此测试人员在实施这样的流程改进方式的组织中工作,需要注意按照测试流程定义的模板进行,填写必要的测试记录和报告,度量测试的各个方面是否符合要求。

4.3.CMM与软件测试

4.3.3ISO与软件测试

ISO质量标准体系在0世纪70年代由欧洲首先采用的,后来在美国和世界各地迅速发展起来。很多企业都热衷于ISO认证。

ISO基于PDCA的循环提出了测量、分析和改进的重要性,使用测试作为软件测量的重要手段。它要求测试人员得到有关授权才能进行测试活动,应该得到充分的培训和指导,确保测试人员有足够的能力对软件产品进行测试。

ISO非常强调缺陷的控制,包括对缺陷的修改进行回归测试和验证,对缺陷进行分析和评审,确保缺陷在交付使用前得到控制,并确保对缺陷指定了纠正预防措施,形成预防机制,防止缺陷的再次出现。

软件企业使用ISO进行过程管理和改进应该参考ISO-3标准。主要内容:合同评审、需求规格说明、开发计划、质量计划、设计和实现、测试和确认、验收、复制交付和安装、维护。

需要注意的是ISO-3是指南,而不是认证的准则。

4.3.4敏捷开发中的软件测试

在敏捷开发中,测试是整个项目组“车头灯”,它告诉大家现在到哪了,正在往哪个方向走。测试员为项目组提供丰富的信息,使项目组基于这些可靠的信息做出正确的决定。

在敏捷项目中,测试人员不再做出发布的决定。不只是有测试员来保证质量,而是由整个项目组中的每一个人对质量负责。测试员不再跟开发人员纠缠错误,而是帮助开发人员找到目标。

敏捷测试需要更多地考虑的内容:

更多地采用探索性测试方法。

更多地采用上下文驱动的测试方法论。

更多地采用敏捷自动化测试原则。

敏捷测试认为要持续地测试,不断地回归测试,快速测试。测试人员需要多借鉴上下文驱动测试的方法,适当采用自动化的方式加快测试的速度。

.  快速启动Excel

如果想在启动系统自动运行Excel,可以这样操作:1.双击“我的电脑”图标,进入Windows目录,依次打开“StartMenu\Programs\启动”文件夹;.打开Excel所在的文件夹,用鼠标将Excel图标拖到“启动”文件夹,这时Excel的快捷方式就被复制到“启动”文件夹中,下次启动Windows就可快速启动Excel了。如果Windows系统已启动,你可用以下方法快速启动Excel:方法一:单击“开始→文档”命令里的任一Excel工作簿即可。方法二:用鼠标从“我的电脑”中将Excel应用程序拖到桌面上,然后从快捷菜单中选择“在当前位置创建快捷方式”,以后启动时只需双击快捷方式即可。

赞赏

长按向我转账

受苹果公司新规定影响,iOS版的赞赏功能被关闭,可通过转账支持。









































预防白癜风复发最有效的方法
广州治疗白癜风医院



转载请注明地址:http://www.henanledxianshiping.com/fjgcjs/17880.html
  • 上一篇文章:
  • 下一篇文章: