您好,欢迎访问三七文档
©2007ACCESSSystemsAmericas.Allrightsreserved.1概要:1.1为什么需要软件测试。1.2什么是测试。1.3软件测试的基本原则。1.4基本的测试过程。1.5测试的心理学。1.软件测试基础©2007ACCESSSystemsAmericas.Allrightsreserved.21.1为什么需要软件测试。术语缺陷(bug、defect)、错误(error、mistake)失效(failure)、故障(fault)、质量(quality)、风险(risk)1.1.1软件系统的重要性在当今社会,软件系统越来越成为生活中不可或缺的一部分,包括从商业应用(比如银行系统)到消费产品(比如汽车)各个领域。然而,很多人都有这样的经历:软件并没有按照预期进行工作。软件的不正确执行可能会导致许多问题,包括资金、时间和商业信誉等的损失,甚至导致人员的伤亡。©2007ACCESSSystemsAmericas.Allrightsreserved.31.1.2引起软件缺陷的原因(K2)产生缺陷的原因是多种多样的,主要有:人们本身容易犯错误、时间的压力、复杂的代码、复杂的系统架构、技术的革新、并且/或者许多系统之间的交互等。©2007ACCESSSystemsAmericas.Allrightsreserved.41.1.2引起软件缺陷的原因(K2)IEEE729-1983对缺陷的一个标准定义:(1)从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题(2)从产品外部看,缺陷是系统所需要实现的某种功能的实效或者违背。产生缺陷的原因是多种多样的,主要有:人们本身容易犯错误、时间的压力、复杂的代码、复杂的系统架构、技术的革新、并且/或者许多系统之间的交互等。失效也可能是由环境问题引起的。©2007ACCESSSystemsAmericas.Allrightsreserved.51.1.3在软件开发、维护和运行中测试的角色对软件系统和文档进行严格的测试,可以减少软件系统在运行环境中的风险,假如在软件正式发布之前发现和修正了缺陷,就可以提高软件系统的质量。进行软件测试也可能是为了满足合同或法律法规的要求,或者是为了满足行业标准的要求。©2007ACCESSSystemsAmericas.Allrightsreserved.61.1.4测试和质量可以根据测试中所发现的缺陷,对软件功能和非功能性需求以及特性(例如:可靠性、可用性、效率、可维护性和可移植性)进行度量,从而评估软件质量。当测试发现很少或者没有发现缺陷的时候,测试就会帮助树立对于软件质量的信心。一个设计合理的测试过程完成并顺利通过,可以降低整个系统存在问题的风险。而对测试过程中发现的缺陷进行了修正,则软件系统的质量就会提高。我们应该从以前的项目中吸取经验教训。通过分析在其他项目中发现的缺陷和引起缺陷的根本原因,我们就可以改进软件开发过程(process)。然后,过程的改进又可以预防相同的缺陷再次发生,从而提高以后系统的质量。这是质量保证工作的一方面。©2007ACCESSSystemsAmericas.Allrightsreserved.71.1.5测试是否充分在判断测试是否足够时,需要考虑下面的因素:风险(包括技术风险、商业产品风险和项目风险等)以及项目在时间和预算上的限制等。测试需要给利益相关者提供足够的信息,帮助他们决定是否发布被测软件或系统。发布可以表示进入下一个开发过程,或将系统交付给用户。©2007ACCESSSystemsAmericas.Allrightsreserved.81.2什么是测试术语调试(debugging)、需求(requirement)、评审(review)、测试用例(testcase)、测试(testing)、测试目标(testobjective)背景测试活动包含了测试执行之前和之后的一些活动,包括计划和控制、选择测试条件、设计测试用例、检查测试结果、评估出口准则、报告测试过程及被测系统、测试结束或总结。测试同时也包括文档的评审和静态分析。测试可以达到的目的:(1)发现缺陷;(2)提供对系统质量相关的信心和信息;(3)预防缺陷。©2007ACCESSSystemsAmericas.Allrightsreserved.9不同的测试阶段,需要考虑不同的测试目标。(1)在开发测试中,如组件测试、集成测试和系统测试等,测试的主要目标是尽可能的发现失效,从而识别和修正尽可能多的缺陷。(2)在验收测试中,测试的主要目标是确认系统是否按照预期工作,是建立满足了需求的信心。(3)而在有些情况下,测试的主要目标是对软件的质量进行评估,从而为利益相关人提供这样的信息:在给定的时间点发布系统版本可能存在的风险。(4)维护测试通常是为了验证在开发过程中的软件变更是否引入新的缺陷。(5)在运行测试阶段,测试的主要目标是为了评估系统的特征,比如可靠性或可用性等。明确调试和测试是两个不同的概念。测试可以发现由于软件缺陷引起的失效。而调试是一种开发活动,用来识别引起缺陷的原因,修改代码以及验证是否正确的修改了软件的缺陷。随后由测试员进行的确认测试是为了确认修改的代码已经解决了失效问题。每个活动的职责是截然不同的,即测试员进行测试,开发人员进行调试。©2007ACCESSSystemsAmericas.Allrightsreserved.101.3测试的基本原则术语穷尽测试(exhaustivetesting)基本原则原则1-测试显示缺陷的存在原则2-穷尽测试是不可能的原则3-测试尽早介入原则4-缺陷集群性原则5-杀虫剂悖论原则6-测试活动依赖于测试背景原则7-不存在缺陷(就是有用系统)的谬论©2007ACCESSSystemsAmericas.Allrightsreserved.11原则5-杀虫剂悖论采用同样的测试用例多次重复进行测试,最后将不再能够发现新的缺陷。为了克服这种“杀虫剂悖论”,测试用例需要进行定期评审和修改,同时需要不断增加新的不同的测试用例来测试软件或系统的不同部分,从而发现潜在的更多的缺陷。©2007ACCESSSystemsAmericas.Allrightsreserved.121.4基本的测试过程术语确认测试(confirmationtesting)、再测试(retesting)、出口准则(exitcriteria)、事件(incident)、回归测试(regressiontesting)、测试依据(testbasis)、测试条件(testcondition)、测试覆盖(testcoverage)、测试数据(testdata)、测试执行(testexecution)、测试日志(testlog)、测试计划(testplan)、测试规程(testprocedure)、测试方针(testpolicy)、测试策略(teststrategy)、测试套件(testsuite)、测试总结报告(testsummaryreport)、测试件(testware)基本的测试过程:(1)计划和控制;(2)分析和设计;(3)实现和执行;(4)评估出口准则和报告;(5)测试结束活动。虽然上面这些活动在逻辑上是有连续的,但在整个测试过程中它们可能会重叠或同时进行。©2007ACCESSSystemsAmericas.Allrightsreserved.131.4.1测试计划和控制阶段测试计划的主要活动是:识别测试任务、定义测试目标以及为了实现测试目标和任务确定必要的测试活动.测试控制是持续进行的活动:通过对测试进展和测试计划之间的比较,报告测试的状态,包括与计划之间存在的偏差。测试控制包括在必要的时候采取必要的措施来满足测试的任务和目标。需要在项目的整个生命周期中对测试活动进行监督,以达到控制测试过程的目的。同时,测试计划的制定也需要考虑测试监控活动的反馈信息©2007ACCESSSystemsAmericas.Allrightsreserved.141.4.2测试分析和设计阶段测试分析和设计是将概括的测试目标转化为具体的测试条件和测试用例的一系列活动。测试分析和设计阶段的主要任务:(1)评审测试依据(比如需求、系统架构、设计和接口说明等)。(2)评估测试依据和测试对象的可测性。(3)通过对测试项、规格说明、测试对象行为和结构的分析,识别测试条件并确定其优先级。(4)设计测试用例并确定优先级。(5)确定测试条件和测试用例所需的必要的测试数据。(6)规划测试环境的搭建和确定测试需要的基础设施和工具。©2007ACCESSSystemsAmericas.Allrightsreserved.151.4.3测试实现和执行阶段测试实现和执行阶段的主要活动包括:通过特定的顺序组织测试用例来完成测试规程和脚本的设计,并且包括测试执行必需的任何其他的信息,以及测试环境的搭建和运行测试测试实现和执行阶段的主要任务:(1)测试用例的开发、实现并确定它们的优先级。(2)开发测试规程并确定优先级,创建测试数据,同时也可以准备测试用具和设计自动化测试脚本。(3)根据测试规程创建测试套件,以提高测试执行的效率。(4)确认已经正确搭建了测试环境。(5)根据计划的执行顺序,通过手工或使用测试执行工具来执行测试规程。(6)记录测试执行的结果,以及被测软件、测试工具和测试件的标识和版本。(7)将实际结果和预期结果进行比较。(8)对实际结果和预期结果之间的差异,作为事件上报,并且进行分析以确定引起差异的原因(9)缺陷修正后,重新进行测试活动。©2007ACCESSSystemsAmericas.Allrightsreserved.161.4.4评估出口准则和报告评估出口准则是将测试的执行结果和已经定义的测试目标进行比较的活动。这个活动在各个测试级别上都需要进行。评估测试出口准则的主要任务:(1)按照测试计划中定义的测试出口准则检查测试日志。(2)评估是否需要进行更多的测试,或是否需要更改测试的出口准则。(3)为利益相关者提供一个测试总结报告。©2007ACCESSSystemsAmericas.Allrightsreserved.171.4.5测试结束活动在测试结束阶段的活动就是从已完成的测试活动中收集和整合有用的数据,这些数据可以是测试经验、测试件、影响测试的因素和其他数据。在以下几种情况下需要进行测试的结束活动,例如:在软件系统正式使用的时候、在一个测试项目结束(或取消)的时候、在达到里程碑的时候或者一个维护版本发布完成的时候。测试结束活动的主要任务:(1)检查提交了哪些计划的可交付产品、事件报告是否关闭、或对未关闭的事件报告提交变更需求、以及系统的验收文档状态等等。(2)记录和归档测试件、测试环境和测试基础设备,以备将来的项目使用。(3)移交测试件到维护部门。(4)分析和记录学到的经验教训,为以后的项目和测试成熟度的改善所用。©2007ACCESSSystemsAmericas.Allrightsreserved.181.5测试的心理学术语错误推测(errorguessing)、独立(independence)。背景在测试和评审中使用的思维方式,与在项目分析和开发中使用的不同。具有正确思维方式的开发人员可以测试他们自己写的代码。但通常将此职责从开发人员分离给测试人员有助于集中精力,并且具有以下额外优势,例如:通过培训和使用专业的测试资源获得的独立的观点。独立测试可以应用于任何测试级别。一定程度的独立(可以避免开发人员对自己代码的偏爱),通常可以更加高效地发现软件缺陷和软件存在的失效。但独立不能替代对软件的熟悉和经验,开发人员同样也可以高效的在他们自己的代码中找出很多缺陷。©2007ACCESSSystemsAmericas.Allrightsreserved.19定义不同级别的独立:(1)测试由软件本身编写的人员来执行(低级别的独立)。(2)测试由一个其他开发人员(如来自同一开发小组)来执行。(3)测试由组织
本文标题:软件测试基础1
链接地址:https://www.777doc.com/doc-4004849 .html