1、黑盒测试技术黑盒测试技术 陈大卫2022年3月5日黑盒测试技术黑盒测试技术一、黑盒测试策略与准则一、黑盒测试策略与准则二、等价类划分二、等价类划分三、因果图三、因果图四、正交实验设计法四、正交实验设计法五、边值分析五、边值分析六、判定表驱动测试六、判定表驱动测试黑盒测试技术黑盒测试技术一、黑盒测试策略与准则一、黑盒测试策略与准则二、等价类划分二、等价类划分三、因果图三、因果图四、正交实验设计法四、正交实验设计法五、边值分析五、边值分析六、判定表驱动测试六、判定表驱动测试l正常情况;l非正常情况;l边界情况;l非法情况;l极端情况(强度测试);l性能测试;l兼容性,用户友好性。何时结束?覆盖率?
2、测试方法的选择。黑盒测试技术黑盒测试技术一、黑盒测试策略与准则一、黑盒测试策略与准则二、等价类划分二、等价类划分三、因果图三、因果图四、正交实验设计法四、正交实验设计法五、边值分析五、边值分析六、判定表驱动测试六、判定表驱动测试是一种典型的黑盒测试方法,即用这一方法设计测试用例完全不考虑程序的内部结构,而是只根据对程序的要求和说明,即需求规格说明书。把说明中对输入的要求和输出的要求区别开来并加以分解。由于穷举测试的办法数量太大,以至于无法实际完成,自然促使我们要在大量的可能数据中选取其中的一部分作为测试用例。问题在于如何选取等价类划分。等价类划分的办法是把程序的输入域划分成若干部分,然后从每个
3、部分中选取少数代表性数据当作测试用例。有效等价类有效等价类无效等价类无效等价类有效等价类有效等价类指的是对程序的规格说明是有意义的、合理的输入数据所构成的集合。在具体问题中,有效等价类可以是一个,也可以是多个。无效等价类无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。(1)如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。例如,程序的规格说明中提到的输入条件包括“项数可以从1到999,”则可以取有效等价类“1项数999”。无效等价类为“项数999”。又如,程序规格说明中提到“学生允许选修2至
4、4门课”,有效等价类可取“选课2至4门”,无效等价类为“只选一门或未选课”及“选课超过4门”。(2)输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。例如,某程序的规格说明中提到的输入条件包括“统计全国各省、市、自治区的人口”,则应取“国内省、市、自治区”为有效等价类,“非国内省、市、自治区”为无效等价类。(3)如果我们确知,已划分的等价类中各元素在程序中的处理方式是不同的,则应将此等价类进一步划分成更小的等价类。输入条件输入条件有效等价类有效等价类无效等价类无效等价类(1)为每个等价类规定一个唯一的编号。(2)设计一个测试用例,使其尽可能多地覆
5、盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。(3)设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。黑盒测试技术黑盒测试技术一、黑盒测试策略与准则一、黑盒测试策略与准则二、等价类划分二、等价类划分三、因果图三、因果图四、正交实验设计法四、正交实验设计法五、边值分析五、边值分析六、判定表驱动测试六、判定表驱动测试等价类划分方法并没有考虑到输入情况的各种组合,也没考虑到各个输入情况之间的相互制约关系。这样做尽管考虑到各个输入条件可能出错的多种情况,但多个输入条件组合起来出错的情况却被忽略了。采用因果图方法(Cause-Effect
6、 Graphing)能够帮助我们按一定步骤地选择测试用例,同时还能为我们指出,程序规格说明描述中存在着什么问题。(1)分析程序规格说明的描述中,那些是原因,那些是结果。原因常常是输入条件或是输入条件的等价类。而结果是输出条件。(2)分析程序规格说明中的描述中语义的内容,并讲其表示成连接各个原因与各个结果的“因果图”。(3)由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用若干个特殊的符号标明约束条件。(4)把因果图转换为判定表。(5)把判定表中每一列表示的情况写成测试用例。因果图的四种符号:因果图的四种符号:恒等恒等c1e1因果图的四种符号:因果
7、图的四种符号: 非非c1e1因果图的四种符号:因果图的四种符号:或或c1e1c2c3因果图的四种符号:因果图的四种符号:与与c1e1c2c3因果图的四种符号:说明:c i 表示原因,通常置于图的左部;e i 表示结果,通常在图的右部。c i 和e i 均可取值0或1,0表示某状态不出现,1表示某状态出现。在实际问题中,输入状态相互之间还可能存在某些依赖关系,称之为“”。比如,某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。E E异异abE约束约束(异异):a和b中至多有一个可能为1,即a和b不能同时为1。I I或或acbI约束约束(或或):a、
8、b和c中至少有一个必须是1,即a、b和c不能同时为0。O O唯一唯一abO约束约束(唯一唯一): a和b必须有且仅有一个为1。R R要求要求abR约束约束(要求要求):a是1时,b必须为1,即不可能a是1时b是0。输出条件有的约束只有M约束约束(强制):若结果a是1时,则b的结果强制为0。M M 强制强制ab小结,在较为复杂的问题中,因果图这个方法是十分有效的,它能有力地帮助我们确定测试用例。当然,如果哪个开发项目在设计阶段就采用了判定表,也就不必再画因果图,而是可以直接利用判定表设计测试用例了。黑盒测试技术黑盒测试技术一、黑盒测试策略与准则一、黑盒测试策略与准则二、等价类划分二、等价类划分三
9、、因果图三、因果图四、正交实验设计法四、正交实验设计法五、边值分析五、边值分析六、判定表驱动测试六、判定表驱动测试利用因果图来设计测试用例时,作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明书得出,而且即使是对于一般中小规模的软件,画出的因果图也可能非常庞大,以至于据此因果图而得到的测试用例数目将达到惊人的程度,给软件测试工作带来在人工、机时、费用上的沉重负担。为了有效地、合理地减少测试的工时与费用,可以利用在实际生产活动中行之有效的正交实验法,进行测试用例的设计。是从大量的实验点中挑选出适量的、有代表性的点,应用依据伽罗瓦理论导出的“正交表”,合理地安排实验的一种科学的
10、实验设计方法。在正交实验设计方法中,通常把判断实验结果优劣的标准叫做实验的指标,把有可能影响实验指标的条件称为因子因子,而影响实验因子的,叫做因子的水水平平(或状态状态)。软件功能测试,作为实验的一种,完全可以利用正交实验设计法,来进行测试数据的选择,以提高测试的效率。首先要根据被测软件的规格说明书找出影响其功能实现的操作对象和外部因素,把它们当作因子,而把各个因子的取值当作状态,构造出二元的因素分析表。然后,利用正交表进行各因子的状态的组合,构造有效的测试输入数据集。这样得出的测试用例集中,测试用例的数目将大大减少。在实际测试时,用户所提供的被测软件的功能说明,往往是非形式化的,很难满足构造
11、因素分析表的需要。因此需要对软件规格说明书的功能要求进行划分,把整体的概要性的功能要求进行层层分解与展开。分解成具体的,有相对独立性的基本的功能要求,这样就可以把被测软件中所有的因子都确定下来,并为确定各因子的权值提供参考的依据。接下来,由用户会同测试人员根据软件规格说明书,确定各个因子的取值,即因子的状态。由于有些因子的取值范围较广,我们必须进行采样取值,在各个不同的取值区间上取典型值与边界值,并重点选取某些具有特定意义的取值点。确定因子与状态是设计测试用例的关键,因此需要尽可能全面、准确地确定取值,以确保测试用例的设计做到完整与有效。因子与状态填入用二维表格形式表示的因子状态表。1、节省测
12、试工作时。2、可控制生成的测试用例的数量。3、测试用例具有一定的覆盖度。黑盒测试技术黑盒测试技术一、黑盒测试策略与准则一、黑盒测试策略与准则二、等价类划分二、等价类划分三、因果图三、因果图四、正交实验设计法四、正交实验设计法五、边值分析五、边值分析六、判定表驱动测试六、判定表驱动测试实践表明,在设计测试用例时,对边界附近的处理必须给予足够的重视,为检验边界附近的处理专门设计测试用例,常常取得良好的测试效果。(1)如果输入条件规定了取值范围,或是规定了值的个数,则应以该范围的边界内及刚刚超出范围的边界外的值,或是分别对最大、最小个数及稍小于最小、稍大于最大个数作为测试用例。(2)针对规格说明的每
13、个输出条件使用上面的规则。(3)如果程序规格说明中提到的输入或输出域是个有序的集合(如顺序文件、表格等),就应注意选取有序集的第一个和最后一个元素作为测试用例。(4)分析规格说明,找出其他的可能边界条件。实例: “某一为学生考试试卷评分和成绩统计的程序,其规格说明指出了对程序的要求:程序的输入文件由80个字符的一些记录组成,这些记录分为三组:(1)标题:这一组只有一个记录,其内容为输出报告的名字。(2)试卷各题标准答案记录:每个记录均在第80个字符处标以数字“2”。该组的第一个记录的第1至第3个字符为题目编号(取值1999)。第10至59个字符给出第1至第50题的答案(每个合法字符表示一个答案
14、)。该组的第2,第3,等等记录相应为第51至第100,第101至第150,等等题的答案。(3)每个学生的答卷描述:该组中每个记录的第80个字符均为数字“3”。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10至59字符列出的是甲所做的第1至第50题的答案。若试题数超过50,则其第2,第3,等等记录分别给出他的第51至第100,第101至150,等等题的解答。然后是学生乙的答案记录。黑盒测试技术黑盒测试技术一、黑盒测试策略与准则一、黑盒测试策略与准则二、等价类划分二、等价类划分三、因果图三、因果图四、正交实验设计法四、正交实验设计法五、边值分析五、边值分析六、
15、判定表驱动测试六、判定表驱动测试在一些数据处理问题中,某些操作是否实施依赖多个逻辑条件的取值。也即在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。处理这类问题的一个非常有力的分析和表达工具是判定表。判定由四个部分组成:条件茬(Condition Stub)动作茬(Action Stub)条件项(Condition Entry)动作项(Action Entry)判定表的化简条件茬条件项动作茬动作项判定表最突出的优点是:它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。它的不足之处在于,不能表达重复执行的动作,例如循环结构。一些软件的功能需求可用判定表表达
16、得非常清楚,在检验程序的功能时判定表也就成为一个非常有力的工具。(1)当条件1和条件2满足,并且条件3和条件4不满足,或者当条件1、3和条件4满足时,要执行操作1。(2)在任何一个条件都不满足时,要执行操作2。(3)当条件1不满足时,而条件4被满足时,要执行操作3。规则规则 1规则规则 2规则规则 3规则规则 4条件条件 1YYNN条件条件 2YN条件条件 3NYN条件条件 4NYNY操作操作 1XX操作操作 2X操作操作 3X根据规格说明得到的判定表根据规格说明得到的判定表(1)规格说明以判定表形式给出,或是很容易转换成判定表。 (2)条件的排列顺序不会也不应影响执行哪些操作。(3)规则的排列顺序不会也不应影响执行哪些操作。(4)每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。(5)如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。其他测试技术其他测试技术vWEB站点应用测试技术与方法v软件测试环境配置方法v日期时间相关应用测试方法v数据库应用测试方法vEveryone Any Question ?谢谢谢谢 大家大家