2019-11-11 14:21:59 zhouxbr 阅读数 65
  • 第07章-网络通信协议(OSI、TCP、UDP、IP、ARP、ICMP...

    课程内容如下: 通信协议的概念 ISO、OSI七层参考模型详解 TCP、IP模型详解 网络接口层详解 IP协议详解 IP地址和MAC地址特征分析 有了IP地址为什么还要使用MAC地址 ARP工作过程及工作原理解析 ICMP知识解析 ping命令使用详解 tracert命令使用详解 TCP详解 UDP协议详解 网络通信协议(应用层)协议

    8175 人正在学习 去看看 深博

一、软件开发过程模型

软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段软件开发模型(目的)能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。
软件开发过程模型是软件开发人员在公司里工作的过程
在这里插入图片描述
常见的软件开发过程模型有:瀑布模型、快速原型模型、增量模型、螺旋模型,在日常开发中,瀑布模型最为常用,需重点学习。

二、瀑布模型在这里插入图片描述

1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落
瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架

优点
1. 为项目提供了按阶段划分的检查点。
2. 当前一阶段完成后,您只需要去关注后续阶段。
3. 可在迭代模型中应用瀑布模型。
4. 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
缺点
1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
4. 瀑布模型的突出缺点是不适应用户需求的变化。

三、快速原型模型在这里插入图片描述

快速原型是利用原型辅助软件开发的一种新思想经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量

优点
克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
缺点
1. 所选用的开发技术和工具不一定符合主流的发展。
2. 快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
3. 使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。
4. 不适合大型项目的研发。

四、增量模型在这里插入图片描述

增量模型又称为渐增模型,也称为有计划的产品改进模型
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
增量模型也是瀑布模型和原型进化模型的综合。

优点
1. 将待开发的软件系统模块化,可以分批次的提交软件产品,使用户可以及时了解软件项目的进展。
2. 以组件为单位进行开发降低了软件开发的风险,一个开发周期内的错误不会影响到整个软件系统。
3. 开发顺序灵活,开发热源可以对组件的实现顺序进行优先级排序,先完成需要稳定的核心组件,当组件的优先级发生变化时,还能及时的对实现顺序进行调整。
缺点
1. 要求待开发的团建能给进行增量式的开发,否则会很麻烦。
2. 在软件开发过程中需求变化是不可避免的,增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速开发模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

五、螺旋模型

在这里插入图片描述
1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:

四种象限
1. 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
2. 风险分析:分析评估所选方案,考虑如何识别和消除风险;
3. 实施工程:实施软件开发和验证;
4. 客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中

优点
1. 设计灵活可以在项目各个阶段进行变更。
2. 风险驱动,每个项目上线前都要进行风险分析。
缺点
1. 螺旋模型强调风险分析,需要相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能及时标识风险,势必造成重大损失。
2. 如果执行风险分析将大大影响项目的利润,那么进行风险分析就毫无意义了。

2018-05-04 18:04:40 guloutingfengyu 阅读数 102
  • 第07章-网络通信协议(OSI、TCP、UDP、IP、ARP、ICMP...

    课程内容如下: 通信协议的概念 ISO、OSI七层参考模型详解 TCP、IP模型详解 网络接口层详解 IP协议详解 IP地址和MAC地址特征分析 有了IP地址为什么还要使用MAC地址 ARP工作过程及工作原理解析 ICMP知识解析 ping命令使用详解 tracert命令使用详解 TCP详解 UDP协议详解 网络通信协议(应用层)协议

    8175 人正在学习 去看看 深博

软件测试模型

软件开发与测试对应关系

  • 软件开发过程是一个自顶向下,逐步细化的过程

  • 测试过程则是以相反的顺序安排的自底向下,逐步集成的过程

  • 低一级测试为上一级测试准备条件

V模型图示(对应瀑布模型)

1.V模型局限性
  • 把测试作为编码后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现

  • 没有明确的说明早期的测试,无法体现“尽早地和不断地进行软件测试”的原则

W模型

1.w模型详解

  • 在V模型中增加软件各个开发阶段应同步进行的测试,演化为W模型

  • 在W模型中,开发是"V",测试是与此并行的“V”

  • 体现出“尽早地和不断地进行软件测试”的原则

2.W模型局限性(如果项目出现调整,整个测试过程都得推翻重做)

W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、以及变更调整

H模型图示

1.H模型优点
  • H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发的进行

  • H模型指出软件测试要尽早准备,尽早执行

  • 不同的测试活动可以是按照某个次序先后进行的,但也可能是反复的

  • 只要某个测试达到准备就绪点,测试执行活动就可以开展

测试模型小结

1.V模型
  • V模型是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系

  • V模型局限性:把测试作为编码之后的最后衣蛾活动,需求分析等前期产生的错误直到后期的验收测试才能发现

2.

软件测试模型运用

1.V模型
  • 在实际工作中应灵活的运用各种模型的优点

  • V模型:强调了整个项目开发中需要经历的若干个测试级别,并与每一个开发级别对应

  • 忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试

2.W模型
  • 在实际工作中应灵活的运用各种模型的优点

  • W模型:补充了V模型中忽略的内容,强调了测试计划等工作的先行和对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程进行说明。

3.H模型

​ 强调测试是独立的,只要测试准备完成,就可以执行测试

敏捷测试

1.敏捷方法对测试的改变

2敏捷团队中的质量负责

3 传统测试人员和敏捷测试人员的差异

  • 按照规格说明书来进行测试

    ​ vs

    ​ 根据客户实际的需求和业务价值来进行测试

4.敏捷测试对测试人员的要求
  • 测试人员是提出建议者而非守门员

  • 不仅进行确认测试,还要发现需求缺失

  • 发现风险并与团队及客户沟通

  • 及时向团队提供关于产品质量的反馈,便于调整

  • 在产品和版本的发布计划中提出建议

  • 知识分享:协助整个团队参与到测试活动中来

  • 协助团队从内部提升质量,让质量融入到产品开发中

2013-11-30 17:11:17 zhouyou1986 阅读数 1829
  • 第07章-网络通信协议(OSI、TCP、UDP、IP、ARP、ICMP...

    课程内容如下: 通信协议的概念 ISO、OSI七层参考模型详解 TCP、IP模型详解 网络接口层详解 IP协议详解 IP地址和MAC地址特征分析 有了IP地址为什么还要使用MAC地址 ARP工作过程及工作原理解析 ICMP知识解析 ping命令使用详解 tracert命令使用详解 TCP详解 UDP协议详解 网络通信协议(应用层)协议

    8175 人正在学习 去看看 深博

最近在读《软件性能测试过程详解与案例剖析》,在工作之余梳理一下这本书中讲解的性能测试的过程模型。


PTGM是英文performance  test general model 的缩写,表示为性能测试过程通用模型。

主要包括六个阶段


1.测试前期的准备

2.测试工具的引入

3.测试计划

4.测试设计与开发

5测试执行与管理

6.测试分析

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

下面是自己对PTGM过程模型每一阶段的主要工作内容的总结:


1.测试前期准备

内容:

测试前期准备阶段至少要完成两面的工作:

1)保证系统稳定

2)建立合适的测试团队

测试前期准备阶段包含以下活动:

A.系统基础功能验证

B.组建测试团队

C.测试工具需求确认

D.性能预备测试(可选活动)

性能预备测试,是指在正式测试之前,通过简单的探索性测试或其他方法,对系统的性能表现进行初步了解。预备测试也就是我们平日工作中性能测试正式开展前的调研测试。


2.测试工具引入阶段

此阶段包含以下活动:

A.选择工具

性能测试一定会使用自动化测试手段和自动化测试工具。

B.工具应用的技能培训

该活动对项目组的相关参与者进行工具的应用技能培训,以使测试活动参与者具备测试需要的技能。

C.确定工具的应用过程

该活动需要确定性能测试工具在测试中的具体应用范围,工具使用过程中的问题解决方法等内容。具体来说,哪些工作使用工具完成,测试工具在使用过程中的问题由谁来解决?


3.测试计划阶段

测试计划阶段用于生成指导整个测试执行的计划。该阶段主要完成测试目标的确定和测试时间的拟定。

此阶段的工作分解为以下活动:

A.性能测试领域分析

应用领域 性能测试目标 性能目标
能力验证 验证系统在给定环境的性能能力 重点关注的关键业务响应时间,吞吐量
规划能力 验证系统的性能扩展力,找出系统能力扩充的关键点,给出改善其性能扩展能力的建议 业务的性能瓶颈
性能调优 提高系统的性能表现 重点关注的关键业务响应时间,吞吐量
发现缺陷 发现系统中缺陷

B.用户活动剖析与业务建模

用户活动剖析与业务建模活动用来寻找用户的关键性能关注点。用户对系统性能的关注往往集中在少数几个业务活动上,在确定性能目标之前,需要先把用户的关注点找出来,从而确定最贴切用户要求的性能目标。

C.确定性能目标

性能测试目标根据性能测试需求和用户活动分析结果来确定。确定性能测试的目标的一般步骤是首先从需求和设计中分析出性能测试需求,结合用户活动剖析与业务建模的结果,最终确定性能测试的目标。

D.制定测试时间计划

该活动给出性能测试的各个活动起止时间,为性能测试的执行给出时间上的估算。


4.测试设计与开发阶段

性能测试的设计与开发阶段包括测试环境设计,测试场景设计,测试用例设计,以及脚本,辅助工具开发活动。

A.测试环境设计

测试环境设计是测试设计中不可缺少的环节。性能测试的结果与测试环境之间的关联非常大。无论是哪种领域内的性能测试,都必须首先确定测试的环境。

B.测试场景设计

测试场景设计活动用于设计测试活动需要使用的场景。

C.测试用例的设计

测试用例是对测试场景的进一步细化,细化的内容包括场景中涉及业务的操作序列描述,场景需要的环境部署。

D.脚本和辅助工具开发

脚本和辅助工具的开发是测试执行之前的最后步骤,测试脚本是业务操作的体现,一个脚本一般是一个业务的过程描述。


5.测试执行与管理

测试执行与管理过程用于建立合适的测试环境,部署测试脚本和测试场景,执行测试并记录测试结果。

A.建立测试环境

该活动用于搭建需要的测试环境,在设计完用例之后就会开始改活动。该活动是一个持续性的活动,在测试过程中,可能会根据测试需求进行环境上的调整。

B.部署测试脚本和测试场景

在建立合适的测试环境之后,接下来的工作是部署测试脚本和测试场景。对脚本和场景的部署需要熟悉测试工具的人员来完成,在本过程模型中,该活动由测试实施人员进行。在场景部署完成后,一般需要一个确认步骤,在该步骤,测试设计人员确认场景部署与预期的设计一致。沟通和确认工作在实际的测试过程很重要。

C.执行测试和记录结果


6.测试分析

测试过程分析过程用于对测试结果进行分析,根据测试的目的和目标给出测试结论。

性能测试的挑战性很大程度上体现在对测试结果的分析,可以说,每次性能测试结果的分析需要测试分析人员具有相当程度的对软件性能,软件架构和各性能指标的了解。

实际性能测试工程师需要配合开发人员协同定位性能测试过程的异常。


2019-11-11 19:10:16 cold___play 阅读数 231
  • 第07章-网络通信协议(OSI、TCP、UDP、IP、ARP、ICMP...

    课程内容如下: 通信协议的概念 ISO、OSI七层参考模型详解 TCP、IP模型详解 网络接口层详解 IP协议详解 IP地址和MAC地址特征分析 有了IP地址为什么还要使用MAC地址 ARP工作过程及工作原理解析 ICMP知识解析 ping命令使用详解 tracert命令使用详解 TCP详解 UDP协议详解 网络通信协议(应用层)协议

    8175 人正在学习 去看看 深博

增量模型

增量模型也成为渐增模型,如下图所示。

在这里插入图片描述

使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。

例如,使用增量模型开发字处理软件时,第1个增量构件提供基本的文件管理、编辑和文档生成功能;第2个增量构件提供更完善的编辑和文档生成功能;第3个增量构件实现拼写和语法检查功能;第4个增量构件完成高级的页面排版功能。把软件产品分解成增量构件时,应该使用构件的规模适中,规模过大或过小都不好。最佳分解方法因软件因软件产品特点和开发人员的习惯而异。分解时唯一必须遵守的约束条件是,当把新构件集成到现有软件中时,所形成的产品必须是可测试的。

采用瀑布模型或快速原型模型开发软件时,目标都是一次就把一个满足所有需求的产品提交给用户。增量模型则与之相反,它分批地逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发人员一个构件一个构件地向用户提交产品。从第一个构件交付之日起,用户就能做一些有用的工作。显然,能在较短时间内向用户提交可完成部分工作的产品,是怎量模型的一个优点。

增量模型的另一个优点是,逐步增加产品功能可以使用用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

使用增量模型的困难是,在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。此外,必须把软件的体系结构设计得便于按这种方式进行扩充,向现有产品中加入新构件的过程必须简单、方便,也就是说,软件体系结构必须是开放的。

但是,从长远观点看,具有开放结构的软件拥有真正的优势,这样的软件的可维护性明显好于封闭结构的软件。因此,尽管采用增量模型比采用瀑布模型和快速原型模型需要更精心的设计,但在设计阶段多付出的劳动将在维护阶段获得回报。如果一个设计非常灵活而且足够开放,足以支持增量模型,那么,这样的设计将允许在不破坏产品的情况下进行维护。事实上,使用增量模型时开发软件和扩充软件功能(完善性维护)并没有本质区别,都是向现有产品中加入新构件的过程。

从某种意义上说,增量模型本身是自相矛盾的。它一方面要求开发人员把软件看作一个整体,另一方面又要求开发人员把软件看作构件序列,每个构件本质上都独立于另一个构件。除非开发人员有足够的技术能力协调好这一明显的矛盾,否则用增量模型开发出的产品可能并不令人满意。

上图所示的增量模型表明,必须在开始实现各个构件之前就全部完成需求分析、规格说明和概要设计工作。由于在开始构建第一个构件之前已经有了总体设计,因此风险较小。

下图描绘了一种风险更大的增量模型:
在这里插入图片描述

一旦确定了用户需求之后,就着手拟定第一个构件的规格说明文档,完成后规格说明组将转向第二个构件的规格说明,与此同时设计组开始设计第一个构件…用这种方式开发软件,不同的构件将并行地构建,因此有可能加快工程进度。

但是,使用这种方式将冒构件无法集成到一起的风险,除非密切监控整个开发过程,否则整个工程可能毁于一旦。

2019-07-30 17:54:40 weixin_43147867 阅读数 250
  • 第07章-网络通信协议(OSI、TCP、UDP、IP、ARP、ICMP...

    课程内容如下: 通信协议的概念 ISO、OSI七层参考模型详解 TCP、IP模型详解 网络接口层详解 IP协议详解 IP地址和MAC地址特征分析 有了IP地址为什么还要使用MAC地址 ARP工作过程及工作原理解析 ICMP知识解析 ping命令使用详解 tracert命令使用详解 TCP详解 UDP协议详解 网络通信协议(应用层)协议

    8175 人正在学习 去看看 深博

一个bug 被发现 ,三个关键词
创造了 Fault 感染产生Error 传播失效 Failure
PIE模型详解
Fault : 在软件中写一段代码 这里用A表示,可能考虑不周,创造了一个代码缺陷
Error :我们执行软件触发了A ,产生一个状态
Failure:这个状态传播出来了,让我们发现与预期不符
PIE模型三个必要条件
Execution/Reachability:执行必须通过错误的代码
Infection :在执行错误代码时必须触发一个错误的中间状态
Propagation :错误的中间状态必须传播到最后输出,使得观测到的输出结果和预期结果不一致,即失效。

在测试中确实存在缺陷,但是有些时候因为缺陷条件没有被达到所以有些时候 :
我们创造了 Fault 执行了 他 但是避过了缺陷,得到了预期的结果
也可能我们创造了Fault 触碰了他并且产生了错误的中间状态 ,但是错误状态没有传播出到最后,我们得到还是预期的结果
所以一个Bug 的发现我们在测试时要考虑尽可能多的可能错误的地方,去发现Failure 的产生。

测试基础知识

阅读数 237

maven详解

阅读数 721

没有更多推荐了,返回首页