第3章(3)黑盒测试方法3-决策表法
- 格式:ppt
- 大小:560.50 KB
- 文档页数:28
黑盒测试的方法有哪些
黑盒测试是一种测试方法,它不考虑系统的内部细节,只关注系统的输入和输出。
以下是几种常见的黑盒测试方法:
1. 等价类划分:将输入分为不同的等价类,选择测试用例来代表每个等价类。
这种方法可以降低测试用例的数量,保证对不同情况的覆盖。
2. 边界值分析:找出输入的边界值,设计测试用例来测试这些边界值和超出边界值的情况。
边界值往往是容易出错的地方,通过测试这些值可以发现潜在问题。
3. 决策表测试:根据系统的决策表来设计测试用例。
决策表描述了不同输入和条件之间的关系,通过测试不同情况可以确保决策表的正确性。
4. 因果图测试:将系统的输入和输出之间的因果关系表示为因果图,设计测试用例来覆盖不同的因果路径。
这种方法可以帮助发现因果关系中的错误。
5. 错误推测:基于经验和直觉,猜测潜在的错误和故障点,设计测试用例来验证预测。
这种方法适用于没有明确规范的系统或新的系统。
6. 判定表测试:将不同的条件组合和对应的动作组合表示为判定表,设计测试用例来测试每种组合。
这种方法适用于有多个条件和可能的动作的系统。
以上是一些常见的黑盒测试方法,测试人员可以根据具体的测试需求和系统特点选择合适的方法来进行测试。
测试人员的黑盒测试技巧与方法在软件开发过程中,测试是一个至关重要的环节。
而其中的黑盒测试作为一种常用的测试方法,被广泛应用于软件测试领域。
本文将介绍测试人员在进行黑盒测试时所需要掌握的技巧与方法,以帮助测试人员更好地进行测试工作。
一、概述黑盒测试是一种基于软件外部结构的测试方法,测试人员在不了解软件内部具体实现的情况下,对软件的输入和输出进行测试。
它能够帮助测试人员从用户的角度出发,验证软件是否符合设计要求和预期功能。
二、黑盒测试的技巧1. 策略选择在进行黑盒测试时,测试人员需要根据具体情况选择适合的测试策略。
常用的黑盒测试策略包括等价类划分、边界值分析、状态转换、因果图等。
合理选择测试策略可以提高测试的效果和覆盖率。
2. 测试用例设计设计合理的测试用例是黑盒测试的关键。
测试人员可以根据需求文档、功能规格说明书等相关资料,结合测试策略,设计出全面而合理的测试用例。
测试用例需要覆盖各种可能的输入、边界条件和异常情况,以检验软件的稳定性和可靠性。
3. 输入验证黑盒测试中,对输入数据进行验证是十分重要的。
测试人员应该关注输入的类型、长度、格式等,确保输入数据的合法性。
对于无效或异常的输入,能够正确地进行处理和提示。
4. 功能测试黑盒测试中,功能测试是最为重要和常用的测试方法之一。
测试人员需要对软件的各项功能进行全面的测试,包括正常使用场景和各种异常情况。
通过功能测试,可以验证软件的功能是否符合需求和设计要求。
5. 边界测试边界测试是黑盒测试中的一种重要方法。
测试人员需要关注各种边界条件,包括最大值、最小值、临界值等,以验证软件在边界情况下的正确性和鲁棒性。
边界测试能够帮助测试人员找出潜在的问题和错误。
6. 异常处理测试在实际使用过程中,软件可能会遇到各种异常情况,如网络中断、数据库故障等。
测试人员需要模拟这些异常情况,并测试软件的异常处理能力。
通过异常处理测试,可以提高软件的可靠性和容错性。
7. 性能测试性能是软件质量的一个重要指标。
20 15 —20 16 学年第 2 学期软件测试技术课程实验报告学院:计算机科学技术专业:软件工程班级:软件二班姓名:吴德宁学号:041340217任课教师:刘玉宝实验日期:2016年 5 月17 日实验题目实验3、黑盒测试:决策表测试方法实验目的1、掌握决策表的概念2、掌握决策表测试用例设计法。
实验内容1、对NextDate问题运用决策表法设计测试用例,并执行测试,撰写实验报告。
NextDate (int month, int day, int year)函数规定:输入三个整数:month、day 和year,函数的输出为输入日期后一天的日期。
例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。
实验步骤:1)构造决策表●M1={月份:30天/月},M2={月份: 31天/月,12月除外},M3={月份: 12月},M4={月份: 2月}●D1={日期:1<=日<=27},D2={日期:日=28},D3={日期:日=29} ,D4={日期:日=30},D5={日期:日=31}●Y1={年:闰年},Y2={年:平年}注:二月:平年28天,闰年29天条件桩:●C1:月份在{M1,M2,M3,M4}中之一●C2:日期在{D1,D2,D3,D4 ,D5}中之一●C3:年在{Y1,Y2}中之一动作桩:●A1:不可能●A2:日期增1●A3:日期复位(置1)●A4:月份增1●A5:月份复位(置1)●A6:年增11 2 3 4 5 6 7 8 9 10C1:月M M M M M1 M M2 M M2 M2cin>>year;}cout<<"请输入月份:"<<endl;cin>>month;while (month>12||month<1){cout<<"月份输入有误,请重新输入"<<endl;cin>>month;}cout<<"请输入日期:"<<endl;cin>>day;while (day>31||day<1){cout<<"日期输入有误,请重新输入"<<endl;cin>>day;}if((year%4==0 && year%100!=0) || (year%400==0)) //检查闰年;{int i=0;i=day-29;while(month==2&&i>0){cout<<"本月是闰月,请在1-29之间从新输入日期"<<endl;cin>>day;}if(month==2&&day==28){month=3;day=1;}else if(month==2&&day==29){month=3;day=2;}else day=day+2;}else day=day+2;//月底计算;switch(month){case 1:case 3:case 5:case 7:case 10:if (day==32){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if (day==33){month++;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 2:if(day==29){month=3;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if(day==30){month=3;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 4:case 6:case 9:case 11:if(day==31){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if(day==32){month++;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;if(day==32){year++;month=1;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;}cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}2、航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。
常见黑盒测试方法黑盒测试是一种软件测试方法,它主要关注于测试程序的功能和用户界面,而无需关注内部的代码实现细节。
黑盒测试方法可以帮助发现程序中的缺陷、逻辑错误和性能问题。
以下是一些常见的黑盒测试方法:1. 等价类划分法:等价类划分法是一种根据输入条件的特征将输入数据划分为等价类的测试方法。
它基于输入数据对程序的影响是一致的原则。
这种方法可以最大程度地减少测试用例的数量,并且能够覆盖各个等价类。
测试人员需要根据输入条件的范围和类型,将输入数据划分为不同的等价类,并从每个等价类中选择一个测试用例进行测试。
2. 边界值分析法:边界值分析法是一种测试方法,它主要关注在输入数据的边界上进行测试。
这是因为在边界上的错误往往比在其他地方更容易出现。
这种方法可以帮助测试人员找到输入数据的边界情况,并测试程序对这些边界情况的处理能力。
测试人员需要针对每个输入条件的边界情况选择测试用例,并检查程序对这些边界情况的响应是否正确。
3. 错误推测法:错误推测法是一种基于经验和直觉的测试方法,它基于测试人员的经验来猜测可能会导致程序错误的输入情况。
测试人员需要根据他们对程序的了解和经验,推测可能会导致错误的输入情况,并选择相应的测试用例进行测试。
这种方法可以帮助测试人员发现一些常见的错误情况,并验证程序是否能够正确处理这些情况。
4. 决策表测试法:决策表测试法是一种基于程序的决策逻辑来构造测试用例的方法。
测试人员需要了解程序的各种可能的决策路径,并构造相应的决策表。
根据决策表的内容,测试人员可以选择一组测试用例并执行测试。
这种方法可以帮助测试人员验证程序是否正确地根据输入数据的不同情况做出正确的决策。
5.状态迁移测试法:状态迁移测试法是一种测试有限状态机的方法。
它主要关注程序在不同状态之间的转换和状态转换的触发条件。
测试人员需要识别程序可能的状态和状态转换,并根据这些信息构造测试用例。
测试用例应涵盖不同的状态和状态转换情况,并验证程序在这些情况下的行为是否符合要求。
1实验项目名称:黑盒测试2实验目的和要求:目的:让学生掌握黑盒测试的用法和原理要求:三角形问题:从键盘输入三个整数a、b、c。
(1≤a、b、c ≤100)判断是否构成三角形,若能构成三角形,指出构成的是等边三角形?等腰三角形?不等边三角形?要求编程并使用黑盒测试方法进行测试,要求使用边界值测试、等价类测试、决策表测试、因果图测试法分别进行测试。
3实验原理黑盒测试又称为功能测试或数据驱动测试,把程序看成一个黑盒子,完全不考虑程序的部结构和处理程序,只是在程序的接口进行测试,以检查程序功能是否正常,程序是否能适当接收输入数据产生正确的输出数据。
4主要仪器设备计算机、windows系统、winT-C编程与测试5实验容及步骤(1)认真读题并了解目的(2)准备环境及工具(3)编程:#include<stdio.h>void main(){while(1){int a,b,c;printf("please Input a,b,c:");scanf("%d %d %d",&a,&b,&c);if(a<1||a>100||b<1||b>100||c<1||c>100)printf("输入围在1到100\n");else if(a+b>c&&a+c>b&&b+c>a){if(a==b&&b==c&&c==a){printf("等边三角形\n");}else if(a==b||b==c||a==c){printf("等腰三角形\n");}else{printf("不等边三角形\n");}}else{printf("非三角形");}getch();}}(4)画流程图6实验数据记录和处理(1)边界值法分析d(2)等价类法分析(3) 决策表法分析1)列出所有的条件桩和行动桩条件桩行动桩C1:a<b+c? 非三角形C2:b<a+c? 不等边三角形C3:C<a+b? 等腰三角形C4:a=b? 等边三角形C5:a=c? 不可能C6:b=c?2)确定规则的个数规则数2^6=643) 填入条件项 4 ) 填入动作项5) 合并相似规则(4)因果图法分析1)列出原因和结果原因:B1:0≤a≤100B2:0≤b≤100B3:0≤c≤100B4:a<b+cB5:b<a+cB6 :c<a+bB7:a=bB8:b=cB9:a=c中间结果:10:边围正确11:可以构成三角形12:任意两条边相等13:三条边相等结果:E1:不可能E2:不等边三角形E3:等腰三角形E4:等边三角形2)画出因果图3)将因果图转换为决策表7实验结果与分析(1)边界值法测试结果(2) 等价类法测试结果(3) 决策表法测试结果(4)因果图法测试结果。
第三章黑盒测试参考答案(注意:答案仅供参考,若有误,请自行修改。
)1、某保险公司计算保险费率。
计算方式为10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下表所示。
其中,年龄有效输入范围为1-100;抚养人数可输入“无”或1-9之间的整数。
(1)通过对程序功能的分析,其等价类表如下所示:该函数要求输入三个变量month、day和year,输出该日期之后一天的日期。
其中year 的取值范围为:1900-2079。
如果输入的日期组合不合法,则显示“无效的输入日期”。
使用等价类划分进行测试用例设计。
参考答案:参考答案略。
4、某软件的一个模块的需求规格说明书中描述:(1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。
(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。
请绘制出因果图和判定表,并给出相应的测试用例。
参考答案:(1)根据程序的规格说明,原因和结果如下:原因:C1:年薪制员工。
(1:是年薪制员工;0:非年薪制员工)C2:严重过失C3:过失结果:e1:扣年终风险金的4%e2:扣年终风险金的2%e3:扣当月薪资的8%e4:扣当月薪资的4%(2) 因果图:略 (3) 决策表:(4) 用例表: 5、有一个处理单价为1元5角钱的盒装饮料的自动售货机软件,若投入1元5角硬币,按下“可乐”、“雪碧”或“橙汁”按钮,相应的饮料就送出来。
若投入的是2元硬币,在送出相应的饮料同时退换5角硬币。
请绘制出因果图和判定表,并给出相应的测试用例。
参考答案:(1) 根据程序的规格说明,原因和结果如下: 原因:C1——投入1元5角硬币 C2——投入2元硬币 C3——按下可乐按钮 C4——按下雪碧按钮 C5——按下橙汁按钮 结果:E1——退还5角硬币 E2——送出可乐饮料 E3——送出雪碧饮料 E4——送出橙汁饮料 中间结点: 11——已投币 12——已按钮 (2)因果图:(3)判定表:(4)测试用例表。
⿊盒测试-决策表法判定表⼜成为决策表,是决策表法的核⼼,是分析和表达多逻辑条件下执⾏不同操作情况的有效⼯具。
决策表法是⼀种将复杂逻辑关系和多条件组合情况表达得较为明确的⽅法,适⽤于程序钟输⼊输出较多或输⼊与输出之间相互制约条件较多的情况综合所有⿊盒测试⽅法来讲,基于决策表法的测试是最严格,最具有逻辑性的决策表组成 决策表通常由⼀下4部分组成:《条件桩---列出问题的所有条件《条件桩---针对条件桩给出的条件列出所有可能的取值《动作桩---列出问题规定的可能采取的操作《动作桩---指出条件项的各组取值情况下应采取的动作决策表适⽤范围 决策表测试法适⽤于具有以下特征的应⽤程序--if then else 逻辑突出;--输⼊变量之间存在逻辑关系;--涉及输⼊变量⼦集的计算;--输⼊与输出之间存在因果关系。
适⽤于使⽤决策表设计测试⽤例的条件:--规格说明以决策表形式给出,或较容易转换为决策表。
--条件的排列顺序不会也不应影响执⾏的操作。
--规则的排列顺序不会也不应影响执⾏的操作。
--当某⼀规则的条件已经满⾜,并确定要执⾏的操作后,不必检验别的规则。
--如果某⼀规则的条件要执⾏多个操作,这些操作的执⾏顺序⽆关紧要。
决策表步骤(1)确定规则的个数。
--有N个条件的决策表有2的N次⽅个规则(每个条件取真、假值)。
(2)列出所有的条件桩和动作桩。
(3)填⼊条件项(4)填⼊动作项,得到初始决策表。
(5)简化决策表,合并相似规则。
--若表中有两条以上规具有相同动作,并且在条件项之间存在极为相似的关系,便可以合并。
--合并之后的条件项⽤符号“-”表⽰,说明执⾏的动作与该条件的取值⽆关,称为不管条件。