1.黑盒测试 黑盒测试把测试对象看做一个空盒子,不考虑程序的内部逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,又称为功能测试或数据驱动测试。 黑盒测试方法主要是在程序的接口上进行测试,主要是为了发现以下错误。 .是否有不正确或遗漏了的功能;在接口上,能否正确的接收输入,能否输出正确的结果; ·是否有数据结构错误或外部信息访问错误;性能上是否能够满足要求;是否有初始化或终止性错误; .黑盒测试需要在所有可能的输入条件和输出条件中确定测试数据,以检查程序是否都能产生正确的输出;有时测试数据量太大,是不现实的。 黑盒测试的测试用例设计方法主要有如下几种。
(1)等价类划分。等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。该方法把所有可能的输入数据即程序的输入域划分为若干个部分,然后从每一部分中选取少数有代表性的数据作为测试用例。 (2)边界值分析。边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值方法设计测试用例,应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。边界值分析方法选择测试用例的原则在很多方面与等价类划分方法类似。 (3)错误推测法。人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。其基本思想是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。 (4)因果图。如果在测试时必须考虑输入条件的各种组合,可使用一种适于描述多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。这种方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。 (5)功能图。它用功能图FD(Functional Diagram)形式化地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成,状态迁移图用于表示输入数据序列以及相应的输出数据,在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。逻辑功能模型用于表示在状态中输入条件与输出条件之间的对应关系。测试用例则是由测试中经过的一系列状态和在每个状态中必须输入/输出数据满足的一对条件组成。 2.白盒测试 白盒测试把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构和有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实 40 际的状态是否与预期的状态一致,又称为结构测试或逻辑驱动测试。 白盒测试主要对程序模块进行如下检查: ·对程序模块的所有独立的执行路径至少测试一次; .对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次; .在循环的边界和运行界限内执行循环体; .测试内部数据结构的有效性等。 逻辑覆盖 逻辑覆盖是以程序内部的逻辑结构为基础的设计用例的技术。它属白盒测试,包括语句覆盖、判定覆盖、条件覆盖、判定一条件覆盖、条件组合覆盖、路径覆盖等。 ·语句覆盖:就是设计若干个测试用例,运行被测程序,使每一可执行语句至少执行一次。 ·判定覆盖:设计若干个测试用例,运行被测程序,使程序中每个判断的取真分支和取假分支至少经历一次,又称为分支覆盖。 ·条件覆盖:设计若干个测试用例,运行被测程序,使程序中每个判断的每个条件的可能取值至少执行一次。 ·判定一条件覆盖:设计足够的测试用例,使判断中每个条件的所有可能取值至少执行一次,每个判断中的每个条件的可能取值至少执行一次。 ·条件组合覆盖:设计足够的测试用例,运行被测程序,使每个判断的所有可能的条件取值组合至少执行一次 ·路径覆盖:设计足够的测试用例,覆盖程序中所有可能的路径。 3.α测试和β测试 在软件交付使用之后,用户将如何实际使用程序,对于开发者来说是不知道的。通常在软件发布上市之前需要进行α测试和β测试。 α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。 α测试可以从软件产品编码结束之时开始,或者在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。 β测试是由软件的多个用户在实际使用环境下进行的测试。
|