zoukankan      html  css  js  c++  java
  • 单元测试——四则运算2

    一、测试方法(Right-BICEP
    6个值得测试的具体部位:
    Right-结果是否正确?
    B-是否所有的边界条件都是正确的?
    I-能查一下反向关联吗?
    C-能用其他手段交叉检查一下结果吗?
    E-你是否可以强制错误条件发生?
    P-是否满足性能要求?
    二、测试部分
      检查链表中是否和刚刚出的题目重复:
      该模块源代码如下:
    //***********检查链表中的数据是否有重复***********//
    int repeat(LinkList L,equation N)//函数返回值是1的话有重复,返回值是0的话无重复
    {
        int flag=0;//如果有重复的则flag=1,否则为0
        LNode *temp;
        temp=L->next;
        if(L->next==NULL)//若链表为空
            return flag;
        while(temp!=NULL)//若链表不为空
        {
            if((temp->first_operand==N.first)&&(temp->second_operand==N.second)&&(temp->operat==N.ope))//如果有重复的话
            {
                flag=1;
                break;
            }
            temp=temp->next;
        }
        return flag;
    }

      测试代码如下:

    // 单元测试.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include<iostream.h>
    #include<time.h>
    #include<stdlib.h>
    typedef struct
    {
        int first;
        int second;
        char ope;
    }equation;
    //***********链表的数据结构***********//
    typedef struct LNode
    {
        int first_operand;
        int second_operand;
        char operat;
        struct LNode *next;
    }LNode,*LinkList;
    //**********链表初始化***********//
    void InitList_L(LinkList &L)
    {
        L=new LNode;
        L->next=NULL;
    }
    //***********检查链表中的数据是否有重复***********//
    int repeat(LinkList L,equation N)//函数返回值是1的话有重复,返回值是0的话无重复
    {
        int flag=0;//如果有重复的则flag=1,否则为0
        LNode *temp;
        temp=L->next;
        if(L->next==NULL)//若链表为空
            return flag;
        while(temp!=NULL)//若链表不为空
        {
            if((temp->first_operand==N.first)&&(temp->second_operand==N.second)&&(temp->operat==N.ope))//如果有重复的话
            {
                flag=1;
                break;
            }
            temp=temp->next;
        }
        return flag;
    }
    //***********链表的输出***********//
    void input_L(LinkList L,int m)//m,是每行的列数,n是每行的间隔
    {
        LNode *head;
        head=L->next;
        int temp=0;
        while(head!=NULL)
        {
            cout<<head->first_operand<<head->operat<<head->second_operand<<"=	";//数据的输出
            temp++;
            head=head->next;
            if(temp%m==0)//打印方式(列数)
            {
                cout<<endl;
            }
        }
    }
    int main()
    {
        int i;
        int flag=0,flag1=1;
        equation N;
        LinkList L;
        InitList_L(L);
        LNode *head;
        head=L;
        
        cout<<"现在往链表中插入数据:"<<endl;
        for(i=0;i<3;i++)//往链表中插入三个算式
        {
            LNode *temp;
            temp=new LNode;
            cout<<"请输入第"<<i+1<<"个式子:"<<endl;
            cin>>temp->first_operand>>temp->operat>>temp->second_operand;
            temp->next=NULL;
            head->next=temp;
            head=head->next;
        }
        cout<<"链表中的数据是:"<<endl;
        input_L(L,3);
        while(flag1==1)
        {
            cout<<"请在输入一个算式:"<<endl;
            cin>>N.first>>N.ope>>N.second;
            flag=repeat(L,N);
            if(flag==1)
                cout<<"链表中有重复的算式!"<<endl;
            else if(flag==0)
                cout<<"链表中没有重复的算式"<<endl;
            cout<<"是否继续检验程序(是/1,否/0)";
            cin>>flag1;
        }
        return 0;
    }
    三、测试计划

      1.通过自己手动输入题目,查看结果是否正确。

      2.改变算式中数字的大小,再通过手动输入算式,查看结果是否正确。

      3.再插入链表中数据后,将链表的数据全部输出查看。

      4.通过增加链表中的数据,重新检查。

      5.故意输入错误参数,看是否正常运行。

    四、测试步骤
      1.往链表里简单的插入三个数据,然后依次检查是否有重复:
      
      2.改变数据的大小,重新一次检查,看是否有重复的:
         
      3.改变数的范围,检查是否有重复
      
      
       
      
       
      
      
  • 相关阅读:
    Vue 2.0学习(三)指令与事件
    Vue 2.0学习(二)数据绑定
    Vue 2.0学习(一)简介
    大数据入门学习(一):初识大数据
    Knockout.js(四):自定义绑定
    03 Python基础
    02 测试环境的搭建
    01 自动化测试基础
    第29章 项目10:DIY街机游戏
    第27章 项目8:使用XML-RPC进行文件共享
  • 原文地址:https://www.cnblogs.com/menglikanhualuo/p/4342471.html
Copyright © 2011-2022 走看看