VS2010-单元测试入门.pptx
文本预览下载声明
Visual Studio 2010 单元测试入门;2;按开发阶段分
单元测试、集成测试、系统测试、验收测试
按测试技术分
白盒测试、黑盒测试、灰盒测试
按实施主体分
开发方测试、用户测试、第三方测试
按执行状态分
动态测试、静态测试;它浪费了太多的时间?
它仅仅是证明这些代码做了什么?
不管怎样, 系统测试将会抓住所有的Bug?
成本效率不高?
;1.不要让你的客户发现令人尴尬的bug。编写单元测试能让你覆盖大部分的应用案例,并且发现常见的问题。
2.感觉更安全。通过反复的测试,你在添加新功能的时候不会影响程序已有的功能。
3.避免写不必要的代码。这样可以让代码更简洁,更容易维护,同时也节省开发时间。
4.具有回归性。你不用为相同的代码重复的进行测试。
5.保证代码的可读性。单元测试能让你代码的目的性和逻辑性更容易被理解。
6.保证代码的可维护性。单元测试能强制让你对功能进行封装。
7.无忧的进行重构。在你重构以后,跑一遍测试,你就知道重构是否对程序的功能造成了破坏。
8.节省测试的时间。测试是自动进行的,速度的快慢取决于你的CPU。;Visual Studio 2010 测试架构;白盒测试-基于源代码的测试方法
静态方法:代码走查
动态方法:生成测试用例,驱动程序运行;示例代码;类;自动化测试:; using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class TestClass1
{
// 执行该类别中第一项测试前,使用 ClassInitialize 执行程序代码
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
// 在类别中的所有测试执行后,使用 ClassCleanup 执行程序代码
// [ClassCleanup()]
// public static void MyClassCleanup() { }
[TestMethod]
public void TestMethod1()
{
// 在此加入测试逻辑
}
};针对Search类建立测试类SearchTest,标记为[TestClass]
针对BubbleSort方法建立测试方法BubbleSortTest,标记为[TestMethod]
一个测试用例主要包括输入参数和输出结果,以及实际输出结果和预计结果的比较;AreEqual 验证指定的两个对象是否相等
AreEqualT验证两个泛型资料是否相等
AreNotEqual验证指定的两个对象是否不相等
AreNotEqualT验证两个泛型资料是否不相等
AreNotSame验证两个对象变量是否引用不同对象
AreSame验证两个对象变量是否引用相同对象
IsFalse验证指定的条件是否为false
IsTrue 验证指定的条件是否为true
IsNotNull 验证指定的对象是否不为Nothing
IsNull 验证指定的对象是否为Nothing;通过“测试”菜单进入“测试清单编辑器”
选择测试名称,点击“执行核取的测试”按钮,执行测试。
单元测试过程同样可以单步调试。
;测试用例执行的同时会显示“测试结果”
测试结果分“成功”和“失败”两种。
失败1:测试方法 BinarySearchTest 掷回例外状况: ...
失败1:Assert.AreEqual 失败。预期: 1。实际: -1;语句覆盖
每条语句至少被执行一次
判定覆盖
每个while/if判定条件取得True/False值一次
条件覆盖
每个布尔表达式均取得True/False值一次
完全的条件覆盖不能保证完全的判定覆盖
条件判定组合覆盖
判定覆盖和条件覆盖的组合
路径覆盖
所有可能的路径均被执行
;首先在菜单“测试”中选择“编辑测试设定”,如右图:
勾选“程序代码涵盖范围”,点击“设定”。勾选要测试的成品,如右图:;Visual Studio自动计算的测试覆盖为语句覆盖;单元测试针对局部代码,功能测试可能针对整体系统系统
与本程序相关的其他程序还没有完成。
有些模块是用户不可见的
单元测试无法测非功能性要求,功能测试难以满足足够的条件
单元测试目的在于确认代码是否满足设计要求,功能测试目的在于确认系统是否满足用户需求
程序是否按照设计的架构要求来编写,如数据访问?
同样的功能可以有不同的设计
显示全部