前面因果图方法中已经用到了判定表.判定表(DecisionTable)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.
  判定表通常由四个部分组成.
  条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.
  动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.
  条件项(ConditionEntry):列出针对它左列条件的取值.在所有可能情况下的真假值.
  动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.
  规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列是一条规则.显然,判定表中列出多少组条件取值,也有多少条规则,既条件项和动作项有多少列.
  判定表的建立步骤:(根据软件规格说明)
  ①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有种规则.
  ②列出所有的条件桩和动作桩.
  ③填入条件项.
  ④填入动作项.等到初始判定表.
  ⑤简化.合并相似规则(相同动作).
  B. Beizer 指出了适合使用判定表设计测试用例的条件:
  ①规格说明以判定表形式给出,或很容易转换成判定表.
  ②条件的排列顺序不会也不影响执行哪些操作.
  ③规则的排列顺序不会也不影响执行哪些操作.
  ④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.
  ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.
  黑盒测试的优点
  1. 基本上不用人管着,如果程序停止运行了一般是被测试程序crash了
  2. 设计完测试例之后,下来的工作是爽了,当然更苦闷的是确定crash原因
  黑盒测试的缺点
  1. 结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG的东西很值得借鉴
  2. 没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来作
  3. 没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。而有状态的测试来说,更麻烦了,尤其不是一个单独的testcase造成的问题。这些在堆的问题中表现的更为突出。
  黑盒测试(功能测试)工具的选择
  WinRunner是一种用于检验应用程序能否如期运行的企业级软件功能测试工具。通过自动捕获、检测和模拟用户交互操作,WinRunner能识别出绝大多数软件功能缺陷,从而确保那些跨越了多个功能点和数据库的应用程序在发布时尽量不出现功能性故障。
  WinRunner的特点在于:与传统的手工测试相比,它能快速、批量地完成功能点测试;能针对相同测试脚本,执行相同的动作,从而消除人工测试所带来的理解上的误差;此外,它还能重复执行相同动作,测试工作中枯燥的部分可交由机器完成;它支持程序风格的测试脚本,一个高素质的测试工程师能借助它完成流程极为复杂的测试,通过使用通配符、宏、条件语句、循环语句等,还能较好地完成测试脚本的重用;它针对于大多数编程语言和Windows技术,提供了较好的集成、支持环境,这对基于Windows平台的应用程序实施功能测试而言带来了极大的便利。
  WinRunner的工作流程大致可以分为以下六个步骤:
  1.识别应用程序的GUI
  在WinRunner中,我们可以使用GUI Spy来识别各种GUI对象,识别后,WinRunner会将其存储到GUI Map File中。它提供两种GUI Map File模式: Global GUI MapFile和GUI Map File per Test。其大区别是后者对每个测试脚本产生一个GUI文件,它能自动建立、存储、加载,推荐初学者选用这种模式。但是,这种模式不易于描述对象的改变,其效率比较低,因此对于一个有经验的测试人员来说前者不失为一种更好的选择,它只产生一个共享的GUI文件,这使得测试脚本更容易维护,且效率更高。
  2.建立测试脚本
  在建立测试脚本时,一般先进行录制,然后在录制形成的脚本中手工加入需要的TSL(与C语言类似的测试脚本语言)。录制脚本有两种模式: Context Sensitive和Analog,选择依据主要在于是否对鼠标轨迹进行模拟,在需要回放时一般选用Analog。在录制过程中这两种模式可以通过F2键相互切换。
  只要看看现代软件的规模和功能点数可以明白,功能测试早已跨越了单靠手工敲敲键盘、点点鼠标可以完成的阶段。而性能测试则是控制系统性能的有效手段,在软件的能力验证、能力规划、性能调优、缺陷修复等方面都发挥着重要作用。
  3.对测试脚本除错(debug)
  在WinRunner中有专门一个DebugToolbar用于测试脚本除错。可以使用step、pause、breakpoint等来控制和跟踪测试脚本和查看各种变量值。
  4.在新版应用程序执行测试脚本
  当应用程序有新版本发布时,我们会对应用程序的各种功能包括新增功能进行测试,这时当然不可能再来重新录制和编写所有的测试脚本。我们可以使用已有的脚本,批量运行这些测试脚本测试旧的功能点是否正常工作。可以使用一个call命令来加载各测试脚本。还可在call命令中加各种TSL脚本来增加批量能力。
  5.分析测试结果
  分析测试结果在整个测试过程中重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,从这个测试报告中我们能发现应用程序的功能性缺陷,能看到实际结果和期望结果之间的差异,以及在测试过程中产生的各类对话框等。
  6.回报缺陷(defect)
  在分析完测试报告后,按照测试流程要回报应用程序的各种缺陷,然后将这些缺陷发给指定人,以便进行修改和维护。