专业的品牌信息化整合营销服务机构

互联网信息化咨询/技术开发/整合营销

请通过以下方式免费咨询

软件开发过程

软件开发过程

内容:

1,软件开发过程模型

2,测试模型,

3,软件测试分类

软件开发过程模型:
瀑布模型:从上往下,不能倒流,测试介入比较晚,需要大量的文档

需求分析>设计>编码>实现>测试>运行>维护

特点:

1,过程是线性的,从上而下,开发的各个阶段比较清晰;

2,但单一流程不可逆,适合需求稳定的大型项目。需要利用大量的文档进行沟通,

3,因为是线性的,所以返工的成本较大。测试人员切入的时间点比较晚,很多问题到项目的后期才能暴露

优点:1,开发的每个阶段比较清晰

          2, 强调早期的计划及需求调查

           3,适合需求稳定的产品开发

缺点:1,依赖于早期的需求调查,不适应需求的变化

           2,单一流程不可逆

          3, 风险往往到后期才显露,失去及早纠正的机会

          4, 问题在项目后期才开始暴露

         5, 前面未发现的错误会传递并扩散到后面阶段,可能导致项目失败

快速原型模型:

1,客户介入较早,适合预先不能确定需求的小型项目。

2,灵活性较高。

3,在一定程序能会限制开发人员的创新

优点:1,克服瀑布模型的缺点,更好地满足用户的需求并减少由于软件需求不明确带来的项目开发风险。适合预先不能确切定义需求的软件系统的开发

缺点:1,不适合大型系统的开发(适合开发小型的、灵活性高的系统)。前提要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。

螺旋模型:

1,加入了风险控制及评估。

2,需要有经验的人员参与。

3,过多的迭代次数会增加开发成本,延迟交付时间

优点:•螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。

缺点:•采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中, 如果未能够及时标识风险,势必造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间。

集成测试的关注点:

1,服务是否能正常访问(模块和模块之间的连通性)

2,输入参数的测试

3,返回数据类型

4,返回的数据结果集

5,返回码

测试模型如常见的:V模型W模型H模型

•V模型本身是软件开发中瀑布模型的变种,它反映了测试活动与分析和设计的关系。

V模型的特点:

1,包含了底层测试和高层测试

2,对于软件开发有清晰的阶段

3,每个阶段工作很明确,因此便于控制开发过程

4,测试的介入点较晚,缺陷的修复成本较高

5,需求阶段很难把用户的需求完全明确下来,因此在需求发生变化时,返工量工作大。

•需求分析

用户需求、业务需求、需求规格说明书

•概要设计

系统架构、模块划分、模块与模块之间的接口。

•详细设计

模块内部实现的逻辑和方法。

•编码

实现上面的设计。

•测试V模型即包含了底层测试又包含了高层测试;

•底层测试:检验源代码质量的测试,如:单元测试;

•高层测试:检验整个系统的需要,如:系统测试;

W模型特点:

1,测试和开发同步进行,测试切入时间点早,缺陷的修复成本较低2,测试对象不仅仅只是程序,包含开发过程中所产生的文档,比如需求规格说明书,数据库字典,HLD,LLD设计文档等3,同样是分阶段工作,便于控制项目过程。4,如果过程中不产生问题,W模型也无法适用5,技术难度较高,需求和设计的测试要求很高,实践起来困难

•W模型的优点:

1•开发强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求和概要设计同样要测试;

2•更早地接入测试,可以发现开发初期的缺陷,那么可以用更加低的成本进行缺陷修复。

3•同样是分阶段的工作,便于控制项目过程。

•W模型的缺点:

1•依赖于软件开发和软件测试依然保持一前一后的线性关系,依然无法支持迭代、自发性和需求等变更调整;

2•对于当前很多项目,在执行的过程中根本不产生文档,那么W模型基本无法适用;

3•使用起来技术复杂度很高,对于需求和设计的测试要求很高,实践起来困难。

H模型:

H模型特点:

1,软件测试完全独立,贯穿于整个软件生命周期2,软件测试活动可以尽早的准备,尽早的执行。3,软件测试过程可以被迭代4,测试过程有风险识别。5,对管理岗位要求高,对测试人员技能要求较高。

•测试流程

•测试准备:所有测试执行活动的准备;判断是否到测试就绪点;

•测试就绪点:测试准入准则,即是否可以开始执行测试的条件;

•测试执行:具体的执行测试的程序。

•H模型的优点:

•开发的H模型揭示了软件测试除测试执行外,还有很多工作;

•软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行;

•软件测试活动可以尽早准备、尽早执行,具有很强的灵活性;

•软件测试可以根据被测物的不同而分层次、分阶段、分次序的执行,同时也是可以被迭代的。

•H模型的缺点:

管理型要求高:由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将非常难以管理和控制;

技能要求高:H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小;

测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大困难;

对于整个项目组的人员要求非常高:在很好的规范制度下,大家都能高效的工作,否则容易混乱。例如:你分了一个小的迭代,但是因为人员技能不足,使得无法有效完成,那么整个项目就会受到很大的干扰。

单元测试:(又称模块测试)

针对软件设计中的最小单位——程序模块

集成测试:(组装测试)

系统测试(system testing):(功能性测试)

黑盒测试:(数据驱动)

只关心软件的输入数据和输出数据。

白盒测试:(逻辑驱动)

去研究里面的源代码和程序结构

•黑盒测试能发现以下几类错误:

•功能不对或功能遗漏。

•界面错误。

•数据库访问或者处理错误。

•性能问题。

黑盒测试的缺点

1,不能测试程序内部特定部位;

2,如果程序未执行的代码无法发现;

3,不可能做到穷举测试

黑盒测试的优点

1,测试人员不需要了解实现得细节,包括特定的编程语言(没有编程经验的人也可以设计测试用例);

2,测试人员和编程人员是相互独立的(黑盒测试用例设计与程序如何实现无关);

3,从用户的角度进行测试,很容易被接受和理解;

4,有助于暴露任何与规格不一致或者歧异的地方;

黑盒测试的分类

1,功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。

2,性能测试:是软件测试的高端领域

灰盒测试:

介于白盒测试与黑盒测试之间的一种测试

•静态测试(static testing),指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。

•动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

•α测试:是内测版本,即现在所说的(CB 封测),此版本表示该软件仅仅是一个初步完成品, 通常只在软件开发者内部交流, 也有很少一部分发布给专业测试人员。一般而言, 该版本软件的bug 较多, 普通用户最好不要安装

•β测试:是公测版本,(OB)是对所有用户开放的测试版本。该版本相对于α 版已有了很大的改进,消除了严重的错误, 但还是存在着一些缺陷,需要经过大规模的发布测试来进一步消除。这一版本通常由软件公司免费发布, 用户可从相关的站点下载。通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改。该版本也不适合一般用户安装。

•γ测试:指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本。

回归测试1, 重点关注Bug的现象得已修复2, 关注与Bug相关的功能受影响的模块,以免漏掉修改引入的问题。

单元测试又叫模块测试集成测试又叫组装测试系统测试又叫功能测试

集成测试的关注点:

1,服务是否能正常访问(模块和模块之间的联通性)

2,输入参数的测试

3,返回的数据类型

4,返回的数据结果集

5,返回码

黑盒测试,又叫数据驱动测试,只关心软件数据的输入和输出,是一种穷举数据的测试方法白盒测试,又叫逻辑驱动测试,需要熟悉程序的源代码和内部结构,是一种穷举路径的测试方

黑盒测试能发现的问题?

1,功能不对 或遗漏2,界面错误3,数据库访问或处理错误4,性能问题

怎么做兼容性测试?

1,操作系统兼容性2,浏览器兼容性3,硬件兼容性4,数据兼容性

怎么做易用性测试?

1,易安装,易部署2,易理解3,易学习,易上手4,易操作(交互适应性,实用性,有效性)5,详细的帮助信息测试

如何做用户界面测试:

1,关注是否符合·标准和规范

2,直观性(界面友好度,排版,布局)

3,一致性(快捷键,菜单,画风等风格统一)

4,灵活性(状态跳转,回退,终止,跳过,数据的输入输出)

5,舒适性(恰当,错误处理,性能)

6,正确性(拼写)

7,实用性

怎么做扩展性测试?

1,配置项是否开放

2,异种数据库接口是否提供

3,文件格式的支持度

4,扩充接口测试

5,组件式(模块式开发,比如自定义报表,自定义权限,自定义群组,自定义Job等等)

Job:系统特定的一个自定义或者自带的任务。(比喻同步Job,归档JOB,清理job等)

黑盒测试能发现的问题?

1,功能不能或遗漏2,界面错误3,数据库访问或处理错误4,性能问题

怎么做文档测试?

1,对文档进行完整性检查

2,对文档进行拼写检查

3,对文档进行易理解程序检查

4,对文档的图例检查是否和软件配套

5,对文档的操作步骤进行逐步验证