您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 火龙果软件-软件质量保证与测试-第1章
火龙果整理uml.org.cn软件测试基础第一章:预备知识火龙果整理uml.org.cn1.1人、错误和测试火龙果整理uml.org.cn错误(error)错误是我们日常生活的一部分。人们在他们的思考、行为中会犯错误,并将体现在他们行为的结果中。只要有人参与的行动和决策,都有可能会发生错误。人类存在的这些基本事实,使测试成为非常重要的活动。火龙果整理uml.org.cn错误的例子领域错误倾听医学音乐演奏数据分析观察软件开发演讲体育运动写作讲的是:Hehasagarageforreparingforeigncars听到的是:Hehasagarageforreparingfallingcars不正确地使用抗生素演奏出不正确的音调采用不正确的算法进行矩阵变换操作员没有发现压力仓的安全阀门一直开着错误操作符:≠;正确操作符:>错误标识符:new_line;正确标识符:next_line实际说得是:Waplemalnut;想说的是:Maplewalnut实际说得是:Weneedanewrefrigerator;想说的是。。网球比赛中裁判员不正确的判决实际写出来的是:Whatkindofpansdidyouare?想写的是:Whatkindofpantsdidyouare?火龙果整理uml.org.cn故障(fault)和失效故障是一个或多个错误的表现。程序员犯的错误,表现为含有故障的代码。当运行一个含有错误的代码时,程序将出现与预期的行为不一致的情况。这时,我们称程序失效。火龙果整理uml.org.cn错误,故障,失效程序员规格说明源程序思想或行动中的错误故障可观察的行为观察到的行为它们是一样的吗?预期的行为测试数据编写代码产生导致决定了可能导致是的,软件像预期的一样运行不,软件不像预期的那样运行,出现了一个失效火龙果整理uml.org.cn测试自动化大型复杂软件、嵌入式软件的测试是劳动密集型工作。对测试自动化存在巨大的需求。便于自动化测试的工作:回归测试图形用户界面测试I/O设备驱动测试自动化测试难于通用化当前的一些自动化测试工具QTPC++TesterLoadrunner火龙果整理uml.org.cn开发人员vs.测试人员开发人员写代码,测试人员测代码;两种人员既有区别又互相补充;同一个人在不同阶段可能充当不同的角色;测试技术对两种人员都有用。火龙果整理uml.org.cn1.2软件质量火龙果整理uml.org.cn软件质量静态质量特性:结构化的,可维护的,可测试的代码,以及正确性和完整的文档。动态质量特性:软件可靠性,正确性,完整性,一致性,可用性和效率。火龙果整理uml.org.cn软件质量(续.)可靠性:指一个软件正确运行的概率。正确性:指一个软件的正确操作。通常与一些文档有关。火龙果整理uml.org.cn软件质量(续.)完整性指的是所有在需求或用户手册中列出的特性都能得到,一个不完整的软件是没有完整实现所有的需要的特征的软件。一致性是指遵循一套共同的约定和假设。例如,在用户界面上的所有按钮可能会遵循一个共同的颜色编码约定。不一致的一个例子是当一个数据库应用程序显示一个人在数据库中的出生日期。火龙果整理uml.org.cn软件质量(续.)实用性:指的是一个应用程序在使用时是否容易。这本身就是一个可用性测试存在的技术领域。心理学在可用性测试设计中起着重要的作用。性能:指的是应用程序需要执行请求的任务的时间。它被认为是一个非功能性要求。它是在诸如指定“这个任务必须在一台速度为Y,具有ZG字节内存机器,上以X单位每秒的速度执行”火龙果整理uml.org.cn软件可靠性:两种定义软件可靠性[ANSI/IEEEStd729-1983]:是软件在给定的时间间隔和在给定条件下的无故障操作概率。软件可靠性:是软件在预期环境下无故障运行的可能性。火龙果整理uml.org.cn1.3需求、运行结果和正确性火龙果整理uml.org.cn需求、行为、正确性需求1:请写一个程序,输入两个整数,并输出这两个整数中最大的那一个。需求2:请写一个程序,它输入一个整数序列,并输出该序列的排序的版本。下面两个需求将得到不同的两个程序:火龙果整理uml.org.cn需求的不完整性假设开发了程序max,以满足需求1。最大的预期的输出,当输入整数是13和19可以很容易地确定为19。现在假设测试人员想知道,两个整数在输入到该程序时,是在同一行中输入然后加一个回车,还是在两行中输入,每个整数后面都要键入回车。而上述要求未能提供这个问题的答案。火龙果整理uml.org.cn需求的二义性需求2是有歧义的。目前尚不清楚输入的序列是按升序还是按降序排列。满足需求2的排序程序,它的具体行为将依赖于写排序的程序员。火龙果整理uml.org.cn输入域(输入空间)所有可能输入到程序P的集合,被称为P的输入域或输入空间。对于上面提到的需求1,我们发现max的输入域是所有的成对整数的集合,其中在成对整数的每个元素的范围是从-32,768到32,767的。对于需求2,是不可能找到的排序程序的输入域。火龙果整理uml.org.cn输入域(续)修改需求2:请写一个程序,输入一个整数序列,并按升序或降序排列输出这个序列中的。输出序列的顺序由一个需求字符决定,该参数为“A”输出一个递增序列,为“D”则输出递减序列。同时,在提供到程序中输入序列,需求字符首先输入,然后是进行排序的整数序列,序列使用句号作为结束符。火龙果整理uml.org.cn输入域(续)基于上述修改后的需求,对于排序的输入域是“对”的集合。每一“对”的第一个元素是一个字符,第二元素是由零个或多个整数构成的序列,并以句号结束。火龙果整理uml.org.cn软件正确性如果软件针对其输入域的所有元素都如期望的方式运行,那么这个软件是正确的。火龙果整理uml.org.cn有效/无效输入修改后的排序需求提到,要求字符可以是“A”和“D”,但没有回答这个问题:“如果用户输入了一个不同的字符该怎么办?”当使用sort程序时,用户绝对有可能键入其他字符而不是“A”和“D”等。sort程序除“A”和“D”外的任何字符都被认为是无效的输入。然而对于排序的需求并没有指定遇到一个无效的输入时应该采取什么行动。火龙果整理uml.org.cn1.4正确性与可靠性火龙果整理uml.org.cn正确性虽然大家都很渴望一个程序的正确性,但这几乎从来都不是测试的目标。通过测试确认的正确性,将意味着测试程序输入域中的所有元素。在实践中遇到的大多数情况下,这是不可能完成的任务。因此,正确性是通过程序的数学证明成立。火龙果整理uml.org.cn正确性和测试正确性尝试确认一个程序没有错误,而测试是尝试发现程序中是否有错误。因此,测试的完整性并不一定证明程序没有错误。测试,调试和错误清除过程一起增加我们对被测程序的正常运行的信心。火龙果整理uml.org.cn可靠性软件可靠性:是软件在预期环境下无故障运行的可能性。软件可靠性与软件正确性的关系:一个是二元度量,一个是连续度量;火龙果整理uml.org.cn操作剖面操作剖面是程序怎样被使用的数值描述。考虑一个排序程序,它允许两种类型的输入序列。对该程序的一个操作剖面如下所示。火龙果整理uml.org.cn操作剖面输入序列概率只包含数字的输入序列0.9包含字母数字串的输入序列0.1火龙果整理uml.org.cn操作剖面输入序列概率只包含数字的输入序列0.1包含字母数字串的输入序列0.9火龙果整理uml.org.cn1.5测试与调试火龙果整理uml.org.cn测试和调试测试是确定一个程序是否有任何错误的过程。当测试揭示了一个错误,确定此错误的原因,并消除它的过程,被称为调试。火龙果整理uml.org.cn一个测试/调试的周期输入域构造测试输入运行程序操作剖面测试计划运行结果如预期的那样吗?结束测试吗?编写测试报告错误的原因现在已检查出来了吗?规格说明纠正错误现在纠正错误吗?编写未处理错误报告输入数据测试用例运行结果修改吗?采用采用是否是否否是否采用调试软件是火龙果整理uml.org.cn©AdityaP.Mathur2009测试计划一个测试周期通常是由一个测试计划指导。例如:要测试一个排序程序,看它是否满足前面给出的要求。那么,需要做下面这些事情。•至少执行两个输入序列进行排序,其中一个用“A”另一个用“D”作为请求字符。火龙果整理uml.org.cn©AdityaP.Mathur2009测试计划(续)•用空的输入序列执行程序一次。•测试程序的鲁棒性,即给出一个错误的输入,例如键入“R”作为请求字符。•测试程序过程中出现的所有失效应该被记录在使用公司失效报告格式的一个合适的文件中。火龙果整理uml.org.cn©AdityaP.Mathur2009测试用例/数据测试用例是由测试数据将被输入到程序和预期的输出构成的对。测试数据是一个值的集合,每个值对应一个输入变量。测试集是零个或多个测试用例的集合。sort的测试用例的例子:测试数据:“A”12-2932期望输出:-291232火龙果整理uml.org.cn运行被测软件运行被测软件是一个重要步骤;软件运行的实际复杂性依赖于软件本身;为运行被测软件,测试人员常常要搭建测试床。初始化全局变量;输入测试用例;运行被测软件;记录产生的输出;火龙果整理uml.org.cn©AdityaP.Mathur2009程序行为程序行为可以用几种方法来描述:纯自然语言,状态图,形式化的数学形式。状态图描述了程序状态以及程序是如何根据输入序列或输入改变状态。火龙果整理uml.org.cn程序行为的例子可以用软件状态来定义软件行为;软件的一个状态,是指软件当中所有变量当前值的集合,以及下一步要执行的语句的指称。软件状态的转换序列被称为软件行为。火龙果整理uml.org.cn©AdityaP.Mathur2009程序行为的例子一个菜单应用程序火龙果整理uml.org.cn©AdityaP.Mathur2009程序行为的例子(续)启动程序用户执行的操作程序状态等待用户输入用户鼠标点击“File”显示出下拉菜单用户选择“Open”用户释放鼠标加亮显示“Open”在一个窗口中显示出当前目录下的文件名称s3火龙果整理uml.org.cn©AdityaP.Mathur2009对程序行为的观察和分析用于检查所观察到的行为是否正确的实体被称为测试预言(Oracle)。步骤一:测试人员观察程序的行为。步骤二:测试人员分析观察到的行为,以检查它是否是正确与否。对大型商业程序而言,这两个步骤都可能相当复杂。火龙果整理uml.org.cn©AdityaP.Mathur2009测试预言的例子输入测试预言观察到的运行结果与预期结果一致吗?被测软件观察到的运行结果Yes或No并给出解释火龙果整理uml.org.cn©AdityaP.Mathur2009测试预言:程序测试预言还可以设计成一个用来检查其他程序的行为的程序。例如,一个人可能使用矩阵乘法程序来检查一个矩阵求逆程序是否已经生成了正确的输出。在这种情况下,矩阵求逆程序把给定矩阵A和所生成B(A的逆矩阵)作为输出到矩阵乘法的参数。火龙果整理uml.org.cn©AdityaP.Mathur2009测试预言的构造自动化测试预言的构造,如一个Oracle用于检查一个矩阵乘法程序或排序程序,需要确定程序的输入输出关系。在一般情况下,自动化测试预言的构造是一个相当复杂的任务。火龙果整理uml.org.cn©AdityaP.Mathur2009测试预言的构造(续)输入数据生成器HVideo测试预言数据库火龙果整理uml.org.cn1.6测试度量©AdityaP.Mathur2009火龙果整理uml.org.cn测试度量测试度量是一些测量标准,用于在测试过程中定量描述软件测试的进度、质量、资源和规模。软件测试可以
本文标题:火龙果软件-软件质量保证与测试-第1章
链接地址:https://www.777doc.com/doc-3637861 .html