单元测试概述

盖种测试
        1.语句覆盖:语句覆盖是几个测试用例的设计,通过测试程序运行。使每一个可以运行的语句至少运行一次。
        2.判定覆盖(也叫分支覆盖):设计若干个測试用例。运行所測程序,使程序中每一个推断的取真分支和取假分支至少运行一次。


        3.条件覆盖:设计足够的測试用例,运行所測程序。使程序中每一个推断的每一个条件的每一个可能取值至少运行一次。
        4.判定——条件覆盖:设计足够的測试用例,运行所測程序,使程序中每一个推断的每一个条件的每一个可能取值至少运行一次。而且每一个可能的推断结果也至少运行一次。


        5.条件组合測试:设计足够的測试用例,运行所測程序,使程序中每一个推断的全部条件取值组合至少运行一次。


        6.路径測试:设计足够的測试用例,运行所測程序。要覆盖程序中全部可能的路径。
        用例的设计方案基本的有以下几种:条件測试,基本路径測试,循环測试。通过上面的方法能够实现測试用例对程序的逻辑覆盖。和路径覆盖。

測试的目的是检查程序的行为是否符合设计规格。程序的行为就是某种输入时会产生什么输出,因此,一个典型的測试用例完毕下面工作:设定输入数据、执行程序、验证输出是否符合预期。

函数的输入数据一般包含:
A、參数;
B、成员变量。仅仅考虑函数须要读取的成员变量;
C、全局变量,仅仅考虑函数须要读取的全局变量;
以上三项。当涉及到复杂数据类型时。仅仅考虑函数须要读取的域。比如,一个结构对象。有十个域。而函数仅仅读取当中一个域。则不必考虑其它九个域。
D、其它数据。如函数须要读取文件或数据库中的数据,则要先在文件或数据库中设置好这些数据。

显然。全部可能输入都进行測试。既不可能也无意义,我们应该用一定的规则选择有代表性的数据作为输入。输入可分为三大类:正常输入,边界输入。非法输入,每大类还可再分为若干小类,划分小类的根据是:同一小类中每一个数据都具有等价的測试效果。也就是说。小类中取任取一个数据作为输入,假设測试通过,能够肯定同小类的其它输入也能够測试通过。这就是寻常说的“等价类法”。



正常输入

比如字符串的Trim函数,功能是将字符串前后的空格去除。那么正常的输入能够有四类:
前面有空格;
后面有空格;
前后均有空格;
前后均无空格。

边界输入
上例中空字符串能够看作是边界输入。
再如一个表示年龄的參数,它的有效范围是0-100。那么边界输入有两个:0和100。

非正常输入
垃圾数据或使代码不能完毕正常功能的数据。如一个文件操作的函数,非正常输入有这么几类:
文件不存在。
文件夹不存在。
文件正在被其它程序打开;
权限错误。

预期输出
一个完整的測试用例应该有预期输出。预期输出就是程序执行后的预期结果。通常表如今对某些数据的改动,即预期输出要自己主动推断程序所改写的数据的结果值是否符合预期。

程序可能改动的数据包含:
A、返回值;
B、输出參数;
C、成员变量,仅仅考虑函数所改写的成员变量;
D、全局变量。仅仅考虑函数所改写的全局变量;
以上四项,当涉及到复杂数据类型时,仅仅考虑函数所改写的域,比如,一个结构对象,有十个域,而函数仅仅改写了当中一个域。则不必考虑其它九个域。
E、其它数据,如函数改写文件或数据库中的数据。也是一种输出,只是通常难于自己主动推断是否符合预期,可用人工查看来取代。

 
 

Test Case Template

 

┏━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
用例编号     │     BOSS_ FS_ MARKETING_NEW_01P               
┠──────┼───────────────────────────┨
測试优先级  高(还有较高、中、较低、低几个等级)             
┠──────┼───────────────────────────┨
用例摘要    新增营销记录                     
┠──────┼───────────────────────────┨
測试类型    功能性測试(相应还有安全性測试等)                       
┠──────┼───────────────────────────┨
用例类型    基本事件(相应还有备选事件异常事件)                    
┠──────┼───────────────────────────┨
用例设计者  songfun                                                    
┠──────┼───────────────────────────
设计日期    2005-04-25                                                 
┠──────┼───────────────────────────┨
相应需求编号REQ_ MARKETING_NEW_01                            
┠──────┼───────────────────────────┨
相应UI       Marketing.htm                                               
┠──────┼───────────────────────────┨
相应UC     UC_ MARKETING_NEW_01                              
┠──────┼───────────────────────────┨
版本      Build v0.1                                                    
┠──────┼───────────────────────────┨
相应开发者Frank                                                       
┠──────┼───────────────────────────┨
前置条件    操作员登录营销管理系统                                     
┠──────┼───────────────────────────┨
測试方法    等价类划分(相应还有错误推測法边界值分析等)           
┠──────┼───────────────────────────┨
输入数据     username:51testing 性别:男金额:10描写叙述:aaaaaaa             
┠──────┼───────────────────────────┨
运行步骤    .进入【营销下发】页面。                                        
             .点击『添加』button。                                            
             .输入相应数据;                                            
             .点击『确定』button;                                            ┃ 
             .在后台数据库(test/test@testDB)输入查询语句验证:        
               select * from MarketingTab where ID='1001'                 
                                                                          
┠──────┼───────────────────────────
预期输出    .运行步骤后,页面弹出加入成功提示信息框;               
             .运行步骤后查询数据库,记录确实加入成功且数据无误   
                                                                          
┠──────┼───────────────────────────┨
实际结果     符合预期                                                   
┠──────┼───────────────────────────┨
測试日期    2005-05-01                                                 
┠──────┼───────────────────────────┨
结论                                                                      
┗━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
測试用例制定的原则

 

測试用例要包含欲測试的功能、应输入的数据和预期的输出结果。

測试数据应该选用少量、高效的測试数据进行尽可能完备的測试;基本目标是:设计一组发现某个错误或某类错误的測试数据。測试用例应覆盖方面:

 

1、    正确性測试:输入用户实际数据以验证系统是满足需求规格说明书的要求;測试用 例中的測试点应首先保证要至少覆盖需求规格说明书中的各项功能,而且正常。

 

 

2、    容错性(健壮性)測试:程序可以接收正确数据输入而且产生正确(预期)的输出, 输入非法数据(非法类型、不符合要求的数据、溢出数据等)。程序应能给出提示

 

并进行对应处理。把自己想象成一名对产品操作一点也不懂的客户。在进行随意操作。

 

 

3、    完整(安全)性測试:对未经授权的人使用软件系统或数据的企图,系统可以控制的程度,程序的数据处理可以保持外部信息(数据库或文件)的完整。

 

4、    接口间測试:測试各个模块相互间的协调和通信情况。数据输入输出的一致性和正确性。

 

5、    数据库測试:根据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行測试。

 

6、 边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在測试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。

 

7、 压力測试:输入10条记录执行各个功能,输入30条记录执行,输入50条记录运行。。。

进行測试。

 

8、等价划分:将全部可能的输入数据(有效的和无效的)划分成若干个等价类。

 

9、错误猜測:主要是依据測试经验和直觉,參照以往的软件系统出现错误之处。

 

10、效率:完毕预定的功能,系统的执行时间(主要是针对数据库而言)。

 

11、可理解(操作)性:理解和使用该系统的难易程度(界面友好性)。

 

12、可移植性:在不同操作系统及硬件配置情况下的执行性。

 

13、回归測试:依照測试用例将全部的測试点測试完成。測试中发现的问题开发者 已经解决,进行下一轮的測试。

 

 

14、比較測试:将已经发版的相似产品或原有的老产品与測试的产品同一时候执行比較。或与已往的測试结果比較

 

说明:针对不同的測试类型和測试阶段,測试用例编写的側重点有所不同。

 

1、  当中第1、2、6、8、9、13项为模块(组件、控件)測试、组合(集成)測试、系统測试都涉及并重点測试的方面。

 

2、  单元(模块)測试(组件、控件)測试:重点測试第5项。

 

3、  组合(集成)測试:重点进行接口间数据输入及逻辑的測试,即第4项。

 

4、  系统測试:重点測试第3、7、10、11、12、14项。

 

5、  当中压力測试和可移植性測试假设是公司的系列产品,能够选用当中有代表性的产品进行一次代表性測试就可以。

 

6、  GMPS基础測试用例设计完毕后,其它的測试项目仅仅编写设计与之不同部分的測试用例。

 

7、  对于每一个測试项目測试的測试用例不是一成不变的,随着測试经验的积累或在測试其它项目发现有測试不充分的測试点时。能够不断的补充完好測试项目的測试用例。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JQuery官方学习资料(译):遍历JQuery对象和非JQuery对象

JQuery提供了一个对象遍历的Utility方法$.each()和一个JQuery集合遍历方法.each()。$.each()$.each()是一个通用的方法用来遍历对象和数组,Plain对象是通过其命名属性进行遍历的。$.each()可以用来替换传统的for和for-in循环。var sum 0;var arr [ 1, 2, 3, 4, 5 …

【STC15库函数上手笔记】8、比较器

目录库函数compare.ccompare.hSTC15Fxxxx.H测试程序main.cSTC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 库函数 比较器的库函数仅在官方例程中发现,未与其他库函数放在一起,笔者也未对其进行测试&…

WIN10 下 PHP7 中文乱码的解决办法

在数据提交前,插入语句 mysqli_set_charset($conn,utf8);

不会几个框架,都不好意思说搞过前端: Vue.js - 60分钟快速入门

Vue.js——60分钟快速入门 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用Vue.js。 本文摘自:http://www…

指针以及内存分配

原文:http://blog.csdn.net/bizhu12/article/details/6532235 1. 指针很灵活,这使得指针很难管理,在定义指针时,将在栈中开辟一块内存存放指针的地址(栈内的内存由系统分配和释放),指针的地址内存只是存放指针的地址,不存放指针指向的数据,值得注意的是,定义指针时指…

建议11: 区别对待==和Equals

建议11: 区别对待和Equals在开始本建议之前,首先要明确概念“相等性”。CLR中将“相等性”分为两类:“值相等性”和“引用相等性”。如果用来比较的两个变量所包含的数值相等,那么将其定义为“值相等性”;如果比较的两…

mysql如何修改开启允许远程连接

关于mysql远程连接的问题,大家在公司工作中,经常会遇到mysql数据库存储于某个人的电脑上,大家要想连接mysql服务,装有mysql服务的电脑就必须开启远程连接 第一步,用dos连接上你的数据库,(我这里…

Objective-C马路成魔【14-关键C语言功能】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主。捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 这里介绍一些特性&#x…

Solidworks如何自动打开和关闭特征识别FeatureWorks

如果直接对已有的零件识别特征,可能会报错 删除多余的特征,先只保留一个输入(注意没有必要连草图也删掉,草图不会影响识别特征,你识别完了之后草图再接着该拉伸拉伸,该切除切除),然后…

SPI驱动0.96/1.3寸 OLED屏幕,易修改为DMA控制

目录OLED SPI 端口定义七针OLED引脚定义六针OLED引脚定义驱动程序oled.coled.holedfont.h使用main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 DMA控制见【0.96寸 OLED屏实现1500Fps的帧率】STM32 软件、硬件SPI、…

分享网页到微信朋友圈的官方接口

看到 JiaThis 增加了微信分享的按钮,查看了下网络请求,是官方提供的接口,不过官方文档还没有这方面的信息。这个接口应该是合作测试中的,不排除以后会更改或者停用。 目前分享到微信朋友圈不同于通常的分享,需要先向微…

WordPress PHP Fatal Error “Maximum execution time of 30 seconds exceeded” 的解决办法

修改Wp-config.php 在wp-config.php中增加一行,注意在/* That’s all, stop editing! Happy blogging. */”这一行之前加入: set_time_limit(60); https://blog.csdn.net/cnpinpai/article/details/84575015

上传图片在页面上显示

看了别人写的 自己照着写了一下 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()"…

Codeforces Round #307 (Div. 2) A. GukiZ and Contest 水题

A. GukiZ and Contest Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/551/problem/A Description Professor GukiZ likes programming contests. He especially likes to rate his students on the contests he prepares. Now, he has deci…

提高你的Java代码质量吧:使用valueof前必须进行校验

一、分析 每个枚举都是java.lang.Enum的子类&#xff0c;都可以访问Enum类提供的方法&#xff0c;比如hashCode、name、valueOf等&#xff0c;其中valueOf方法会把一个String类型的名称转变成枚举项&#xff0c;也就是在枚举项中查找字面值和该参数相等的枚举项。 我们来深入…

【STC15库函数上手笔记】9、硬件SPI

目录硬件知识库函数spi.cspi.h测试main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬件知识 摘自《STC15系列单片机器件手册》 STC15系列单片机还提供另一种高速串行通信接口——SPI接口。SPI是一种全双工…

中介者模式分析、结构图及基本代码

&#xfeff;&#xfeff;定义&#xff1a;用一个中介对象来封装一系列的对象交互。中介者使各对象不须要显式地相互引用。从而使其耦合松散&#xff0c;并且能够独立地改变它们之间的交互。适用地方&#xff1a;中介者模式一般应用于一组对象以定义良好可是复杂的方式进行通信…

WordPress 数据库结构及表字段作用解析

对于WordPress的开发可以说子凡已经是如痴如醉了&#xff0c;通过 WordPress 本身的开放性接口可以做到很多的事情&#xff0c;但是有些时候我们可能更喜欢直接查询数据库来实现某些 WordPress 没有提供的函数来实现目的&#xff0c;所以这时候我们就需要对WordPress 数据库的结…

硬件负载均衡设备介绍

最常用是F5 与citrix netscaler 负载均衡分全局负载均衡和本地负载均衡。 地负载均衡是指对本地的服务器群做负载均衡&#xff0c;全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。 循环DNS 就是每次解析域名时指向IP loop list 里的下一个…

【STC15库函数上手笔记】10、EEPROM

目录硬件知识基本介绍软件知识EEPROM多字节读函数EEPROM多字节写函数EEPROM扇区擦除函数函数测试main.c实验现象STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬件知识 基本介绍 摘自《STC15系列单片机器件手册》 STC…