版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试文档程序员(programmer)、设计师(designer)、单元测试工程师(unittestengineer)、维护者(maintainer)、需求分析师(requirementsanalyst)、编码标准专家(codingstandardsexpert)开发设计包括“开发者”和“测试者”两种角色。一个可靠的软件应该是“正确的、完整的、一致的和健壮的”。软件缺陷的产生:(1) 需求解释有错误(2) 用户需求定义错误(3) 需求记录错误(4) 设计说明有误(5) 编码说明有误(6) 程序代码有误(7) 其它,如:数据输入有误,问题修改不正确。软件测试是“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。(最好定义:测试以发现故障为目的,是为了发现故障而执行程序的过程。这一定义强调寻找故障是测试的目的。)静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。软件测试的定义软件测试就是在软件投入运行前,“对软件需求分析、设计规格说明和编码实现的最终审查”,它是软件质量保证的关键步骤。测试是采用测试用例执行软件的活动,它有连个显著目标:“找出失效或演示正确的执行。”软件的生命周期包括:制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。软件质量内涵包括:正确性、可靠性、可维护性、可读性(文档、注释)、结构化、可测试性、可移植性、可扩展性、用户界面友好性、易学、易用、健壮性。软件测试的目的:证明、检测、预防软件测试的原则是站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现缺陷,并负责跟踪和分析产品中的问题,对不足之处提出疑问和改进意见。零缺陷是一种理想,足够好是测试的原则。(1) 测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2) 测试应当是重点。(3) 事先定义好产品的质量标准。(4) 软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5) 穷举测试是不可能的。(6) 第三方进行测试会更客观、更有效。(7) 软件测试计划是做好软件测试工作的前提。(8) 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性。(9) 对发现错误较多的程序段,应进行更深入的测试。(10) 重视文档,妥善保存一切测试过程文档。回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误软件测试策略(1) 单元测试(软件质量保证,系统或软件产品满足规定和隐的与需求能力有关的全部特征与物性)a) 单元测试主要任务软件产品质量满足用户要求的过程软件各种属性的组合程度用户对软件产品的综合反映程度,要求程度b) 模块结构测试(单元测试的开始,应对通过被测模块的数据流进行测试)c) 局部数据结构测试d) 路径测试e) 错误处理测试f) 边界测试(注意数据流、控制流中刚好等于、大于或小于确定的边界值时出错的可能性,对这些地方要仔细地选择测试用例,认真加以测试)g) 上级模块驱动模块(Driver)模拟被测试模块的上级模块桩模块(Stub)也称为存根程序,用以模拟被测模块工作过程中所调用的子模块(2) 集成测试(也称为组装测试或联合测试)a) 集成模式一次性集成测试模式(它是一种非增量式组装方式,也称为整体拼装)1.适用范围a) 只需要修改或增加少数几个模块的前期产品的稳定的项目b) 功能少,模块数量不多增量式集成测试模式(自顶向下增量式测试)b) 集成方法自顶向下集成(是从主控模块开始,按照软件的控制层次结构向下逐步把各个模块集成在一起)自底向上集成(是从原子模块(即软件结构最底层的模块)开始组装测试)c) 混合集成(在实际测试中,应该将不同集成模式有机结合起来,采用并行的自顶向下、自底向上混合集成方法,而更重要的是采取持续集成的策略)d) 回归测试(回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误)(3) 确认测试(又称为有效性测试)a) 进行有效性测试(功能测试)b) 软件配置复查(4) 系统测试(功能、性能,以及软件所运行的软硬件环境)(目的是主要检验软件是否满足功能,行为和性能方面的要求)a) 强度测试(是要检查在系统运行环境不正常乃至发生鼓掌的情况下,系统可以运行到任何程度的测试)b) 性能测试(用来测试软件在系统集成中的运行性能,检查其是否满足说明书中规定的性能,特别是对实时系统或嵌入式系统,仅提供符合功能需求但不符合性能需求的软件是不能接受的)c) 恢复测试(是要证实在克服硬件环境(包括掉电、硬件或网络出错等)后,系统能正常地继续进行工作,并不对系统造成任何损害)d) 安全测试(任何管理敏感信息或者能够对个人造成不正当伤害的计算机系统都是不正当或非法侵入的目标)e) 可靠性测试(是软件系统在规定的时间内和规定的环境条件下,完成规定功能的能力)f) 安装测试(理想情况下,一个软件的安装程序应当平滑地集成用户的新软件到已有的系统中去,就像一个客人被介绍到一个聚会中去一样,彼此交换适当的问候)g) 容量测试(是根据预先分析出反映软件系统应用特征的某项指标极限值(如最大并发用户数,最大数据库记录数等),测试系统在其极限值状态下是否能保持主要功能正常运行)h) 文档测试(是检查用户文档(如用户手册)的清晰性和精确性。在用户文档中所使用的例子必须在测试中测试过,确保叙述正确无误)(5) 验收测试(是软件产品完成系统测试后,在发布之前所进行的软件测试活动,它是技术测试的最后一个阶段)a) a测试是软件开发公司组织内部人员模拟各类用户对即将面世的如那件产品(称为a版本)进行测试。b) p测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。(6) 面向对象软件测试a) 面向对象软件的单元测试(传统的单元测试的对象是软件设计的最小单位一一模块)b) 面向对象软件的集成测试(面向对象的集成测试即类簇测试)基于类间协作关系的横向测试。基于类间继承关系的纵向测试。c) 面向对象软件的系统测试(通过单元测试和集成测试,仅能保证软件开发的功能得意实现)软件产品组成:客户需求、产品说明书、进度表、设计文档、测试文档、软件产品的其它组成部分开发人员角色:项目经理、业务分析人员、架构师、数据设计人员、开发人员、测试人员软件开发模式:大棒模式(优点是简单)(从外界看)边写边改模式(每次盘旋上升)瀑布模式(分析、设计、开发和开发步骤)快速原型模式(是一种以计算机为基础的系统开发方法)螺旋模式软件工程师模型(SoftwareEngineeringInst)tu测试计划、测试需求分析、测试设计(包括测试用例设计和测试规程规格说明)、测试规程实现、测试执行、总结生成报告。软件质量的管理(1) 质量管理从单纯的产品质量进行检验发展到对产品形成过程进行控制。(2) 控制方法从静态发展到动态的,持续的过程改进。(3) 气核心思想已表现为对过程的策划,控制与过程能力的持续改进。质量工作:质量第一、尊重用户、简历规范的质量保证过来能力成熟度模型(CapabilityMaturityModel)是软甲年行业标准模型。CMM分为一下5个等级(1) 初始级(软件过程管理处于无序的、混乱的状态,软件项目的成功完全依赖于个人能力和团队的合作,软件的进度、质量、预算均不可测)(2) 可重复级(是已经建立了管理软件项目的方针和实施这些方针的规程)(3) 已定义级(标准化)(4) 已管理级(定量化)(5) 优化级(对软件过程的不断改进,从而使软件过程能力不断提高,软件缺陷得到预防)模块边界测试(1) 软件为单元测试的最后一步,仔细限制数据处理,设置边界。(2) 首个、最后一个、最大、最小、最长、最短、最高、最重要等特征。CMM的具体应用(1) 评估软件过程,确定组织当前的软件过程状体啊,发现与软件过程有关的急需解决的问题,并作为企业软件过程改进的指导图。(2) 评估各个软件企业的软件过程能力,为选择软件承包商提供依据。CMM的作用:科学地评价软件开发单位的软件能力成熟等级;帮助软件开发单位进行自检,了解自己的强项和弱项,从而不断完善和改进单位。CMM是一种用于评价软件承包商能力并帮助改善软件质量的方法。CMM实施的目的(1) 提高对软件开发过程的可视性(2) 提高在预算内按期交付高质量软件产品的能力软件过程概念开发和维护软件及其相关产品的一系列活动,包括工程活动和管理活动。软件过程能力通过遵循其软件过程,软件开发活动能够达到预期结果的程度。软件过程性能通过遵循其软件过程,软件开发活动实际得到的结果。软件过程成熟度被明确有效定义、执行、管理、测量和控制的程度。软件(过程)能力成熟度等级表示软件开发组织所具有的软件过程成熟度的等级,表示其软件工程和管理的能力。关键过程域(KPA)关键过程域(KeyProcessArea)是指一组相关的活动。当这些活动共同完成时,能实现对建立过程能力至关重要的一组目标。是确定一个组织的软件过程能力的一些主要构成单元。除初始级以外,CMM的每个成熟度等级是由若干个关键过程区域(KPA)构成需求管理RM(RequirementsManagement)软件项目策划SPP(SoftwareProjectPlan)软件项目跟踪与监督SPTO(SoftwareProjectTrackingandOversight)软件子合同管理SSM(SoftwareSubcontractManagement)软件质量保证SQA(SoftwareQualityAssurance)
软件配置管理SCM(SoftwareConfigurationManagement)CMM不包括特定应用领域内的专门知识具体的软件技术选择、顾用、吉利和人员进化途径可预测的过程不断改进的过程优化级(5)已管理级可预测的过程不断改进的过程优化级(5)已管理级(4)标准的一致的过程•已定义级(3)•可重复级⑵有纪律的过程♦初始级(1)ISO9000质量八项原则以客户为关注的焦点,领导的作用,企业全员的参与。过程方法、管理系统、持续的方法。参数个数参数类型单位是否统一参数的次数出现全局变量事不能修改只读行参数不能把约束当参数传递在不同模块中含义是否相同重点解决以下五个方面的测试问题模块借口局部数据结构边界条件独立的路径错误处理软件测试过程:测试计划、单元测试、集成测试、确认测试、系统测试、验收测试、测试总结、测试报告单元测试是以规定的最小功能模块进行局部测试时不正确或不一致的类型说明错误的初始化与默认值错误的变量名,如拼写错误或缩写错误下溢,上溢或地址错误静态测试包括:检查、静态结构分析、代码质量度量(需求分析文档)功能测试接口测试覆盖率分析性能分析内存分析黑盒测试黑盒测试是指在对程序进行的功能抽象的基础上,将程序划分成功能测试,然后对每个功能单元生成的测试数据进行测试。黑盒测试也称为功能测试或数据驱动测试,它是已知产品所具有的功能,通过测试来检测每个功能是否都能正常使用。边界值测试边界值分析法BVA(boundaryvalueanalysis)是一种很实用的黑盒测试用例设计方法,它具有很强的发现程序错误的能力。边界值分析(关注的是输入、输出空间的边界条件,以标识测试用例)内部边界值分析边界值分析法测试用例边界值分析测试的基本思想(范围内取值:aWx1Wb,cWx2Wd)健壮性测试(边界分析测试的一种简单扩展,除了取5个边界值分析取值夕卜,还需要考虑采用一个略超过最大值(max+)以及略小于最小值(min-)的取值,检查超过极限值系统的表现会是什么。)边界值分析法测试实例三角形问题NextDate函数(年月日)边界值分析局限性(“独立”和“物理量”)等价类测试等价类等价类测试用例指导方针基于决策表的测试表示方法(把条件解释为输入,把行动解释为输出)决策标的应用()黑盒测试分为(等价类划分、因果图发、边界值分析)白盒测试白盒测试是根据被测程序的内部结构设计测试用例的一类测试,又称为结构测试或逻辑驱动测试,它是知道产品内部工作过程,通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称结构测试,透明盒测试、罗技驱动测试或基于代码的测试。白盒测试是测试被测单元内部如果工作的一种方法。其目的是通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试,在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与与其状态是否一致。白盒测试的优点:程序代码中如果存在着一些内存泄漏,在黑河测试中短时间运行并不能发现问题,但是在系统长时间运行后,由于内存泄漏的积累,可能导致整个系统内存消耗殆尽,最后瘫痪。而此内问题在白盒测试中则可以被发现!程序中往往存在着很多的异常处理分支语句,在黑盒测试时,可能并没有测试到,没有测试到的代码不能保证其运行正确,在系统运行过程中,如果执行到这些分支语句,很可能出现问题。而执白盒测试则可以避免此类情况的发生。在白盒测试过程中,执行了多少逻辑,可以作为衡量测试是否完整的一个指标。有时在实验室条件中很难搭建真实的测试环境,触发条件是否合理,能否达到要求。例如通讯中干扰的现象,宇宙飞船和航天飞机、卫星等在太空中受电磁辐射等。在黑盒测试中使用白盒测试的手段,被称为“灰盒测试”。白盒测试的策略1、 桌前检查(DeskCheck)是指程序员在程序实现制定功能后,进行单元测试之前,对源代码进行的初步检查。2、 单元测试(UnitTesting)又称为模块测试,是为验证程序单元的正确性而进行的测试工作。(一般由程序员自己来做,因为单元测试往往需要编写桩模块和驱动模块,由程序员做效率会比较高。是测试单元程序需要调用的程序模块,一般需要模拟输入输出。)3、 代码评审(CodeReview)往往是在编码的初期或编写过程中采用的一种有同行参与的评审活动。4、 同行评审(PeerReview)是引用CMM中的术语,其应用较广,如果用在评审源代码上,就是代码评审。(同行评审的目的:检查代码中的缺陷,交换相关代码的书写思路,并建立一个对代码的标准集体阐述)5、 代码走查(Walkthrough)有测试小组组织或专门的代码走查小组进行代码走查,这时需要开发人员提交有关的资料文档和源代码给走查人员,并进行必要的讲解。代码走查一般不让代码的创建者参与,主要是为了能从其他角度发现软件缺陷。(代码走查往往根据代码检查单来进行,代码检查单是根据编码规范总结出来的一些条目,目的是检查代码是否按照《编码规范》来编写的。最终目的:为了发现代码中潜在的错误或缺陷。)6、 静态分析(StaticAnalyse)通常由测试小组来进行,静态分析通常需要辅助工具支持,通过提取代码信息,进行统计,根据统计结果对源代码进行质量评估。白盒测试的相关1、 做白盒测试需要开发部门提供的材料2、 常用白盒测试用例设计技术罗技覆盖测试循环覆盖测试基本路径覆盖测试数据流分析信息流分析测试工具在白盒测试中所起的作用三个指标来衡量软件质量缺陷密度:例如每千行源代码的缺陷数,每个功能点或其它单元中的缺陷数。顾客满意度:是按顾客满意度调查中的满意或非满意的百分比度量的。可靠性:运行n小时的失效次数,平均无失效时间或在规定的时间段内无故障运行的概率。影响代码质量的因素开发人员对需求和设计的理解不透彻对软件业务流程不熟悉没有开发经验,不熟悉开发工具或开发语言受情绪因素的影响等因素测试工作没有落到实处管理机制不健全提高代码质量的常用方法在项目初期就制定详细地质量管理和质量保证策略,并在整个工程过程中执行;对开发人员进行技术、业务、开发工具等方面的培训,统一开发人员对项目的认识和理解;制定编码规范并强制执行;启用审查机制,施加白盒测试策略;编码规范编码规范和标准可靠性:事实证明按照某种标准或规范编写的代码比不规范的代码更可靠,缺陷更少;可读性/可维护性:符合设备标准和规范的代码易于阅读、理解、和维护;移植性:代码经常需要在不同的硬件上运行,或者使用不同的编译器编译。如果代码符合设备标准,迁移到宁一个平台就会轻而易举。代码审查清单(更多的是作为规范的补充,要真正的理解和运用代码审查清单,需要具有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 砖砌围墙施工协议书
- 股票配资投资者广告宣传合同
- 供应商担保协议
- 林权买卖协议
- 空压机维护保养施工方案
- 著作权按揭协议
- 学校内部审计工作总结 工作总结
- 鸽子养殖合伙协议
- 长期写字楼租赁协议
- 股票配资权益保障协议书
- GB/T 13663.2-2005给水用聚乙烯(PE)管道系统第2部分:管件
- FZ/T 97035.3-2015针织机用针第3部分:复合针
- 护士值班及交接班制度测试卷附答案
- 基础生命科学导论:第七章-进化课件
- 制药工程导论课件
- 传染病学-伤寒及副伤寒课件
- 国开电大软件工程形考作业3参考答案
- (第三单元)第一课追寻美术家的视线(wcy)
- 社会主义发展历程课件
- 2023届高考有机化学试题分析及信息题备考策略
- DB33T 2476-2022 长期护理保障失能等级评估规范
评论
0/150
提交评论