您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 评价通过所有单元测试用例
火龙果整理uml.org.cn1.1什么是软件1、软件的定义与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。2、软件的分类按照功能分:系统软件和应用软件按照技术架构分:单机版软件、C/S结构软件、B/S结构软件按照用户分:产品软件和项目软件按照开发的规模分:大、中、小火龙果整理uml.org.cn1.3为什么要进行软件测试•软件总存在缺陷。只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。•软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性•测试是所有工程学科的基本组成单元,自然也是软件开发的重要组成部分。•测试人员水平越高,找到软件问题的时间就越早,软件就越容易更正,产品发布之后越稳定,公司赚的钱也越多,微软就是一个典型的例子火龙果整理uml.org.cn1.4什么是软件测试1、软件测试的定义软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:•定义1:软件测试是为了发现错误而执行程序的过程。•定义2:在IEEE提出的软件工程标准术语中,软件测试被定义为:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。”火龙果整理uml.org.cn1.4什么是软件测试1、软件测试的定义软件测试的正确定义软件测试是由“验证(Verification)”和“有效性确认(Validation)”活动构成的整体。–验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性–“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。火龙果整理uml.org.cn1.4什么是软件测试2、软件测试的对象–软件测试不等于程序测试。–软件测试贯串于软件定义和开发的整个过程。–软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。火龙果整理uml.org.cn3、软件测试的原则–尽早地和及时地测试;–测试用例应当由测试数据和与之对应的预期结果这两部分组成;–在程序提交测试后,应当由专门的测试人员进行测试;–测试用例应包括合理的输入条件和不合理的输入条件;–严格执行测试计划,排除测试的随意性;–充分注意测试当中的群体现象;–应对每一个测试结果做全面的检查;–保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。火龙果整理uml.org.cn第二章软件测试的基本概念主要内容:2.1软件缺陷2.2验证和确认2.3软件测试分类2.4软件测试阶段2.5软件测试工作范畴火龙果整理uml.org.cn缺陷是质量的对立面要了解什么是缺陷(defect),就必须清楚“质量(Quality)”概念,因为缺陷是相对质量而存在的,违背了质量、违背了客户的意愿,不能满足客户的要求,就会引起缺陷或产生缺陷火龙果整理uml.org.cn2.1软件缺陷一、软件质量的内涵1、质量质量是“产品或服务所满足明示或暗示需求能力的固有特性和特征的集合”。火龙果整理uml.org.cn2.1软件缺陷一、软件质量的内涵2、软件质量软件质量是软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。包括:(1)软件产品质量满足用户要求的程度;(2)软件各种属性的组合程度;(3)用户对软件产品的综合反映程度;(4)软件在使用过程中满足用户要求的程度。火龙果整理uml.org.cn2.1软件缺陷一、软件质量的内涵3、软件质量模型McCall软件质量模型火龙果整理uml.org.cn2.1软件缺陷一、软件质量的内涵3、软件质量模型ISO9126软件质量三层模型火龙果整理uml.org.cn2.1软件缺陷一、软件质量的内涵4、软件质量特性功能性、易用性、可靠性、性能、容量可测量性、可维护性、可移植性、可扩展性火龙果整理uml.org.cn2.1软件缺陷一、软件质量的内涵5、软件质量的分类(1)软件质量的功能需求软件质量的功能需求一般会在需求规格说明书等文档中给相应的描述。(2)软件质量的非功能需求软件质量的非功能需求一般用下列特性描述:性能、有效性、可靠性、可维护性、兼容性、可扩展性、可移植性火龙果整理uml.org.cn2.1软件缺陷一、软件质量的内涵5、软件质量的分类(3)软件质量的用户需求能正常使用全部所需的功能,符合需求规格;功能强大,而且界面美观,易用;内容健康、有益于生活和工作。用户数据的安全、受保护和兼容;能及时得到新的产品或更完美的软件服务;软件可靠性很高,使用软件服务没有时间障碍火龙果整理uml.org.cn2.1软件缺陷一、软件质量的内涵5、软件质量的分类(4)软件质量的企业需求开发成本可维护性可扩展性可移植性兼容性火龙果整理uml.org.cn2.1软件缺陷二、软件缺陷1、软件缺陷的定义软件缺陷(Bug):任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求。IEEE(1983)729软件缺陷一个标准的定义:•从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;•从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。火龙果整理uml.org.cn2.1软件缺陷二、软件缺陷2、软件缺陷的表现•功能、特性没有实现或部分实现•设计不合理,存在缺陷•实际结果和预期结果不一致•运行出错,包括运行中断、系统崩溃、界面混乱•数据结果不正确、精度不够•用户不能接受的其他问题,如存取时间过长、界面不美观火龙果整理uml.org.cn2.1软件缺陷二、软件缺陷3、软件缺陷产生的原因《微软开发者成功之路(之一)》概括了以下7项主要原因:(1)项目期限的压力;(2)产品的复杂度;(3)沟通不良;(4)开发人员疲劳,压力过大或受到干扰;(5)缺乏足够的知识、技能和经验;(6)不了解客户的需求;(7)缺乏动力。火龙果整理uml.org.cn2.1软件缺陷二、软件缺陷4、软件缺陷的构成其他6%软件产品说明书(需求)54%编写代码15%设计25%图2-4软件缺陷构成示意图火龙果整理uml.org.cn2.1软件缺陷二、软件缺陷5、修复软件缺陷的代价020406080100编制说明书设计阶段编写代码测试发布软件缺陷随时间的推移带来的成本越来越大火龙果整理uml.org.cn2.2验证和确认一、验证和确认Verification:Arewebuildingtheproductright?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性Validation:Arewebuildingtherightproduct?是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求火龙果整理uml.org.cn2.2验证和确认二、评审通过软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期的缺陷发现。1、评审评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。检验工作产品是否正确地满足了以往工作产品中建立的规范。火龙果整理uml.org.cn2.2验证和确认二、评审2、评审分类•管理评审•技术评审•文档评审•流程评审火龙果整理uml.org.cn2.2验证和确认三、质量保证和测试的关系1、软件质量保证:是通过对软件产品有计划的进行评审和审计来验证软件是否合乎标准的系统工程。2、SQA的活动:提出软件质量要求;确定开发方案;阶段评审;测试管理文档化管理验证产品与相应文档和标准的一致性建立测量机制记录并生成报告火龙果整理uml.org.cn2.2验证和确认三、质量保证和测试的关系3、SQA与软件测试的关系共同点:二者贯穿整个软件开发生命周期的流程。区别:•SQA是管理工作、审查对象是流程、强调以预防为主•测试是技术工作、测试对象是产品、主要是以事后检查关系:•SQA指导测试、监控测试•测试为SQA提供依据火龙果整理uml.org.cn2.3软件测试的分类方法目标/特性单元测试系统测试验收测试性能测试强壮性测试功能测试白盒测试黑盒测试测试阶段或层次适用性测试可靠性测试集成测试安全性测试火龙果整理uml.org.cn2.3软件测试的分类•按测试的对象或范围分类,如单元测试、文档测试、系统测试等)•按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等•根据测试过程中被测软件是否被执行,分为静态测试和动态测试•根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试火龙果整理uml.org.cn2.4软件测试阶段图2-8软件测试阶段示意图火龙果整理uml.org.cn需求和设计审查测试人员参与产品需求分析和系统设计,认真阅读有关文档,真正理解客户的需求和技术上的设计,检查需求说明书对产品描述的准确性、一致性等,检查系统设计的合理性和可测试性等火龙果整理uml.org.cn单元测试单元测试的对象是程序系统中的最小单元---模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块•单元测试一般由编程人员和测试人员共同完成,而以开发人员为主•单元测试包括代码评审,代码评审可以发现程序50%~70%代码的缺陷。火龙果整理uml.org.cn集成测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题两种集成方式:一次性集成方式和增殖式集成方式。火龙果整理uml.org.cn功能测试功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用火龙果整理uml.org.cn系统测试系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等火龙果整理uml.org.cn验收测试&安装测试验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试火龙果整理uml.org.cn2.5软件测试的工作范畴•软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源。•测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动火龙果整理uml.org.cn测试工作流程火龙果整理uml.org.cn3.1白盒测试方法•白盒测试,也称结构测试或逻辑驱动测试,是已知程序的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序的内部结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常运行。火龙果整理uml.org.cn3.1白盒测试方法•白盒测试主要用于单元测试•白盒测试的基本原则有:–对程序模块中所有独立路径至少测试一次;–对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;–对程序进行边界检查;–检验内
本文标题:评价通过所有单元测试用例
链接地址:https://www.777doc.com/doc-3477645 .html