当前位置:文档之家› 软件测试作业

软件测试作业

1、什么是动态测试?动态测试的分类有哪些?
动态测试是指通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标。这种方法由三部分构成:构造测试实例、执行程序、分析程序的输出结果。动态测试和静态测试最大的区别就是静态测试不执行程序代码而寻找代码中可能存在的错误或评估程序代码的过程。动态测试是必须要运行程序代码来检测其中的各种错误。
动态测试的分类:
从是否关心软件内部结构和具体实现角度划分,可分为白盒测试、黑盒测试和灰盒测试。
从软件开发的角度软件测试可分为:单元测试、集成测试、确认测试、系统测试、验收测试及回归测试。
从软件执行时是否需要人工干预的角度划分,软件测试可分为人工测试和自动化测试。
从测试实施组织角度划分,软件测试可分为开发方测试、用户测试、第三方测试。
2、什么是白盒测试?白盒测试采用哪些方法?
白盒测试是一种典型的测试方法,是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的测试方法,因此又称为结构测试或逻辑驱动测试。它是基于一个应用代码的内部逻辑知识,测试覆盖全部代码、分支、路径和条件。它利用查看代码功能和实现方式得到的信息来确认哪些需要测试、哪些不需要测试、如何开展测试。白盒测试需要具有一定代码阅读能力,并且白盒测试需要做的工作与开发具有很大的联系。白盒测试关心内部机构,就好像一个透明的盒子一样要看到里面的结构。白盒测试和调试是不同的概念,他们本质的目标并不相同。白盒测试包括处理软件缺陷和查看代码的过程,但白盒测试只是要发现其中的错误,并不太关心具体的处理过程。
白盒测试采用哪些方法:白盒测试一般分为静态测试和动态测试,静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估,采用的是代码走查、代码审查、程序结构分析、控制流分析、数据流测试及信息流分析。
动态测试需要在host环境或target环境中实际运行软件,并使用设计测试用例去探测软件缺陷。所采用的测试方法是逻辑覆盖(包括语句覆盖、分支覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖、路径覆盖)
语句覆盖:保证每条语句都执行一次。优点:检查所有语句、结构简单的代码的测试效果较好容易实现自动测试代码覆盖率高,如果是程序块覆盖,则不必考虑程序块中的源代码。缺点是不能检查出条件语句错误,逻辑运算错误,循环语句错误。
分支覆盖:保证程序中每一个分支至少通过一次,即每一条分支语句的“真”

和假都至少执行一次。分支覆盖比语句覆盖的查错能力强一些,但是不能查出条件语句错误,不能查出逻辑运算错误,不能查出循环次数错误,不能查出循环条件错误。
条件覆盖:即是每个条件都取一次来执行。能够检查所有条件错误,不能实现对每个分支的检查,用例数增加。
判定/条件覆盖:各个判定的所有可能的条件组合至少执行一次。判定/条件覆盖不一定大于条件覆盖。既考虑了每一个条件,又考虑了每一个分支,发现错误能力强于分支覆盖和条件覆盖。并不能全面覆盖所有路径。用例数增加。
路径覆盖:要求设计足够多的测试用例,使得程序中的所有路径都至少执行一次。
路径测试:路径测试就是根据程序的逻辑控制所产生的路径进行测试用例设计的方法。很显然对于一些十分复杂的程序要对每条路径进行测试是完全不可能的,所以我们认为在不能做到所有路径都覆盖的前提下,如果某一程序的每一个独立路径都被测试过,那么可以认为程序中每个语句都已经检验过了,即已经达到了语句覆盖。
3.逻辑覆盖包含的内容?
逻辑覆盖(包括语句覆盖、分支覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖、路径覆盖)
语句覆盖:保证每条语句都执行一次。优点:检查所有语句、结构简单的代码的测试效果较好容易实现自动测试代码覆盖率高,如果是程序块覆盖,则不必考虑程序块中的源代码。缺点是不能检查出条件语句错误,逻辑运算错误,循环语句错误。
分支覆盖:保证程序中每一个分支至少通过一次,即每一条分支语句的“真”和假都至少执行一次。分支覆盖比语句覆盖的查错能力强一些,但是不能查出条件语句错误,不能查出逻辑运算错误,不能查出循环次数错误,不能查出循环条件错误。
条件覆盖:即是每个条件都取一次来执行。能够检查所有条件错误,不能实现对每个分支的检查,用例数增加。
判定/条件覆盖:各个判定的所有可能的条件组合至少执行一次。判定/条件覆盖不一定大于条件覆盖。既考虑了每一个条件,又考虑了每一个分支,发现错误能力强于分支覆盖和条件覆盖。并不能全面覆盖所有路径。用例数增加。
路径覆盖:要求设计足够多的测试用例,使得程序中的所有路径都至少执行一次。
4、什么是黑盒测试?黑盒测试一般采用哪些方法?
黑盒测试又称为功能测试或数据驱动测试,黑盒测试是把对象抽象成一个内部完全看不到的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。输入测试用例实现功能

覆盖。功能覆盖最常见的就是需求覆盖,通过测试一定的测试用例,要求所有的需求点都要被测试到。因此,根据软件产品需求规格说明书中的功能设计规格,在计算机上进行测试,以证实每个实现了的功能是否符合要求。他主要看的是外部的结构,并不关心内部具体如何进行实现,主要针对软件界面和软件功能进行测试。主要测试外部的功能和外部的接口。黑盒测试就是考虑程序应该做哪些事情,程序是否在任何情况下都做到了。需要在所有可能的输入条件和输出条件下确定测试数据,检查程序是否都能产生正确的输出。黑盒测试是用来发现白盒测试外的其他类型错误,比如功能不对或遗漏、接口错误或界面错误、数据结构或外部数据库访问错误、性能错误、初始化和中止错误。
黑盒测试所采用的方法有:
等价类划分是典型的黑盒测试的方法,该方法设计测试用例时完全不考虑软件结构只需考虑需求规格说明说中的功能要求。等价类划分法是把程序的输入域划分为若干部分然后从每个部分中选取少数代表性数据当作测试用例。每一类代表性数据在测试中的作用等价于这一类中的其他值,也就是说如果某一类中发现了错误这一等价类中的其他例子也能发现同样的错误;同样的,如果某一类中的一个例子没有发现错误,则这一类的其他例子也不会查出错误。使用这一个方法,首先必须画出等价类表,通常情况下等价类的划分有两种不同的情况:有效等价类和无效等价类。有效等价类是对于程序规格说明书来说的合理范围内的数据集合,无效等价类是指对于程序来说,不合理的无意义的输入数据构成的集合。
边界值分析法:边界值分析是一种补充等价类的测试用例设计方法,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。它的取值范围通常是max+、max、max-、min+、min、min- 、normal七中。
因果图:等价类划分和边界值分析法都考虑的是输入条件,但是没有考虑到输入条件之间的关系,因果图方法充分考虑到了输入情况的各种组合及输入条件之间的相互制约关系。因而,该方法能够帮助我们按照一定的步骤,高效选择测试用例,同时还能指出程序规格说明描述中存在着什么问题。他用因果图生成测试用例的基本步骤如下:分析规格说明中的原因、结果,并且给每一个原因结果赋予一个标识符。分析语义,找出原因与结果之间,原因与原因之间对应的关系,然后根据关系画出因果图。由于语法或环境的限制有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号标明约

束或限制条件,把因果图转化成判定表。把判定表的每一列拿出来作为依据,设计测试用例。
随机测试:随机测试指测试数据是所有可能输入值中随机选取的,是一种基本的黑盒测试方法。随机选取用随机模拟的方法,包括用伪随机数发生器、硬件随机模拟器产生输入数据。这种方法能获得大量的测试数据,测试人员只需规定输入变量的取值区间、在需要的时候提供必要的变换机制,使产生的数服从预期的概率分布。随机测试一般是在常用的输入域以及最可能发生错误的输入域选用。一般是与其他测试方法一起使用效果更佳。
猜错法:使用边界值分析法和等价类划分法,有助于设计出具有代表性、也容易暴露出程序错误的测试方案。但是总是有一些很特别的错误用常规方法难以发现,而且即使是一个十分小的程序可能的输入组合数也非常庞大,因此必须依靠测试人员的经验和直觉,在其中发现问题。猜错法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对的设计测试用例的方法。猜错法的基本思想就是列出所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
探索性测试:探索性测试是一种测试思维技术。他没有很多实际的测试方法、技术和工具。但却是所有测试人员都应该掌握的一种测试思维方式。探索性测试强调测试人员的主观能动性,抛弃繁琐的测试计划和测试用例设计过程,强调在遇到问题的时及时改变测试策略。探索性测试的意思就是同时测试和执行测试。他不同于即兴测试,探索性测试是一种精致的、有思想的过程。在测试的同时学习测试对象并设计测试,在测试过程中运用获得的关于测试对象的信息设计新的更好的测试。测试人员通过测试来不断学习被测试系统,同时把学习到的关于软件系统的更多信息通过综合的整理和分析,创造出更多关于测试的主意。基本过程就是:识别软件系统的用途、识别软件系统提供的功能、识别软件系统潜在的不稳定的区域、在探索软件系统的过程中记录关于软件的信息和问题。
探索似测试的四个类型:自由探索似测试、基于场景的探索似测试、基于策略的探索似测试、基于反馈的探索似测试、基于反馈的探索似测试。
5、简述等价类划分法和边界值分析法的原则?
等价类划分的原则:为每一个等价规定一个唯一编号、设计一个新的测试用例使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步直到所有的有效等价类都被覆盖完为止、设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步直到所有的无效等价类

都被覆盖为止。
边界值分析法的原则:如果输入条件规定了值的范围,则应取刚达到这个范围的边界值,以及刚刚超越这个范围的边界值作为测试的输入数据。如果输入条件规定了输入值的个数,则用最大个数、最小个数、比最大个数大一个、比最小个数小一个的数作为测试数据。根据每个规格说明书的每个输出条件都应适用原则(1)。如果程序的规格说明给出的输入域或输入域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。分析规格说明书,找出其他可能的边界条件。

相关主题
文本预览
相关文档 最新文档