`
yangshen998
  • 浏览: 1248289 次
文章分类
社区版块
存档分类
最新评论

没有输入参数的接口函数如何设计测试用例?

 
阅读更多

对于函数测试来说,一个用例,就是设定输入,执行程序,判断输出是否符合预期。
可能输入包括:参数、需读的成员变量、需读的全局变量、内部输入(调用子函数获得的输入);
可能输出包括:返回值、输出参数、被写的成员变量、被写的全局变量,内部输出(在程序执行过程中判断的中间输出)、动作(例如需判断程序在某种输入下是否调用了某个函数)。
简单来说,输入就是程序执行前或执行过程中读取的外部数据,输出就是程序所改写的数据。
了解了这些,就不会对没有参数、没有返回值如何测试产生疑问了。

测试没有参数的函数,它可能还有别的输入,例如全局变量,成员变量,或调用子函数获得的输入(这个要使用工具才能做到),只要函数需读取的,都应该设定初始值,如果完全没有,没有输入也是一种输入,照样测试就是了。 同样道理,输出也不仅仅是返回值,没有返回值还可能修改了全局变量什么的,这些也是要判断的输出。

但是,单元测试应该测试哪些比较复杂的程序,而不是只测试接口。对于只是读写一两个数据的接口,没什么好测试的,例如“DWORD GetInterfaceVersion ();//获取解码器版本号”,应该只是读取一个全局变量并返回,没有什么测试意义,要测的话,先设定那个全局变量的值,也一样测试,例如:
输入:SetInterfaceVersion (1234); //调用其他函数完成初始化,这个是外部输入,不是内部输入。
输出:ASSERT(GetInterfaceVersion () == 1234);
不过这样做没什么意义。

分享到:
评论

相关推荐

    计算机二级公共基础知识

    在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个结点既没有左子树也没有右子树时,该结点即为叶子结点。 例如,一个家族中的族谱关系如图1-1所示: A有后代B,C;B有后代D,...

    软件工程知识点

    结构化设计中的函数、过程,面向对象设计中的类、对象,它们都是模块。概要设计时并不需要说明模块的内部细节,但是需要进行全部的有关它们构造的定义,包括功能特征、数据特征和接口等。 在进行概要设计时,模块的...

    多媒体数据库管理系统探讨(1).doc

    动态测试是实际运行被测程序,输入相应的测试 用例,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性。动态测 试的两种主要方法是黑盒测试和白盒测试。 程序测试是对编码阶段的语法错、语义错、...

    [原创]自己工作中常用的模板库,简化你的工作

    下载这个库后,使用VS打开.\CodeLib\testcase\TestCodeLib\TestCodeLib.sln,直接按F5启动,即可以看到许多单元测试的用法/测试用例的输出。 如果需要使用某功能,可以参考其对应的测试代码的用法。(每个功能文件.\...

    华为编程开发规范与案例

    接口类问题(B类)-指设计、编码中出现的函数和环境、其他函数、全局/局部变量或数据变量之间的数据/控制传输不匹配的问题,在系统中起重要作用,将导致模块间配合失效等严重问题; 维护类问题(C类)-指设计、...

    asp.net知识库

    泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-extern C#2.0-可空类型 C#2.0-分部类 C#2.0-迭代器 C#2.0 的新增功能学习 泛型的序列化问题 .NET 2.0 ...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    5.2.3函数参数的传递 5.2.4认识函数重载 5.3认识构造函数 5.3.1为什么需要构造函数 5.3.2如何定义和使用构造函数 5.4静态变量和静态函数 5.4.1为什么需要静态变量 5.4.2静态变量的常见应用 5.4.3认识静态...

    flex3的cookbook书籍完整版dpf(包含目录)

    测试用例之间共享测试数据 24.7节. 处理测试用例事件 24.8节. 用FlexUnit测试可视化组件 24.9节. 安装和配置Antennae 24.10节. 生成自动测试集 第二十五章. 编译与调试(772) 25.1节. 在Flex Builder外使用Trace...

    Python编程入门经典

    12.2 测试用例和测试套件 195 12.3 测试装置 198 12.4 用极限编程整合 201 12.4.1 用Python实现搜索实用 程序 202 12.4.2 一个更加强大的Python 搜索 207 12.5 软件生命周期中的正规 测试 210 12.6 本章小结 210 第...

    软件工程-理论与实践(许家珆)习题答案

    ● 测试(发现并改正错误,分为模块测试、集成测试和系统联调三级); ● 运行维护(扩充功能、纠错等)。 习题二答案 一、 选择题 1. 需求分析的主要目的是(B C)。 A) 系统开发的具体方案 B) 进一步确定用户的...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    CruiseYoung提供的带有详细书签的电子书籍目录 ... 该资料是《Oracle SQL高级编程》的源代码 ... 15.1 测试用例 416 15.2 测试方法 417 15.3 单元测试 418 15.4 回归测试 422 15.5 模式修改 422 15.6...

    Hibernate实战(第2版 中文高清版)

     8.2.2 整合存储过程和函数   8.3 改进Schema DDL   8.3.1 定制SQL名称和数据类型   8.3.2 确保数据一致性   8.3.3 添加领域约束和列约束   8.3.4 表级约束   8.3.5 数据库约束   8.3.6 创建索引  ...

    真实世界的Python仪器监控 数据采集与控制系统自动化

    电子测试仪器...........................................................9 实验室仪器..............................................................11 过程控制...............................................

Global site tag (gtag.js) - Google Analytics