vs2012 C# 黑盒测试,白盒测试,UI测试

在解决方案中点新建测试,然后选择单元测试,进行黑盒测试以及白盒测试。

对单元测试中的进行输入输出测试:本来想实现测试模拟输入输出,但是,测试一个函数,函数内部的内部输入不是一件简单的事。而网上的一些oj的做法应该是直接模拟运行程序,再模拟输入,我的猜测。所以我们进行的单元测试,不能直接去模拟输入输出,所以,测试单元应该是不包含内部输入的代码块。

黑盒测试是在不知道测试代码的内容的情况下,以用户的角度,从输入数据到输出数据的对应关系出发进行测试的。如果外部特性设计本身有问题,或规格说明的规定有误,用黑盒测试是发现不了的。

黑盒测试中 等价类 就是 应得到某个相同输出的输入的集合。黑盒测试时,划分边界类,并按照边界值去设置较好的用例,用例的取值位于判断的边界值的两边和边界值,这三个值。然后由此得到的用例是比较合理的。

黑盒测试注重测试软件的功能需求。主要用来发现:功能不正确或遗漏,界面错误,输入输出错误,性能错误等错误。黑盒测试 无法知道测试代码的全部细节,所以,无法对代码的完全覆盖。

白盒测试是在知道全部代码的结构和逻辑的情况下,根据代码的结构去测试程序。

白盒测试有:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖和路径覆盖。6种覆盖标准,覆盖的程度也是递增。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。

白盒测试可以做到检测代码的每条分支和路径,会对规格内的输入进行准确的判断,可靠性较高。但即使测试了每条路径,但由于用例并没有如黑盒测试一样去选取边界值,对于一些特殊的值可能仍会有错误,但是,却无法测试到。如果程序本身就是错误的,按照路径去测试,不一定能测试出来。

在vs2012中 新建一个单元测试的过程:

在解决方案中添加新的项目:



在c#中选择单元测试:


生成后对于C#中,要去添加引用,使测试可以调用 待测试代码。当然也可以不引用,直接把代码贴到测试代码中,直接使用。



选择 解决方案 ,然后选 待测试的解决方案



最后,在代码中加using namespace 就可以了,但是C#中命名空间,跟c++不一样,在c++中命名空间就全部是公用的,可以随便使用,没有私有这个概念。c#的命名空间成员默认是private,要引用,必须声明是public。java也应该类似吧。

然后就可以写测试代码了。

测试代码的一些语法:

对于测试类,在前面用[TestClass]来声明其是测试类。 


同理,对于测试方法,要在之前用[TestMethod]来声明是测试方法。



Assert类,断言类,用来判断测试所得到的结果是否正确。

Assert.Inconclusive() 表示一个未验证的测试;

Assert.AreEqual() 测试指定的值是否相等,如果相等,则测试通过;

Assert.AreSame() 用于验证指定的两个对象变量是指向相同的对象,否则认为是错误

Assert.AreNotSame() 用于验证指定的两个对象变量是指向不同的对象,否则认为是错误

Assert.IsTrue() 测试指定的条件是否为True,如果为True,则测试通过;

Assert.IsFalse() 测试指定的条件是否为False,如果为False,则测试通过;

Assert.IsNull() 测试指定的对象是否为空引用,如果为空,则测试通过;

Assert.IsNotNull() 测试指定的对象是否为非空,如果不为空,则测试通过;

通过这些断言则会显示测试通过,不通过,则会显示出错的细节。


UI测试:

vs2012中的编码的UI测试,其实就是在录制操作,然后有vs2012来实现这些操作,同时,判断断言是否通过。具体过程

添加带编码的ui测试



然后在用例测试函数中,点右键,然后选择添加使用编码的ui测试生成器,来使用工具生成ui测试。


在ui测试生成器中,有四个按钮,开始录制,查看操作过程,添加断言,生成代码。



录制一段操作后,就可以点生成代码,生成操作编码,查看编码,可以发现操作的实现具体过程:



若要添加断言,选择断言判断的控件后,选择控件中的属性来进行断言,



输入断言内容,然后点生成代码,就在测试代码中写入对应的断言方法了。



完成后。测试UI测试时,由于这些编码的只是记录了你的操作,但是没有智能化到先帮你打开程序,然后帮你进行ui测试。当然,你可以录下双击测试程序,开始测试的操作,所以,为了这样,你要把程序放在桌面上,方便随时使用。也可以,点进行测试之前,要自己手动的去打开需要测试的程序。

UI测试没有多少需要注意的地方,而且,ui也不应该是一个程序侧重的地点。而且,ui测试可以直接的对源程序进行调试即可,暂时我感觉,效率比ui测试高很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值