`
liyiye
  • 浏览: 417306 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

(三)白盒测试实例--需求分析

阅读更多

需求分析是后续工作的基石,如果分析思路有问题,后续工作可能就会走向不正确的方向,比如:代码重用性差、难于测试、难于扩展和难于维护等。反而,如果需求分析做的好,对设计、开发和测试来说,都可能是很大的帮助。

看到题目给出的条件达12个之多,粗粗一看,好像很复杂,但仔细分析之后,发现可以把它们分成4组来讨论: 

1、 条件1:a+b>c;    条件2:a+c>b;    条件3:b+c>a

这三个表达式有什么特点呢?实际上它们的逻辑是一样的:两个数之和大于第三个数。那么,前面程序的写法就存在逻辑重复的地方,应该把这个逻辑提取到一个函数中。

 

2、 条件4:0<a<200;  条件5:0<b<200;  条件6:0<c<200

这三个表达式也是同一个逻辑:判断一个数的范围是否在(0, 200)区间内,也应该把这个逻辑提取到一个函数中,去掉重复的逻辑,提高代码的可重用性。

 

可重用性的好处:比如,现在用户的需求改为了三条边的取值范围要改为[100,400],那么,按前面的思路来说,需要改3个地方,而现在只需要在一个函数里改1个地方,这就是代码重用的好处。

 

3、条件7:a==b;  条件8:a==c;  条件9:b==c

这三个表达式的逻辑:判断两个数是否相等。也应该把它提取到一个函数中。

我们进一步来分析一下判断是否是等边三角形或等腰三角形的条件:

(1)前面程序的判断是从最直观的方式(a==b && b==c && a==c)(实际上只需要两个表达式成立即可)三条边都相等来判定是等边三角形;(a==b || b==c || a==c)只有两条边相等来判定是等腰三角形。

(2)转变一下思路:给定三个整数,然后用一个函数来判断这三个整数有几个相等,返回相等的个数,如果返回值等于3,那么它是等边三角形,如果返回值是2,那么它是等腰三角形,否则,它是一般三角形(如果不是直角三角形的话)。

 

4、条件10:a2+b2==c2   条件11:a2+ c2== b2  条件12:c2+b2== a2

这三个条件的处理方式有两种:

(1)跟前面三组分析一样,把相同的逻辑提取到一个函数中,然后三次调用。

(2)根据直角三角形的特点:斜边是最长的,所以我们可以事先写一个函数来找到最长的边,然后把它赋值给c,这样处理之后,只需要一次调用判定(a2+b2==c2)的函数了。

分享到:
评论

相关推荐

    白盒测试实例之一——需求说明

    本文借助这个例子结合教学经验,从更高的视角来探讨需求分析、软件设计、软件开发与软件测试之间的关系与作用。  题目:根据下面给出的三角形的需求完成程序并完成测试:  一、输入条件:  1、条件1:a+b&gt;c  2、...

    Fuzzing_模糊测试--强制性安全漏洞发掘

    1.1 白盒测试 1.1.1 源代码评审 1.1.2 工具和自动化 1.1.3 优点和缺点 1.2 黑盒测试 1.2.1 人工测试 1.2.2 自动测试或模糊测试 1.2.3 优点和缺点 1.3 灰盒测试 1.3.1 二进制审核 1.3.2 自动化的二进制审核 1.3.3 ...

    软件测试教程 软件学院

    第4章 白盒测试及其用例的设计 第5章 特定环境及应用测试 第6章 自动化测试 ... ... ... 等 并包含软件测试各种标准文档,如: 0 各种文档的顺序图.doc 1 可行性研究报告(GB8567——88).doc 2 项目开发计划(GB...

    [软件测试].赵瑞莲.文字版

    主要内容包括:绪论、软件测试实质、软件测试策略、黑盒测试、白盒测试、集成测试与系统测试,验证测试和确认测试,测试计划与测试文档、面向对象的软件测试。 本书适合于高等职业学校、高等专科学校、成人高校、...

    软件测试入门(必看)

    十四 性能测试原理及性能测试实例分析 73 14.1 软件测试中的性能测试 73 14.1.1 性能测试的含义 73 14.1.2 性能测试的分解 73 14.2 一个性能测试实例 74 14.2.1 被测系统 74 14.2.2 对被测系统进行性能...

    软件测试必看 入门级的教程

    十四 性能测试原理及性能测试实例分析 73 14.1 软件测试中的性能测试 73 14.1.1 性能测试的含义 73 14.1.2 性能测试的分解 73 14.2 一个性能测试实例 74 14.2.1 被测系统 74 14.2.2 对被测系统进行性能...

    软件工程与软件测试自动化教程

    第16章 软件自动化测试实例分析 16. 1 一个测试覆盖自动化度量分析实例 16. 1. 1 示例程序 16. 1. 2 运行前的初始状态 16. 1. 3 第一组测试用例执行 16. 1. 4 第二组测试用例执行 16. 1. 5 第三组测试用例...

    软件工程完整ppt

     732黑盒测试法与白盒测试法  74软件测试用例的设计  741白盒技术  742黑盒技术  75软件测试过程  751单元测试  752集成测试  753确认测试  754系统测试  76调试  761调试的目的  762调试技术  77习题...

    计算机二级公共基础知识

    在先左后右的原则下,根据访问根结点的次序,二叉树的遍历分为三类:前序遍历、中序遍历和后序遍历。 (1)前序遍历 先访问根结点,然后遍历左子树,最后遍历右子树;并且在遍历左、右子树时,仍需先访问根结点,...

    软件工程知识点

    它包含:软件定义、软件开发、软件运行维护三个时期,并可以细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统集成测试、系统确认验证、系统运行与维护等几个阶段。 软件定义...

    软件工程—实践者的研究方法

    ·如何使用黑盒和白盒测试方法来设计有效的测试用例? ·软件测试的策略是什么? ·什么技术度量可用于评估分析和设计模型、源代码、以及测试用例? 一旦这些问题得到回答,你将了解如何使用严格的工程方法去建造...

    计算机基础与程序设计知识点.docx

    用作软件需求分析工具的是数据流图 计算机基础与程序设计知识点全文共9页,当前为第3页。 计算机基础与程序设计知识点全文共9页,当前为第3页。 软件测试的目的是尽可能的发现软件系统中的错误. 一个字节是由8个二...

Global site tag (gtag.js) - Google Analytics