已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章:实现,编码和测试统称为实现编码:把软件设计结果翻译成程序测试:检测程序并改正错误的过程,7.1编码,机器语言几乎不使用汇编语言特殊场合使用高级语言优势明显、普遍使用,1.选择程序设计语言,(1)程序设计语言的划代,有理想的模块化机制可读性好的控制结构和数据结构便于调试和提高软件可靠性编译时发现错误能力强有良好的独立编译机制,(2)选择编程语言的理论标准,系统用户的要求可以使用的编译程序可以得到的软件工具工程规模程序员的知识软件可移植性要求软件的应用领域,(3)主要的实用标准,良好的编码风格:程序代码逻辑清晰,易读、易理解、易维护,能高效利用系统资源等方面。,2.编码风格,编码风格:又称程序设计风格,是程序设计者在创作中喜欢或习惯使用的表达自己作品的方式。,清晰第一、强调效率,内部文档、数据说明、语句构造、输入输出、效率,恰当的标识符适当的注解程序的视觉组织,(1)程序内部的文档,数据说明的次序应该标准化多个变量时,应按字母顺序排列复杂的数据结构,应用注明数据结构的方法和特点,(2)数据说明,不要为了节省空间而把多个语句写在同一行尽量避免复杂的条件测试尽量减少对“非”条件的测试避免大量使用循环嵌套和条件嵌套利用括号使逻辑表达式或算术表达式的运算次序清晰直观,(3)语句构造,输入数据的检验输入项组合的合法性检查输入格式要简单使用数据结束标记输入要求明确(可选项、边界值)输入格式一致性良好的输出报表给所有输出数据加标志,(4)输入输出,效率的三个基本原则效率是性能要求(需求分析阶段确定)良好的设计能有效的提高效率不能牺牲清晰性和可读性来提高效率,(5)效率,简化算术和逻辑的表达式;减小嵌套循环的深度;避免使用多维数组;避免使用指针和复杂的表;使用执行时间短的算术运算;不要混合使用不同的数据类型;尽量使用整数运算和布尔表达式;使用有良好优化特性的编译程序。,提高运行效率途径,控制结构的功能域明确固定;尽量使用高级语言(硬件要求苛刻时使用紧缩存储器特性的编译程序以及汇编语言);提高执行效率的技术通常也能提高存储器效率。,提高存储效率途径,关键简单,用户向计算机提供可理解的输入信息计算机向用户提供可理解的输出信息,提高输入输出的效率措施,良好的人机交互,关键简单,输入/输出有缓冲(减少通信次数);简单的辅存访问方法;辅存的输入/输出以块为单位;考虑终端外设的特性,以提高的质量和速度;不采用难以理解的超高效的输入/输出。,19,例1:注释,/*addamounttototal*/TOTAL=AMOUNT+TOTAL,/*addmonthly-salestoannual-total*/TOTAL=AMOUNT+TOTAL,例2:视觉组织空格,(A17)ANDNOT(B49)ORC,(A17)ANDNOT(B49)ORC,例3:视觉组织移行与缩进,IF()THENIF()THENELSEENDIFELSEENDIF,例4:数据说明标准化,INTEGERsize,length,width,cost,price,INTEGERcost,length,price,size,width,例5:一行一条语句,FORI:=1TON-1DOBEGINT:=I;FORJ:=I+1TONDOIFAJITHENBEGINWORK:=AT;AT:=AI;AI:=WORK;ENDEND;,FORI:=1TON-1DOBEGINT:=I;FORJ:=I+1TONDOIFAJITHENBEGINWORK:=AT;AT:=AI;AI:=WORK;ENDEND;,例6:清晰性,a1=a1+a2;a2=a1-a2;a1=a1-a2;,a0=a2;a2=a1;a1=a0;,例7:避免使用空ELSE和IFTHENIF语句,if(char=a)if(char=z)cout“Thisisaletter.”;elsecout=0&char=9),病人生病打喷嚏、发高烧、流鼻涕医生诊断测血压、量体温,是否存在数据异常医生确定症状根源确定病人感冒治疗与处方处方三天后复诊测血压、量心跳,发现失效,观察错误,定位缺陷,处理缺陷,回归测试,测试:为了发现程序中的错误而执行程序的过程,1.软件测试的目标,7.2软件测试基础,成功的测试:发现了以前未发现的错误,好的测试方案:有可能发现尚未发现的错误,2.软件测试准则,测试应能追溯到用户需求;在测试前就制定出测试计划;把Pareto原理应用到软件测试中;从“小规模”测试开始,逐步进行;第三方测试,效果更佳;有用户参与的测试,更完美。,测试只能证明缺陷的存在,但绝不能证明缺陷不存在不可能做穷尽测试,3.软件测试的基本原理,Dijkstra定律:假设一段接受六个字符密码的程序,并保证第一个字符必须是数字,其余的是字符数字型。如果我们的目标是穷尽测试,那么需要测试多少个输入数据的组合呢?共有10(625)=9161328320假设每个组合测试时间10秒,测试这些组合将用2905年。,早测试,早发现,早解决目标在用户发现缺陷之前找到缺陷,缺陷对软件成本的综合作用,10,100,1000,需求设计编码测试交付后,代价,3W1H(Why、What、Where、How)同样重要!有缺陷的测试用例比有缺陷的产品更危险!测试用例需要逐步完善;,缺陷的集群中效应,已发现的缺陷,尚未发现的缺陷,缺陷对软件成本的综合作用,缺陷预防和缺陷检测间的精心平衡钟摆的终结,自信的团队、信任的团队为“测试”而自豪,就会处理好“所有的一切”DeMarco、Lister人件黑衣团队职业测试的最大瓶颈是缺乏自信自动化综合症自动化失败的例子比成功的多重复的劳动必然导致自动化,对自动化缺乏了解必然导致测试的失败,根据现有的软件测试知识,以下哪种产品可以认为是高质量的?对自己的答案进行说明。,请思考:,A产品连续三个版本分别发现0、79和21个缺陷。B产品连续三个版本分别发现85、90和79个缺陷。,(1)定义缺陷(Faults)错误(Errors)失效(Failures),4.软件缺陷(Bug),计算机系统或程序中存在的任何破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵,导致软件产品在某种程度上不能满足用户的需要。,技术问题软件本身团队协作问题,(2)缺陷的产生的因素,(3)缺陷的构成,功能理解特性描述需求变化重视不够沟通不够,(4)缺陷的修复代价,(5)测试阶段的信息流,7.3软件测试类型,软件测试,2,4,1,3,1.黑盒测试和白盒测试,功能测试/基于规格说明的测试/数据驱动测试,(1)黑盒测试,观点:任何程序都可以看作是从输入定义域到输出值域的映射,把被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么(功能)。,黑盒测试的内容,测试用例重用不关心软件实现缩短项目开发时间用例设计与软件实现同时进行,常用方法:等价类划分、边界值分析、因果图法、错误推测法、状态转换测试、功能图法等。,优点,(2)白盒测试,观点:透明的盒子,能够了解程序的内部结构。测试人员利用程序的内部逻辑结构和相关信息,对程序的内部结构和路径进行测试。研究程序的内部结构,从大量的测试用例中挑选尽可能少的测试用例,来覆盖程序的内部结构。,结构测试/透明盒子测试,优点:易于定位错误的原因和位置,局限性即使白盒测试覆盖了程序中的所有路径,仍不一定能发现程序中的全部错误。这是因为:不能查出程序中的设计缺陷不能查出程序是否遗漏了功能或路径可能发现不了一些与数据相关的错误,静态方法,代码检查法,静态结构分析法,代码质量度量法,白盒测试方法,动态方法,逻辑覆盖法,基本路径法,方法,静态结构分析法,函数调用图模块控制流图内部文件调用图子程序表宏参数表函数参数表,系统结构数据结构数据接口控制逻辑,代码质量度量法根据ISO/IEC9126国际标准的定义:功能性(Functionality)可靠性(Reliability)可用性(Usability)效率(Efficiency)可维护性(Maintainability)可移植性(Portability)构造软件的静态质量度量模型,通过量化的数据评估被测程序的质量。,(3)灰盒测试,1999年,美国洛克希德-马丁公司发表了灰盒测试法的论文,提出了灰盒测试法。单纯从名称上来看,灰盒测试是介于黑盒测试与白盒测试之间的一种测试方式。灰盒测试是基于程序运行时的外部表现同时又结合程序内部逻辑结构来设计用例。,52,灰盒测试与黑盒测试的区别黑盒只要关心系统的边界,不关心模块间协作;灰盒既关心系统的边界,更关心模块间协作。灰盒测试与白盒测试的区别白盒需要深入地了解内部模块的实现细节;灰盒对内部模块依然把它当成一个黑盒来看待。,53,优点能够进行基于需求的覆盖测试和基于程序路径覆盖的测试;能够保证设计的黑盒测试用例的完整性,防止遗漏软件的一些不常用的功能或功能组合;能够避免由于需求不详细或设计不完整对测试造成的影响。,缺点投入的时间比黑盒测试大概多20-40的时间;对测试人员的要求比黑盒测试高;不如白盒测试深入;不适用于简单的系统。,阶段,软件测试,是否运行程序,是否查看源代码,其它,单元测试,集成测试,系统测试,验收测试,静态测试,动态测试,白盒测试,黑盒测试,回归测试,冒烟测试,随机测试,功能测试,性能测试,逻辑功能测试,界面测试,易用性测试,安装测试,兼容性测试,一般性能测试,稳定性测试,负载测试,压力测试,2,本地化测试,ALAC测试,测试,测试,灰盒测试,单元测试,阶段测试,系统测试,集成测试,验收测试,测试,测试,2、阶段测试,(1)单元测试,方法:白盒测试方法内容:运行结果正确性、容错处理、边界值处理等。测试用例设计:白盒测试工程师或开发人员测试对象:程序(包括注释)、文档,单元测试的通过标准,程序必须通过所有单元测试用例语句的覆盖率达到100%分支的覆盖率达到85%,(2)集成测试,将通过测试的单元模块组装成系统或子系统,再进行测试方法:白盒测试方法、黑盒测试方法内容:模块间的接口,单元模块间的协同配合对象:单元测试的模块、概要设计文档,(3)系统测试,系统测试是测试的重点方法:黑盒测试方法内容:软件的功能、性能、运行的软硬件环境。对象:系统需求规格说明书、文档、系统,(4)验收测试,验收测试是指按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,用户决定是接收或拒收系统。验收测试又分为测试和测试测试指的是由用户、测试人员、开发人员等共同参与的内部测试。测试指的是内测后的公测,即完全交给最终用户测试。,阶段,软件测试,是否运行程序,是否查看源代码,其它,单元测试,集成测试,系统测试,验收测试,静态测试,动态测试,白盒测试,黑盒测试,回归测试,冒烟测试,随机测试,功能测试,性能测试,逻辑功能测试,界面测试,易用性测试,安装测试,兼容性测试,一般性能测试,稳定性测试,负载测试,压力测试,3,本地化测试,ALAC测试,测试,测试,灰盒测试,定义:通过自动化测试工具模拟正常、峰值、异常负载等条件对系统各项性能进行测试。目的:验证用户提出的性能指标,发现系统存在的性能瓶颈,优化系统。,3、性能测试,一般性能测试,性能测试,稳定性测试,负载测试,压力测试,压力负载测试,响应时间,吞吐量,并发用户数,资源利用率,并发性能测试,疲劳强度测试,大数据量测试,客户端发出请求到得到响应的整个过程所经历的时间,(1)一般性能测试,响应时间,响应时间=网络传输时间2+服务器处理时间+客户端显示时间,单位时间内流经被测系统的数据流量(b/s);单位时间内系统处理的客户请求的数量;,吞吐量,软件系统的性能承载能力,并发:指在某一给定时间内,某个特定点上进行会话操作的用户数(陆续交替执行)。并行:用户同时运行,操作步骤相同。,并发,并行与并发的模拟?,指系统各种资源的使用程度如:服务器的CPU利用率、内存利用率、磁盘利用率、网络带宽利用率等。,资源利用率,(2)负载测试满足系统的性能指标情况下,系统所能够承受的最大负载量。(3)压力测试通常是指持续不断的给被测系统增加压力,直到将被测系统压垮为止。系统所能承受的最大压力,(4)压力负载测试并发性能测试逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析来确定系统并发性能的过程。目的:考察客户端应用性能入口:客户端负载测试+压力测试,疲劳强度测试在系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析各项指标来确定系统处理最大工作量强度性能的过程。原则:系统长期不间断运行,大数据量测试独立的数据量测试针对某些系统存储、传输、统计、查询等业务进行大数据量测试。综合数据量测试压力测试负载测试相结合的综合测试方案。,阶段,软件测试,是否运行程序,是否查看源代码,其它,单元测试,集成测试,系统测试,验收测试,静态测试,动态测试,白盒测试,黑盒测试,回归测试,冒烟测试,随机测试,功能测试,性能测试,逻辑功能测试,界面测试,易用性测试,安装测试,兼容性测试,一般性能测试,稳定性测试,负载测试,压力测试,4,本地化测试,ALAC测试,测试,测试,灰盒测试,回归测试,其它测试,冒烟测试,随机测试,本地化测试,ALAC测试,4、其它测试,(1)回归测试,修改影,响分析,成本收益分析,修改前代码P,修改后代码P,测试用例选择,测试用例集扩充,测试用例集T,测试用例集T,测试用例集约简,测试用例优先级,成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 稀有金属冶炼产业升级-洞察分析
- 物联网能源管理系统中的段映射技术应用-洞察分析
- 头孢噻肟钠在重症感染中的应用-洞察分析
- 水产饲料市场趋势预测-洞察分析
- 网络安全与防护策略-洞察分析
- 纤维素基维纶纤维性能优化-洞察分析
- 《客车内饰部分改进》课件
- 数据结构(从概念到算法)课件
- 2025年统编版2024高二物理下册阶段测试试卷含答案
- 2024年鲁科版七年级地理下册阶段测试试卷
- 校(园)廉政风险防控预警处置制度
- 小班班本课程《吃饭这件小事》
- 废弃催化剂中贵金属的回收
- 期末 (试题) -2024-2025学年译林版(三起)(2024)英语三年级上册
- 高职计算机专业《Web前端开发技术》说课稿
- 【独立储能】山西省独立储能政策及收益分析-中国能建
- 中东及非洲冲击式破碎机行业现状及发展机遇分析2024-2030
- 工程制图(中国石油大学(华东))智慧树知到期末考试答案章节答案2024年中国石油大学(华东)
- 化工原理(1)智慧树知到期末考试答案章节答案2024年华北科技学院
- DZ/T 0441.1-2023 岩芯数字化技术规程 第1部分 总则(正式版)
- 2024-2030年中国无创血流动力学监测装置行业市场发展趋势与前景展望战略分析报告
评论
0/150
提交评论