【软件测试】边界值分析法

  书中曾用悬崖形容软件边界:如果在悬崖峭壁边可以自信而安全地行走而不掉下去,平地就几乎不在话下了。边界条件是特殊情况,因为编程在根本上说在边界上容易产生问题。实践表明,故障往往出现在定义域或值域的边界上。

1.边界值分析法的概念

  边界值分析法就是对输入的边界值进行测试的一种黑盒测试方法,通常边界值分析法是作为对等价类划分方法的补充,这种情况下,其测试用例来自等价类的边界。

#include <cstring>
#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;

int a[10];

int main(){
    memset(a, -1, sizeof(a));
    for( int i = 1; i <= 10; i ++)
        a[i] = i;
    return 0;
}

  上述代码是很常见的数组越界问题,数组的范围为0~9,而上述赋值语句却是在1~10范围内操作,因此,在上述代码实现中a[0]=-1,而非我们一开始希望的a[0]=0。这都不是我们希望得到的结果。

2.边界值分析法选择测试用例原则

  1)  如果输入条件规定了值的范围,则应取刚达到这个范围的边界值、以及刚超越这个范围边界的值作为测试输入数据

  2)  如果输入条件规定了值的个数,则选取最大个数、最小个数、比最大个数多一、比最小个数少一的数作为测试数据

  3)  根据规格说明的每个输出条件,使用规则1)

  4)  根据规格说明的每个输出条件,使用规则2)

  5)  若输入域是有序集合,则选取集合的第一个元素和最后一个元素作为测试用例

  6)  如果程序使用了一个内部数据结构,则应当选择内部数据结构上得边界值作为测试用例

  7)  分析规格说明,找出其他可能的边界条件

3.使用边界分析法设计测试用例

  1)首先确定边界情况数据

  2)选取正好等于,刚刚大于或刚刚小于边界的值作为测试,而不是选取等价类中的典型值或任意值。

4.小实例

  • 问题描述:NextData函数包含三个变量:month,day,year,函数的输出为输入日期的后一天。
  • 要求输入变量month,day,year均为整数值,并且满足下列条件:
    • 1≤month≤12
    • 1≤day≤31
    • 1812≤year≤2012
  • 等价类划分法:http://www.cnblogs.com/tju-crab/p/4354643.html在这篇博客中应用等价类划分法在这个实例上了
  • 测试用例设计:
用例编号 输入 预期输出
year month day
1 1811 2 1 null
2 2013 2 1 null
3 1812 0 1 null
4 1812 13 1 null
5 1812 2 0 null
6 1812 2 29 1812/3/1
7 1812 2 30 null
8 1812 3 0 null
9 1812 3 31 1812/4/1
10 1812 3 32 null
11 1812 4 0 null
12 1812 4 30 1812/5/1
13 1812 4 31 null
14 1813 2 28 1813/3/1
15 1813 2 29 null
16 1812 12 31 1813/1/1
17 2012 12 31 2013/1/1
  • 代码实现:
bool isLeap( int year){
    if( year % 4 != 0 ) return false;
    else if( year % 100 != 0 ) return true;
    else if( year % 400 == 0 ) return true;
    else return false;
}

void NextDate( int month, int day, int year){
    if( year >= 1812 && year <= 2012){
        if(month >= 1 && month <= 12){
            if(month == 2){
                if(isLeap(year)){
                    if(day >= 1 && day < 29){
                        cout << year << "年" << month << "月" << day + 1 << "日" << endl;
                    }
                    else if(day == 29){
                            cout << year << "年" << 3 << "月" << 1 << "日" << endl;
                    }
                }
                else{
                    if(day >= 1 && day < 28){
                        cout << year << "年" << month << "月" << day + 1 << "日" << endl;
                    }
                    else if(day == 28){
                        cout << year << "年" << 3 << "月" << 1 << "日" << endl;
                    }
                }
            }
            else if(month == 2 || month == 4 || month == 6 || month == 9 || month == 11 ){
                if(day >= 1 && day < 30){
                    cout << year << "年" << month << "月" << day + 1 << "日" << endl;
                }
                else if(day == 30){
                    cout << year << "年" << month + 1 << "月" << 1 << "日" << endl;
                }
            }
            else{
                if(day >= 1 && day < 31){
                    cout << year << "年" << month << "月" << day + 1 << "日" << endl;
                }
                else if(day == 31){
                    if(month == 12){
                        cout << year + 1 << "年" << 1 << "月" << 1 << "日" << endl;
                    }
                    else{
                        cout << year << "年" << month + 1 << "月" << 1 << "日" << endl;
                    }
                }
            }

  

时间: 2024-11-05 14:54:04

【软件测试】边界值分析法的相关文章

软件测试- 测试用例之边界值分析法

根据大量的测试统计数据,很多错误是发生在输入或输出范围的边界上,而不是发生在输入/输出范围的中间区域.因此针对各种边界情况设计测试用例,可以查出更多的错误. 比如一个文本框的可输入字符长度为0~15,那么咱们在测试的时候就会习惯性的输入0个或者16个以上的字符,试试程序会不会报错,因为直觉告诉我们这样出错的几率比较大.这就是在不自觉中应用了边界值分析法. 概念 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等

软件测试方法-边界值分析法

边界值分析法: 在测试技术中,边界值分析法与同等价类划分法有这同意重要的地位,测试工作中频繁使用的程度与等价类划分法基本一致,每使用一次等价类划分法都应该对应使用边界值分析法,对着两个方法结合的深入理解,以及灵活使用也是软件测试工作的基础 边界值分析法就是对输入和输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法作为等价类划分法的补充,在这种情况下,其测试用例来自等价类的边界值 例如等价类划分法例子中: 1.软件需求中要求当产品购物车购物总金额在[200,300]的时候,购物车产品享受9折

黑盒测试用例设计技术--边界值分析法

本文通过案例的形式,详细讲解黑盒测试用例设计技术中的边界值分析法. 无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部.因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果.边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,通常作为对等价类划分法的补充,其测试用例来自等价类的边界.边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例. 如果你对等价类划分法还不

测试用例设计方法(二)边界值分析法

边界值分析法是对等价类划分方法的补充,也是一种黑盒测试方法, 由长期的测试工作经验而知,大量的错误时发生在输入或输出的边界上,因此针对各种边界情况设计测试用例,可以查出更多的错误. (1)边界值分析方法的考虑: 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误. 使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大

边界值分析法

概念: >>边界值分析法是对输入或输出的边界值进行测试的一种测试方法.它不是从一个等价类中任意选一个值作为代表,而是选一个或几个 值,使得该等价类的边界值成为测试关注目标,通常,边界值分析法作为等价类划分法的补充,则边界值分析法的测试用例往往来自 于等价类的边界,针对边界的取值进行特别关注. 特性: >>单单依靠等价类划分法设计测试用例并不能完全充分覆盖测试点,往往在边界区域更容易暴露程序问题 应用步骤: >>确定边界.通常,输入或输出等价类的边界即为边界值分析法着重测

测试用例设计方法---边界值分析法

边界值分析法学习目标掌握边界值分析法设计测试用例掌握边界值分析法取值范围的确定掌握离点的划分方法 1.为什么要学习边界值分析法案例:两位数加法计算器要求:输入两个1-100之间整数的和请猜测程序为什么会出现上述问题?输入的参数值必须大于0同时小于100的整数,边界条件设置错误:把>写成了>=,把<写成了<=[注意]有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方, 也是测试人员重点测试的内容.2.什么是边界边界是指对于输入等价类和输出等价类而言,

边界值分析方法

一.方法简介 1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界. 2.与等价划分的区别 1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件. 2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况. 3.边界值分析方法的考虑: 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种

测试用例设计白皮书--边界值分析方法

一.方法简介1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界. 2.与等价划分的区别  1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件.  2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况. 3.边界值分析方法的考虑:  长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对

测试相关理解(三)—边界值分析方法

1.边界值分析: 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误. 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界. 从整体的角度可以分为单元测试.集成测试.系统测试.确认测试. 单元测试:是针对软件设计的最小单位-程序模块,进行正确性检验的测试工作.一般包括逻辑检查.结构检查.接口检查.出