测试开发~

一、测试开发的工作内容(如何理解测开 / 为什么选择做测开)

测试开发的工作内容:

1、首先针对测试这边的工作有(可以根据测试流程来回答):

需求分析阶段:需求分析与评审、学习业务流程、提取功能点、编写需求分析说明书

测试设计阶段:编写测试计划说明书(5W1H)、编写测试用例(涉及自动化测试的话需要编写测试用例脚本)

测试执行阶段:提交BUG、跟踪BUG修改状态(这里可能会有回归测试,并且在测试执行之前会搭建测试环境)

测试总结阶段:提交BUG表单、编写测试总结报告

2、针对开发这边的工作:

自动化测试:编写测试脚本,执行测试,分析,提交BUG,跟踪BUG状态、总结

对测试工具的开发

软件开发(就是开发的工作)

二次开发(在开发人员开发好的软件上进行二次开发)

 

你怎么理解测开的?

测开岗其实分两种,以字节为例,测试开发工程师(技术序列),测试开发工程师(测试序列)。

技术序列偏向于测试平台的研发工作,偏向于纯开发,很少涉及具体业务测试,测试序列偏向业务测试,代码开发工作较少,目前各个公司实际上区分不太明显,大部分还是偏向于业务测试,少数分的特别清楚如字节。

但是部门公司面试标准是和开发对齐的,问的问题有时候会和开发没有特别大的区别、手撕算法难度也差不多,所以准备时应以开发岗的要求来做准备。

 

为什么做测开?

因为我的师兄师姐基本都是做开发或者算法,所以特通过他们了解了一些关于开发和算法岗的情况。测开这个岗位是通过我室友了解到的,后来自己也去了解了一些测开的知识,我觉得相对于开发岗或者算法岗,做测试这个工作更让我有成就感一些,我本身也挺喜欢测开这个工作模式。因为是第一份工作,所以也深入的去了解了一些测开的一些前景,因为现在客户对产品的质量越来越高,所以对产品的测试也越来越重要,比如性能测试和安全测试。因为测开这个岗位需要了解的东西很多,前端、开发、算法都需要了解一些。因此如果需要转岗的话,测开也是比较好转的,人生的第一份工作,我也想有更有可能性一些,不想一开始就把自己定位到某一个岗位上,我也想多学习,多了解一些知识。

 

怎么理解测试?

首先,测试是验证实际结果与预期结果是否一致的过程。

其次,测试的作用是发现并深层次的定位BUG,在一定程度上协助开发找到解决问题的方案。

再者,测试是为了保证产品的质量,在产品上线之前更可能多的发现产品的缺陷,避免上线后出现出现重大问题。

二、路由器测试

[参考](https://blog.csdn.net/qq_14935437/article/details/72768219)
**(一)功能测试**
路由器功能通常可以划分为如下方面。
(1)接口功能:该功能用作将路由器连接到网络。可以分为局域网接口及广域网接口两种。局域网接口主要包括以太网、令牌环、令牌总线、FDDI等网络接口。广域网接口主要包括E1/T1、E3/T3、DS3、通用串行口(可转换成X.21DTE/DCE、V.35DTE/DCE、RS232DTE/DCE、RS449DTE/DCE、EIA530DTE)等网络接口。
(2)通信协议功能:该功能负责处理通信协议,可以包括TCP/IP、PPP、X.25、帧中继等协议。
(3)数据包转发功能:该功能主要负责按照路由表内容在各端口(包括逻辑端口)间转发数据包并且改写链路层数据包头信息。(4)路由信息维护功能:该功能负责运行路由协议,维护路由表。路由协议可包括RIP、OSPF、BGP等协议。
(5)管理控制功能:路由器管理控制功能包括五个功能,SNMP代理功能,Telnet服务器功能,本地管理、远端监控和RMON功能。通过多种不同的途径对路由器进行控制管理,并且允许纪录日志。
(6)安全功能:用于完成数据包过滤,地址转换,访问控制,数据加密,防火墙,地址分配等功能。
  路由器对上述功能并非必要完全实现。但是由于路由器作为网络设备,存在最小功能集,对最小功能集所规定的功能,路由器必须支持。因为绝大多数功能测试可以由接口测试、性能测试、协议一致性测试和网管测试所函盖,所以路由器功能测试一般可以只对其他测试无法涵盖的功能作验证性测试。路由器功能测试一般采用远端测试法。
**(二)易用性测试**
接口等一些设备好不好用,接口功能可以,但是接上的时候比较费力,不好接等。
  **(三)性能测试:时间性能,稳定性能,压力测试,负载测试**
  路由器是IP网络的核心设备,其性能的好坏直接影响IP网网络规模、网络稳定性以及网络可扩展性。由于IETF没有对路由器性能测试作专门规定,一般来说只能按照RFC2544( Benchmarking Methodology for Network Interconnect Devices)作测试。但路由器区别于一般简单的网络互连设备,在性能测试时还应该加上路由器特有的性能测试。例如路由表容量、路由协议收敛时间等指标。
  路由器性能测试应当包括下列指标。
  (1)吞吐量:测试路由器包转发的能力。通常指路由器在不丢包条件下每秒转发包的极限,一般可以采用二分法查找该极限点。
  (2)时延(时间测试):测试路由器在吞吐量范围内从收到包到转发出该包的时间间隔。时延测试应当重复20次然后取其平均值。
  (3)丢包率:测试路由器在不同负荷下丢弃包占收到包的比例。不同负荷通常指从吞吐量测试到线速(线路上传输包的最高速率),步长一般使用线速的10%。
  (4)背靠背帧数:测试路由器在接收到以最小包间隔传输时不丢包条件下所能处理的最大包数。该测试实际考验路由器缓存能力,如果路由器具备线速能力(吞吐量=接口媒体线速),则该测试没有意义。
  (5)系统恢复时间:测试路由器在过载后恢复正常工作的时间。测试方法可以采用向路由器端口发送吞吐量110%和线速间的较小值,持续60秒后将速率下降到50%的时刻到最后一个丢包的时间间隔。如果路由器具备线速能力,则该测试没有意义。
  (6)系统复位:测试路由器从软件复位或关电重启到正常工作的时间间隔。正常工作指能以吞吐量转发数据。
  (7)稳定性、可靠性测试
  由于大多数路由器需要每天24小时,每周7天连续工作,作为Internet核心设备的骨干路由器的稳定性和可靠性尤其重要。所以用户需要了解露由器的稳定性和可靠性。
  路由器的稳定性和可靠性很难测试。一般可以通过两种途径的到:(1)厂家通过关键部件的可靠性以及备份程度计算系统可靠性;(2)用户或厂家通过大量相同产品使用中的故障率统计产品稳定性和可靠性。当然,用户也可以通过在一定时间内对试运行结果的要求来在一定程度上保证路由器的可靠性与稳定性。

  在测试上述RFC2544中规定的指标时应当考虑下列因素。
  帧格式:建议按照RFC2544所规定的帧格式测试;帧长:从最小帧长到MTU顺序递增,例如在以太网上采用64, 128, 256, 512, 1024, 1280, 1518字节;认证接收帧:排除收到的非测试帧,例如控制帧、路由更新帧等;广播帧:验证广播帧对路由器性能的影响,上述测试后在测试帧中夹杂1%广播帧再测试;管理帧:验证管理帧对路由器性能的影响,上述测试后在测试帧中夹杂每秒一个管理帧再测试;路由更新:路由更新即下一跳端口改变对性能的影响;过滤器:在设置过滤器条件下对路由器性能的影响,建议设置25个过滤条件测试;协议地址:测试路由器收到随机处于256个网络中的地址时对性能的影响;双向流量:测试路由器端口双向收发数据对性能的影响;多端口测试:考虑流量全连接分布或非全连接分布对性能的影响;多协议测试:考虑路由器同时处理多种协议对性能的影响;混合包长:除测试所建议的递增包长外,检查混合包长对路由器性能的影响,RFC2544除要求包含所有测试包长外没有对混合包长中各包长所占比例作规定。笔者建议按照实际网络中各包长的分布测试,例如在没有特殊应用要求时以太网接口上可采用60字节包50%,128字节包10%,256字节包15%,512字节包10%,1500字节包15%。除上述RFC2544建议的测试项外还建议测试如下内容。
  ①路由震荡:路由震荡对路由器转发能力的影响。路由震荡程度即每秒更新路由的数量可以依据网络条件而定。路由更新协议可采用BGP。②路由表容量:测试路由表大小。骨干网路由器通常运行BGP,路由表包含全球路由。一般来说要求超过10万条路由,建议通过采用BGP输入导出路由计数来测试。③时钟同步:在包含相应端口例如POS口的路由器上测试内钟精度以及同步能力。④协议收敛时间:测试路由变化通知到全网所用时间。该指标虽然与路由器单机性能有关,但是一般只能在网络上测试,而且会因配置改变而变化。可以在网络配置完成后通过检查该指标来衡量全网性能。测试时间应当根据具体项目以及测试目标而定。一般认为测试时间应当介于60秒到300秒之间。另外一般可以根据用户要求和测试目标作设定选择。路由器性能测试一般可采用远端测试法。
 **(四)一致性测试**
  路由器一致性测试通常采用“黑箱”方法,被测试设备IUT叫做“黑箱”。测试系统通过控制观察点PCO与被测试设备接口。
  不同的测试事件是通过不同的PCO来控制和观察的,按照其应答是否遵守规范,即定时关系和数据匹配限制,测试的结果可分为通过、失败、无结果3种。路由器是一种复杂的网络互连设备,需要在各个通信层上实现多种协议。例如相应的接口的物理层和链路层协议、IP/ICMP等互联网层协议、TCP/UDP等传输层协议、Telnet/SNMP等应用层协议以及RIP/OSPF/BGP等路由协议。
  协议一致性测试应当包含路由器所实现的所有协议。由于该测试内容繁多测试复杂,在测试中可以选择重要的协议以及所关心的内容测试。由于骨干网上路有器可能影响全球路由,所以在路由器测试中应特别重视路由协议一致性测试例如OSPF和BGP协议。由于一致性测试只能选择有限测试例测试,一般无法涵盖协议所有内容。所以即使通过测试也无法保证设备完全实现协议所有内容,所以最好的办法是在现实环境中试运行。路由器一致性测试一般采用分布式测试法或远端测试法。
**(五)互操作测试**
  由于通信协议、路由协议非常复杂且拥有众多选项,实现同一协议的路由器并不能保证互通互操作。并且因为一致性测试能力有限,即使通过协议一致性测试也未必能保证完全实现协议。所以有必要对设备进行互操作测试。
  互操作测试实际上是将一致性测试中所用的仪表替换成需要与之互通互操作的设备,选择一些重要且典型的互连方式配置,观察两设备是否能按照预期正常工作。
**(六)网管测试**
  网管测试一般测试网管软件对网络以及网络上设备的管理能力。由于路由器是IP网的核心设备,所以必须测试路由器对网管的支持度。如果路由器附带网管软件,可以通过使用所附带的网管软件来检查网管软件所实现的配置管理、安全管理、性能管理、计帐管理、故障管理、拓扑管理和视图管理等功能。如果路由器不附带网管软件,则应当测试路由器对SNMP协议实现的一致性以及对MIB实现的程度。由于路由器需要实现的MIB非常多,每个MIB都包含大量内容,很难对MIB实现完全测试。一般可以通过抽测重要的MIB项来检查路由器对MIB的实现情况。

三、Benchmark测试

benchmark测试在计算机领域中最广泛和最成功的应用是性能测试,主要测试响应时间、传输速率和吞吐量等。此外他也用于功能、可操作性和数据处理开发易用性等方面的测试。benchmark测试有些偏重于硬件,有些偏重于软件,还有些注重于整个系统。在硬件方面广泛应用于评价CPU、内存、I/O接口和外围设备的性能,主要测试两个方面的性能指标:一是硬件传输数据的带宽,称为带宽基准测试;二是数据传输的延迟,称为延迟基准测试。在软件方面,他用于评价操作系统、数据库和中间件以及应用软件的数据处理能力。

Benchmark测试中最重要的是标准规范,也就是说他是一个评价方式,工具等因素已经不重要,只要大家都用同一标准规范、同一工具进行系统测试,那么测试结果也就具有了比较意义。Benchmark 测试实际上就成了各个厂商展示技术实力的舞台, 任何厂家或者测试者都可以根据组织公布的规范标准, 构建自己最优的系统.
四、软件用例状态

测试开发~_第1张图片

具体这些状态都是什么意思呢?

1.排队(In Queue):测试用例已经指定给某个测试人,不准备在这一个测试阶段运行。

2.进行中(IP):该测试正在进行,并且会持续一段时间。

3.阻塞(Block):一些因素会导致测试不能进行到底,例如某个功能欠缺或者测试环境的某个部分欠缺。即,希望运行测试,但是目前还不能运行测试。

4.跳过(Skip):你决定在当前测试阶段跳过某个测试,可能是因为它的优先权相对较低。即,现在可以运行这个测试,但是我不想运行它。

5.通过(Pass):测试运行结束,测试人得到了预料中的测试结果状态和测试行为。

6.失败(Fail):在很多情况下,测试人得到预料之外的测试结果,状态或行为,这些结果与测试目标相差甚远。这就引发了关于系统质量的疑问。一个或多个测试错误需要记录下来。

7.警告(Warn):在很多情况下,测试人得到预料之外的测试结果,状态或行为,但是这些结果与测试目标差别不是很大

8.关闭(Close):一个测试在第一个循环中被标为失败或警告,第二个测试发布中将第一个测试循环出现的错误修改了。重新运行了整个测试用例后,没有错误出现。将这类测试标记为关闭而不是通过,使得你可以跟踪测试在某一个测试发布中失败的实事
五、SDV测试

产品研发阶段:
SIV:SYSTEM INTEGRATION VERIFY 系统集成验证
SDV:SYSTEM DESIGN VERIFY 系统设计验证
SIT:SYSTEM INTEGRATION TEST系统集成测试
一般这三种都由开发 人员做。

 产品测试阶段:
ST:SYSTEM TEST系统集成测试

六、冒烟测试&可用性测试&回归测试

测试领域,冒烟测试(smoke test)、可用性测试(sanity test)和回归测试(regression test)彼此之间很相似,范围也有重叠,所以比较容易混淆:都是在需求变更或问题修改后对系统全面测试之前的一种预测试,都是为了发现是否在界面和代码层面引入了问题。

  我们可以用一个和河流相关的类比来更好的理解它们之间的差别,在类比之前,我们先了解下这几个测试的简单定义:
  Smoke Testing:测试新特性有关的所有方面 (广度) ,但不深入,用以判断我们是否需要执行进一步的测试。
  Sanity Testing:测试新特性的有限正常功能,深入测试。
  Regression testing:回归新特性所有相关功能,避免引入代码变更存在问题以及引入新问题,深入全面。

  如果我们拿一条河流来比喻,比如1000英尺宽,在水里含有杂质(可以比作软件中的bug),那么这三种类型的测试可以被看作如下:
  对于Smoke Testing:为了找到河面所有的杂质,但不包括水面以下的。
  对于Sanity Testing:为了找到某个特定范围内所有的杂质(比如200英尺半径内),这不包含所有表面的杂质,但包含了那个范围内水面下直到水底的杂质。
  对于Regression Testing:为了这片水域所有的杂质,表面的以及水面以下的

七、Daily test

目的 :可以对DailyBuild的版本进行风险控制,快速验证版本功能和质量,减少手工测试,提升版本质量.

流程: 如图所示,各个迭代组把每日构建的版本下载到自己独立的服务器/环境,执行完整的/较完善的版本级测试用例(验证所有功能/特性的测试用例),及时发现问题(各个迭代组的代码可能出现耦合,或者开发的特性相互影响),根据问题的严重性进行定位,更新版本。

其中,测试的内容包括:基本功能验证、老特性回归测试、新特性冒烟测试 。

 

术语解释

DailyBuild---根据情况,每日合入各个迭代组完成的特性/功能,快速生成现实可用的版本。

DailyTest---对DailyBuild的版本进行测试,发现问题,及时反馈解决。

回归测试---在旧本已验证正确的测试用例,在新版本继续使用,验证功能模块。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。[百度]

冒烟测试---冒烟测试(smoke test)在测试中发现问题,找到了一个Bug,然后开发人员会来修复这个Bug。这时想知道这次修复是否真的解决了程序的Bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为Smoke Test。

八、测试驱动开发

测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。

九、刷新率

1、刷新率

刷新率是指电子束对屏幕上的图像重复扫描的次数。刷新率越高,所显示的图象(画面)稳定性就越好。刷新率高低将直接决定其价格,但是由于刷新率与分辨率两者相互制约,因此只有在高分辨率下达到高刷新率这样的显示器才能称其为性能优秀。

注意,虽然它的计算单位与垂直扫描频率都是Hz,但这是两个截然不同的概念。75Hz的画面刷新率是VESA订定无闪烁的最基本标准,这里的75Hz应是所有显示模式下的都能达到的标准。

影响因素1

软件

影响因素2

硬件

影响因素3

行频

十、测试管理体系/流程

 一、IPD

1、IPD概念

集成产品开发,Integrated Product Development

2、IPD作为先进的产品开发理念,其核心思想概括如下:

a) 新产品开发是一项投资决策。IPD强调要对产品开发进行有效的投资组合分析,并在开发过程设置检查点,通过阶段性评审来决定项目是继续、暂停、终止还是改变方向。

b) 基于市场的开发。IPD强调产品创新一定是基于市场需求和竞争分析的创新。为此,IPD把正确定义产品概念、市场需求作为流程的第一步,开始就把事情做正确。

c) 跨部门、跨系统的协同。采用跨部门的产品开发团队(PDT:Product Development Team),通过有效的沟通、协调以及决策,达到尽快将产品推向市场的目的。

d) 异步开发模式,也称并行工程。就是通过严密的计划、准确的接口设计,把原来的许多后续活动提前进行,这样可以缩短产品上市时间。

e) 重用性。采用公用构建模块(CBB:Common Building Block)提高产品开发的效率。

f) 结构化的流程。产品开发项目的相对不确定性,要求开发流程在非结构化与过于结构化之间找到平衡。

IPD框架是IPD的精髓,它集成了代表业界最佳实践的诸多要素。具体包括异步开发与共用基础模块、跨部门团队、项目和管道管理、结构化流程、客户需求分析($APPEALS)、优化投资组合和衡量标准共七个方面,IPD框架如下图所示:

测试开发~_第2张图片

3、下面分别介绍IPD框架中的几个方面:

A、市场管理

市场管理从客户、投资、市场等产品生存的外在客观环境因素来影响产品的特性和生命。包括:

a)需求分析

可以说,没有需求就没有产品,缺乏好的、及时的市场需求是项目方向偏离和产品失败的最主要原因。IPD使用一种用于了解客户需求、确定产品市场定位的工具——$APPEALS进行需求分析。 $APPEALS从八个方面衡量客户对产品的关注,确定产品的哪一方面对客户是最重要的。$APPEALS的含义如下:$-产品价格(Price);A-可获得性(Availability);P-包装(Packaging);P-性能(Performance);E-易用性(Easy to use);A-保证程度(Assurances);L-生命周期成本(Life cycle of cost);S-社会接受程度(Social acceptance)。

b)组合分析

IPD强调对产品开发进行有效的投资组合分析。如何正确评价、决定企业是否开发一个新产品,以及正确地决定对各个新产品的资金分配额,就需要测定新产品的投资利润率。只有明确了投资利润率的各种静态和动态的决定因素和计算方法,企业才能对产品战略做出正确的判断和决策,进而确定产品开发的投资。

企业能否有效地掌握投入资金的对策,取得好的产品资金效果,提高资金运营效率,是一个大的战略问题,也是企业业务投资组合计划的任务。尤其是经营多种产品的生产企业,要正确地决定资金投入对策,还必须研究产品结构,研究企业各种产品的投入、产出、创利与市场占有率、市场成长率的关系,然后才能决定对众多产品如何分配资金。这是企业产品投资组合计划必须解决的问题。企业组成什么样的产品结构?总的要求应是各具特色,经济合理。因此,需要考虑服务方向、竞争对手、市场需求、企业优势、资源条件、收益目标等因素。

投资组合分析要贯穿整个产品生命周期,在开发过程设置检查点,通过阶段性评审来决定项目是继续、暂停、终止还是改变方向。通常在各个阶段完成之后,要做一次GO/NO GO决策,以决定下一步是否继续,从而可以最大地减少资源浪费,避免后续资源的无谓投入。

c)衡量指标

投资分析和评审的依据是事先制订的衡量指标,包括对产品开发过程、不同层次人员或组织的工作绩效进行衡量的一系列指标。 如产品开发过程的衡量标准有硬指标(如财务指标、产品开发周期等)和软指标(如产品开发过程的成熟度);衡量标准有投资效率、新产品收入比率、被废弃的项目数、产品上市时间、产品盈利时间、共用基础模块的重用情况等。

B、流程重整

IPD中的流程重整主要关注于跨部门的团队、结构化的流程、项目和管道管理。在结构化流程的每一个阶段及决策点,由不同功能部门人员组成的跨部门团队协同工作,完成产品开发战略的决策和产品的设计开发,通过项目管理和管道管理来保证项目顺利地得到开发。

a)团队

组织结构是流程运作的基本保证。在IPD中有两类跨部门团队,一个是集成产品管理团队(IPMT),属于高层管理决策层; 另一个是产品开发团队(PDT),属于项目执行层。IPD团队框架可参考如下:

测试开发~_第3张图片

IPMT和PDT都是由跨职能部门的人组成,包含了开发、市场、生产、采购、品质、财务、制造、技术支援等不同部门的人员,其人员层次和工作重点都有所不同。IPMT由公司决策层人员组成,其工作是确保公司在市场上有正确的产品定位,保证项目保证资源、控制投资。IPMT同时管理多个PDT,并从市场的角度考察他们是否盈利,适时终止前景不好的项目,保证将公司有限的资源投到高回报的项目上。

PDT是具体的产品开发团队,其工作是制定具体产品策略和业务计划,按照项目计划执行并保证及时完成,确保小组将按计划及时地将产品投放到市场。

PDT是一个虚拟的组织,其成员在产品开发期间一起工作,由项目经理组织,可以是项目经理负责的项目单列式组织结构。

b) 流程

IPD产品开发流程被明确地划分为概念、计划、开发、验证、发布、生命周期六个阶段,并且在流程中有定义清晰的决策评审点。这些评审点上的评审已不是技术评审,而是业务评审,更关注产品的市场定位及盈利情况。决策评审点有一致的衡量标准,只有完成了规定的工作才能够由一个决策点进入下一个决策点。下面是典型的产品开发流程:

①在概念阶段初期,一旦IPMT认为新产品、新服务和新市场的思想有价值,他们将组建并任命PDT成员。

②PDT了解未来市场、收集信息、制定业务计划。业务计划主要包括市场分析、产品概述、竞争分析、生产和供应计划、市场计划、客户服务支持计划、项目时间安排和资源计划、风险评估和风险管理、财务概述等方面信息,所有这些信息都要从业务的角度来思考和确定,保证企业最终能够盈利。

③ 业务计划完成之后,进行概念决策评审。IPMT审视这些项目并决定哪些项目可以进入计划阶段。

④在计划阶段,PDT综合考虑组织、资源、时间、费用等因素,形成一个总体、详细、具有较高正确性的业务计划。

⑤完成详细业务计划以后,PDT提交该计划给IPMT评审。如果评审通过,项目进入开发阶段。PDT负责管理从计划评审点直到将产品推向市场的整个开发过程,PDT小组成员负责落实相关部门的支持。

⑥在产品开发全过程中,就每一活动所需要的时间及费用,不同层次人员、部门之间依次做出承诺。

c)管理

项目管理是使跨部门团队集合起来更好地行动的关键。首先要有一个目标即项目所要达到的效果,一旦我们将客户的需求转换为对产品的需求时,就可以制定详细计划。该计划中的各部分将具体划分为每个职能部门的工作,即这个计划不只是研发部门的计划,也是公司各个部门共同的计划。 一个产品从概念形成到上市期间会涉及到许多不同的紧密相联的活动,就好像不同职能部门彼此之间是有关系的。同样在一个项目中他们彼此之间的活动也是有关联的,所有的活动加起来就是整个的产品开发。

接下来安排活动的时间,然后对每个活动进行预算和资源的调配,在项目实施过程中还需要不断地与计划对照,因为没有任何一个计划是完善的,所以可以在细的层面上对计划进行一定的调整,但是PDT做出的承诺不能改变。整个项目的进行过程都需要PDT的参与,因此,PDT在产品开发全流程中自始至终存在。

管道管理类似于多任务处理系统中的资源调度和管理,指根据公司的业务策略对开发项目及其所需资源进行优先排序及动态平衡的过程。

C、产品重整

IPD提高开发效率的手段是产品重整。产品重整主要关注于异步开发和共用基础模块(CBB)。

①开发

异步开发模式的基本思想是将产品开发在纵向分为不同的层次,如技术层、子系统层、平台层等。不同层次工作由不同的团队并行地异步开发完成,从而减少下层对上层工作的制约,每个层次都直接面向市场。

通常,在产品开发过程中,由于上层技术或系统通常依赖于下层的技术,因此,开发层次之间的工作具有相互依赖性,如果一个层次的工作延迟了,将会造成整个时间的延长,这是导致产品开发延误的主要原因。 通过减弱各开发层次间的依赖关系,可以实现所有层次任务的异步开发。

为了实现异步开发,建立可重用的共用基础模块是非常重要的。

②模块

共用基础模块(Common Building Blocks, CBB)指那些可以在不同产品、系统之间共用的零部件、模块、技术及其他相关的设计成果。由于部门之间共享已有成果的程度很低,随着产品种类的不断增长,零部件、支持系统、供应商也在持续增长,这将导致一系列问题。 事实上,不同产品、系统之间,存在许多可以共用的零部件、模块和技术,如果产品在开发中尽可能多地采用了这些成熟的共用基础模块和技术,无疑这一产品的质量、进度和成本会得到很好的控制和保证,产品开发中的技术风险也将大为降低。 因此,通过产品重整,建立CBB数据库,实现技术、模块、子系统、零部件在不同产品之间的重用和共享,可以缩短产品开发周期、降低产品成本。 CBB策略的实施需要组织结构和衡量标准的保证。

不管是异步开发还是共用基础模块的实现,都需要很高水平的系统划分和接口标准制订,需要企业级的构架师进行规划。

4、关键要素

①、跨部门团队,包括进行管理的产品评审委员会及具体执行开发过程的产品开发团队(PDT)。

②、结构化的流程。IPD流程分为6个阶段及4个主要决策评审点(DCP),这些阶段和决策评审点由跨部门团队进行计划和管理。6个阶段包括概念、计划、开发、验证、发布 及生命周期,每个阶段有其阶段性的目标、关注点及需交付的成果。

③、一流的子流程,包括计划与控制、阶段决策、技术评审、以用户为中心的设计、CBB-重用、文档管理、质量控制、物料管理、软硬件设计、技术管理及管道管理等。

④、IPD工具:包括业务及技术上的工具。

⑤、考评:包括团队和个人绩效考核两个方面:首先是基于产品开发团队(PDT)的指标,如上市时间(TTM)、盈利时间和公用构建模块(CBB)等;其次是基于个人的指标,包括进度或计划完成率、质量、公用构建模块、关键行为指标等。

5、实施IPD注意事项

借鉴业界成功实施IPD公司的经验总结,一个组织实施IPD时要密切注意如下两个方面:

①、整体规划、分步实施。

IPD涉及7个方面,如果全面深入实施,需要投入比较多的时间和成本,但大部分企业没有这样做的必要,IPD的7个要素是相互关联,又彼此独立的,企业完全可以根据自己实际情况和需要,分步实施,结合国内企业的实际研发能力,建议优先实施:结构化流程、项目管理、异步开发与公共基础模块3个方面。

②、IPD实施要借助信息化工具。

实施IPD就需要制定一系列流程、制度、方法、模板,尤其跨部门项目团队、分层分级的计划管理、衡量指标的落地执行都需要借助IT化手段,从而降低操作难度;实践证明能够很好支撑IPD落地的工具有:微软Project Server、IBM Rational系列工具、青铜器RDM研发管理系统。IPD工具至少要满足如下特点:

1) 支撑研发决策管理,工具要能自动汇总资源、财务、进度等数据,同时要能跨项目对比分析,从而有效支撑领导商业决策分析。

2) 同时满足产品、项目、部门的管理需要,产品要提供资源计划、产品规划、市场情报收集分析能力;项目要提供计划、团队沟通、交付文档管理、需求测试管理能力;部门要提供资源池分析管理能力

3) 强大报表分析能力,能够自动汇总进度、财务、交付、质量等量化数据,并且按照不同维度对比分析,满足多项目管理的需要。

6、IPD优点

集成产品开发是从企业的流程重组和产品重组的角度,保证产品的立项开发、产品开发的人力资源有效调配。依据一个完整的框架和管理流程,给企业管理带来的主要优点在于:

①产品研发周期显著缩短;

②产品成本降低;

③研发费用占总收入的比率降低,人均产出率大幅提高;

④产品质量普遍提高;

⑤花费在中途废止项目上的费用明显减少。

二、CMMI

1、CMMI含义

Capability Maturity Model Integration,即能力成熟度模型集成

2、CMM

2.1CMM含义

能力成熟度模型,Capability Maturity Model

2.2CMM等级划分

软件能力成熟度模型是一种对软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述形成的标准。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。

CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。

CMM/CMMI将软件过程的成熟度分为5个等级,以下是5个等级的基本特征:

(1)初始级(initial)。工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。

(2)可重复级(Repeatable)。管理制度化,建立了基本的管理制度和规程,管理工作有章可循。 初步实现标准化,开发工作比较好地按标准实施。 变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。

(3)已定义级(Defined)。开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。

(4)已管理级(Managed)。产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。

(5)优化级(Optimizing)。可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。

3、CMMI与CMM

CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD),SEI在部分国家和地区开始推广和试用。随着应用的推广与模型本身的发展,演绎成为一种被广泛应用的综合性模型。

CMM模型主要用于软件过程的改进,促进软件企业软件能力成熟度的提高,但它对于系统工程、集成化产品和过程开发、供应商管理等领域的过程改进都存在缺陷,因而人们不得不分别开发软件以外其他学科的类似模型。

4、CMMI模型表示法

在CMMI中,每一种CMMI学科模型都有两种表示法:阶段式表示法和连续式表示法。

不同表示法的模型具有不同的结构。连续式表示法强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力”;而阶段式表示法强调的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度”。

(1)阶段式表示法

软件CMM是一种阶段式模型,该模型经过多年的成功使用已经被证明是有效的,这为选择阶段式表示法模型提供了最强有力的证据。考虑从不成熟组织向成熟组织的发展过程,阶段式表示法具有两方面优势。

首先,阶段式模型为支持组织的过程改进提供了一个过程平台,该模型将软件组织的软件能力成熟度描述为5级。对于着眼于改善过程成熟度的组织来说,阶段式模型提供了一种明确的、行之有效的跨越式发展途径。阶段式模型中所描述的组织的五个成熟度等级中,每实现一次等级间的跨越,组织就致力于解决某一方面的问题。例如,组织从成熟度等级1到成熟度等级2,主要致力于项目管理过程的改进;从成熟度等级2到成熟度等级3,主要致力于广泛的组织级过程的改进;从成熟度等级3到成熟度等级4,主要致力于过程定量管理的过程的改进;从成熟度等级4到成熟度等级5,主要致力于技术革新和优化过程的改进。通过这种方式,阶段式模型确定了组织进行过程改进的最佳次序。

其次,阶段式模型可以为组织定义一个过程成熟度等级,便于进行跨组织的比较。在阶段式模型中,每一个过程域都被指定归属到一个成熟度等级中。因此,基于阶段式模型为组织所定义的成熟度等级中,过程域的预期范围和应用将变得非常清晰。这样,在对不同的组织进行比较时,只要对比组织所达到的不同的成熟度等级,即可知道不同组织在执行过程域方面所存在的差别。

阶段式表示法存在两方面的缺点:一是阶段式表示法采用分组形式,将过程域划分到五个等级中。在一般情况下,一个组织要到达某一个等级,必须满足该等级及其低等级的所有过程域,因而缺乏灵活性。另外,阶段式表示法的每个等级都会出现同时进行多个过程改进的情况,因而工作量大,所花费的成本也很大。

(2)连续式表示法

相比之下,连续式模型不如阶段式模型常用,采用连续式模型也有如下两方面的优势:

首先,连续式模型为用户进行过程改进提供了比较大的自由度。如同上面所说,阶段式模型确定了组织进行过程改进的最佳次序,但同时也限定了用户在进行过程改进时必须遵循单一的改善路径。而连续式模型则允许用户根据组织的业务目的来选择过程改进活动的次序。在连续式模型中,用户可以选择定义组织的成熟度等级,同时还可以选择定义更适合于自身业务环境的过程域的次序。组织可以在一个自己选择的次序中使过程域达到给定的能力等级,而不必遵循单一的阶段式模型的原则。

其次,基于连续式模型对组织的过程进行评估,其评估结果具有更好的可见性。在连续式模型中,可以为每个过程域定义多个能力等级,从而可以增强对过程改进中强项和弱点的认识。由于连续式模型是对每个个别的过程域进行单独的评定,并给出个别过程域的能力等级特征图,这样更便于观察。

连续式表示法也存在两方面的缺点:一是由于连续式表示法没有规定过程域应用的顺序,因而组织的过程改进需要软件过程改进专家的指导,以便确定组织需要改进的过程和改进的先后次序。另外,尽管组织应用连续式表示法进行了过程改进,但难以与其他软件组织进行组织间过程能力的比较。 

5、CMMI级别

CMMI共有5个级别,代表软件团队能力成熟度的5个等级,数字越大,成熟度越高,高成熟度等级表示有比较强的软件综合开发能力。

CMMI一级,执行级。在执行级水平上,软件组织对项目的目标与要做的努力很清晰,项目的目标可以实现。但是由于任务的完成带有很大的偶然性,软件组织无法保证在实施同类项目时仍然能够完成任务。项目实施能否成功主要取决于实施人员。

CMMI二级,管理级。在管理级水平上,所有第一级的要求都已经达到,另外,软件组织在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对项目相关的实施人员进行了相应的培训,对整个流程进行监测与控制,并联合上级单位对项目与流程进行审查。二级水平的软件组织对项目有一系列管理程序,避免了软件组织完成任务的随机性,保证了软件组织实施项目的成功率。

CMMl三级,明确级。在明确级水平上,所有第二级的要求都已经达到,另外,软件组织能够根据自身的特殊情况及自己的标准流程,将这套管理体系与流程予以制度化。这样,软件组织不仅能够在同类项目上成功,也可以在其他项目上成功。科学管理成为软件组织的一种文化,成为软件组织的财富。

CMMI四级,量化级。在量化管理级水平上,所有第三级的要求都已经达到,另外,软件组织的项目管理实现了数字化。通过数字化技术来实现流程的稳定性,实现管理的精度,降低项目实施在质量上的波动。

CMMI五级,优化级。在优化级水平上,所有第四级的要求都已经达到,另外,软件组织能够充分利用信息资料,对软件组织在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。

由上述的5个级别可以看出,每一个级别都是更高一级的基石。要上高层台阶必须首先踏上所有下层的台阶。

三、TMMI

1、TMMI是基于敏捷开发模型

2、TMMI讲究持续开发、持续集成、持续测试

3、TMMI参照CMMI测试体系

4、TMMI评估范围测试开发~_第4张图片

十一、

 

你可能感兴趣的:(测试开发~)