软件开发过程与质量保证-5、6、7-编测维2009.ppt_第1页
软件开发过程与质量保证-5、6、7-编测维2009.ppt_第2页
软件开发过程与质量保证-5、6、7-编测维2009.ppt_第3页
软件开发过程与质量保证-5、6、7-编测维2009.ppt_第4页
软件开发过程与质量保证-5、6、7-编测维2009.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,Beyond Technology,软件开发过程与质量保证,第五、六、七章,第五章 编写代码,软件实现阶段的主要成果 计划 软件的源代码和构件库 编程规范、与编程相关的技术文档 测试用例和测试报告等,命名规范举例(java) 1. 使用全英文确切的表达变量、域、类等。 正确的命名方式:firstName, grandTotal; 不合适的命名方式:x1,y5; 2. 尽量使用项目或产品相关业务领域的术语,同时要有统一的词汇表(Glossary)。 3. 命名时使用大小写混合的方式增加可读性,一般情况第一个字母小写,但是类名、接口名的首字母大写。 正确的命名方式: int iSum; public class GetPushInformation;,4. 少使用缩写或使用标准的缩写,同时要有统一的缩略语表(Abbreviation)。 5. 避免使用过长的命名,控制在15个字符以内为宜。 6. 避免相似的命名,同时不使用仅大小写不同的命名。 不合适的命名方式 persistentObject & persistentObjects; anSqlDatabase & AnSQLDatabase; 7. 不在命名的开头或者结尾使用下划线(_)。 不合适的命名方式: _iSum, GetPushInformation_;,注释 在类、接口、成员函数和域(属性)的声明前使用。文档编制注释里的内容符合Javadoc标准。 例如: /* * Mobile Lottery-A application system developing for * operator or 3rd party. * author Roy Gao * param draws,phoneNumber */ public class MLottery(int draws,char phoneNumber) ,单行注释 用于成员函数中说明商业逻辑、代码片断或者声明临时变量加以注释 例如: / Apply a 5% discount to all invoices / over $1000 as defined by the Sarek / generosity campaign started in Feb. of 2000.,软件测试的重要性: 在整个软件开发中,测试工作量一般占30%40%,甚至50%。 在人命关天的软件(如飞机控制、核反应堆等)测试所花费的时间往往是其它软件工程活动时间之和的三到五倍,第六章 软件测试,软件测试的目的和原则 G.Myers给出了关于测试的一些规则,目标或定义: 1、测试是为了发现程序中的错误而执行程序的过程; 2、好的测试方案是极可能发现迄今为止尚未发现的 错误的测试方案; 3、成功的测试是发现了至今为止尚未发现的错误的测 试。,第六章 软件测试 6.1软件测试的概述,E.W.Dijkstra 指出: “程序测试能证明错误的存在,但不能证明错误不存在.” 测试的目的是:设计测试用例,以最小的代价、在最短时间内系统地发现各种不同类型的错误,第六章 软件测试 6.1软件测试的概述,软件测试的原则: 1.所有的测试都应追溯到用户需 1)最严重的错误(从用户角度)是那些导致软件无法满足需求的错误。 2)程序中的问题根源可能在开发前期的各阶段解决、纠正错误也必须追溯到前期工作。 3)测试与软件开发个阶段之间的关系可以参见P60 V模型,2、应该在测试开始之前的相当长时间,就 制定出测试计划。 1)测试计划可以在需求模型一完成就开始 2)详细的测试方案定义可以在设计模型被确定 后立即开始 因此所有测试可以在任何代码被产生前就被计划和设计,软件测试不等于程序测试 软件测试应贯穿于软件定义与开发的整个期间; 据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占 64%,属于程序编写的错误仅占 36%。程序编写的许多错误是“先天的”。,3.pareto原则:测试发现的错误中80%很可能起源于20%的模块中。 所以关键是分离这些有疑点的模块并进行彻底 的测试 4.测试应该从“小规模”开始,并逐步进行“大规模”测试。 最初测试的时候通常把焦点放在单个程序模块上,进一步测试把焦点放在继承的模块上,最后在整个系统中寻找错误,5 .穷举测试是不可能的。 在测试中不可能运行路径的每一种组合,但是尽量的覆盖程序逻辑并确保使用程序设计中的所有条件是可能的。 6.为了达到最佳的测试效果,应该由独立的第三方来从事测试工作。,测试的步骤:,单元测试又称为模块测试,是最小单位的测试,其目的在于发现各模块内部可能存在的各种错误。 在单元测试活动中,各独立单元模块将在于系统的其它部分相隔离的情况下进行测试,单元测试集中对源代码实现的每一个程序单元进行测试,检查各模块是否正确实现了规定的功能。多个模块可以并行进行单元测试。,单元测试的重要性: 负责的单元测试会发现很多Bug,并且修改它们的成本很低 系统开发的后期,Bug地发现和修改会更加困难,时间和成本费用大 修改Bug后要进行回归测试 经过单元测试后,系统集成就会大大简化 单元测试会使测试工作的效力发挥到最大化,单元测试的内容: 模块接口:测试模块的数据流 局部数据结构测试 路径测试 错误处理测试:预见的出错的条件,并设置适当的出错处理对策 边界测试:循环的边界条件,运算和判断的最大最小值是否出错等,集成测试在集成各个模块时有两种方式: 一次性集成方式:首先对每个模块进行单元测试,然后将这些模块组装在一起进行测试,最终得到要求的软件系统 增值式集成方式:首先对每个模块进行单元测试,然后将其逐步组装成较大的系统,在组装过程中一边连接一边测试,已发现连接过程中产生的问题,最后组装成要求的软件系统。 增值式集成方式有三种实现方式:自顶向下、自底向上和混合增值方式。,第六章 软件测试 6.2.2 集成测试,确认测试也称为有效性测试。基于需求规格说明书和用户信息,验证软件的功能和性能及其它特性。 确认测试的步骤: 进行有效性测试:在模拟的环境下,应用黑盒测试方法,验证所测试的软件是否满足需求规格说明属列出的需求 软件配置的复查 测试和测试,第六章 软件测试 6.2.3 确认测试,系统测试把已经通过确认测试的软件,与计算机硬件、外设、某些支持软件、数据和人员等系统元素结合起来,进行组装和测试。目的在于通过与系统需求定义作比较,发现软件与系统定义不符合或与其矛盾的地方. 系统测试用理应根据需求规格说明书来设计,并在模拟环境下运行。,第六章 软件测试 6.2.4 系统测试,验收测试 以用户为主,由开发人员,测试人员,QA人员参加的测试,软件测试的 策略和方法,静态 测试方法,动态 测试方法,人工测试方法,计算机辅助静 态分析方法,白盒测试方法,黑盒测试方法,测试方案,第六章 软件测试 6.3 设计测试方案,第六章 软件测试 6.3 设计测试方案,白盒测试 把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。,黑盒测试 对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。黑盒测试又称为行为测试。,第六章 软件测试 6.3 设计测试方案,软件维护 就是软件交付使用之后,在新版本产品升级之前这段时间里,软件厂商向客户提供的服务工作。 意义 其宗旨就是提高客户对软件产品的满意度。 保持现有系统的价值,第七章 系统维护,软件维护的分类 改正性维护 产品或项目中存在缺陷或错误,在测试和验收时未发现,到了使用过程中逐步暴露出来,需要改正。 适应性维护 为了产品适应变化了的硬件、系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论