基础概念:http://blogs.msdn.com/b/sechina/archive/2009/12/28/test.aspx

在线教程:http://blogs.msdn.com/b/sechina/archive/2010/04/20/spec.aspx

最近需要用这个工具进行E2E的functional test所以在学习这个工具Spec Explorer.
资源
团队博客 http://blogs.msdn.com/b/sechina/
MSDN http://msdn.microsoft.com/zh-cn/library/ee620518.aspx 
cnblog http://www.cnblogs.com/stbchina/archive/2009/11/11/spec-explorer-blog-in-Chinese.html
较详细介绍 http://webservices.ctocio.com.cn/103/11618103.shtml
安装:Spec Explorer 2010 Visual Studio Power Tool - 这个tool是升级版的可以使用在VS2012上
http://visualstudiogallery.msdn.microsoft.com/271d0904-f178-4ce9-956b-d9bfa4902745/
Reference: Microsoft.SpecExplorer.ObjectModel 这个assembly。
命名空间:Microsoft.SpecExplorer.ObjectModel
E2E现在根据大神的介绍我大概有了一下概念,

1. 创建状态机:

Config.cord: 使用Cord语言描述状态机的配置用例信息。在一个项目中有一个Config.cord文件,用户可以在文件里面创建若干套组合。这个组合可以用来创建测试用例。一个项目中可以有多个Config.cord文件,这个东西相当于一个cs文件。
Config.cord文件结构:
             引用:
             配置信息: config Main;包括测试用例文件创建路径。如果项目中只有一个cord文件并且其中只有一个组合,每次生成测试用例都会覆盖之前生成的测试用例。
             状态机: 状态机包含多个,分两种,一种是为了表示不同的业务逻辑,一种是为了创建测试用例。
                    表示业务逻辑: machine Model() : Actions where ForExploration = true 包括表示单独业务逻辑的状态机以及复杂业务逻辑的状态机。单独业务逻辑的状态机可以调用项目中写的
             测试用例 machine TestSuiteLong() : Main where ForExploration = true, TestEnabled = true,用来创建测试用例的

Model.cs: 配合Config.cord生成状态图

|:或的关系
+:加一循环,自循环
;:下一步顺序的关系

2. 创建模型

3. 创建测试用例

http://msdn.microsoft.com/en-us/library/ee620427.aspx

TestCases Construct 中的 ShortTests 和LongTests的区别

无论是ShortTests还是LongTests都是以初始状态为起点以接受状态为终点生成一个或多个Test case.

ShortTests只要起点和终点之间包含至少一个还没有被测试的状态转移即可,
LongTests要求起点和终点之间包含尽量多的状态转移

两种策略都保证每一步至少都至少在其中一个testcase里覆盖至少一次?

ShortTests倾向于短而多的testcase
LongTests倾向于长而少的testcase

哪种更好?需要根据不同情况而定。两种策略都可以保证对所有路径的全覆盖。在具体实践中用ShortTests的时候比较多,因为这样可以快速得出测试结果,发现问题也比较快。ShortTests不容易发现在需要多次迭代后才出现的问题,这个是LongTests的优势。

假设有一个模型,初始状态和接受状态都是S0, 这中间有两条不交叉的路径可以从S0出去再回到S0,ShortTests就是会创建两条用例,分别描述每一条路径。Longtests则会串联两条路径生成一条经过S0三次的test case

strategy=”LongTests”

4. 运行测试用例

 

其他:
1. 连续运行超过40分钟就会挂
2. 产品不会继续升级,非常幸运能找到与vs12 兼容的版本,但是将来不好说。
3. 还有其他的test framework也可以用来做On the fly testing, 比如说TAEF http://msdn.microsoft.com/en-us/library/windows/hardware/hh439725(v=vs.85).aspx

Spec Explorer 工具学习的更多相关文章

  1. Git版本控制工具学习

    Git代码管理工具学习 分布式管理工具:git 相比较svn它更加的方便,基本上我们的操作都是在本地进行的. Git文件的三种状态:已提交,已修改,以暂存. 已提交:表示文件已经被保存到本地数据库. ...

  2. sql server 内置ETL工具学习(一) BCP篇

    sql server 内置ETL工具学习 常用的导入方式:bcp, BULK INSERT,OPENROWSET和 SSIS. BCP BCP全称BULK COPY PROGRAM 有以下特点: 命令 ...

  3. linux 工具学习网站

    推荐一个很不错的linux工具学习网站; 对于一个开发人员来说,我觉得掌握这些工具对于基于linux的应用开发来说事半功倍. http://linuxtools-rst.readthedocs.io/ ...

  4. [原创]Jmeter工具学习思维导图

    [原创]Jmeter工具学习思维导图

  5. [转] 用协议分析工具学习TCP/IP

    一.前言 目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天.目前号称搞网的 ...

  6. 第八模块:算法&设计模式、企业应用 第2章 企业应用工具学习

    第八模块:算法&设计模式.企业应用 第2章 企业应用工具学习

  7. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  8. webpack前端构建工具学习总结(二)之loader的使用

    Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换. Loader 可以理解为是模块和资源的转换器,它本身是一个函数,接受源文件作为 ...

  9. webpack前端构建工具学习总结(四)之自动化生成项目中的html页面

    接续上文:webpack前端构建工具学习总结(三)之webpack.config.js配置文件 插件的介绍文档:https://www.npmjs.com/package/html-webpack-p ...

随机推荐

  1. Web service--百度百科

    Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布 ...

  2. android Menory 小结

    不建议在Activity中使用static 变量,考虑使用Application.当然,static final例外 但Application也不要cache某个Activity使用的View,如果c ...

  3. Redis 3.2.8 集群模式+Sentinel多Master部署

    环境准备CentOS 7.3redis1 172.18.1.101:7001 masterredis2 172.18.1.102:7002 masterredis3 172.18.1.103:7003 ...

  4. nginx只允许域名访问,禁止ip访问

    背景:为什么要禁止ip访问页面呢?这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生. 解决方法:这里介绍修改配置文 ...

  5. Cookie的增删改查

    增加: 第一种方法:Response.Cookies[“UserName”].Value=”张三” Response.Cookies[“UserName”].Expires=DateTime.Now. ...

  6. Java 8 日期时间API使用介绍

    如何正确处理时间 现实生活的世界里,时间是不断向前的,如果向前追溯时间的起点,可能是宇宙出生时,又或是是宇宙出现之前, 但肯定是我们目前无法找到的,我们不知道现在距离时间原点的精确距离.所以我们要表示 ...

  7. Unix 环境高级编程

    UNIX 环境高级编程 本书描述了UNIX系统的程序设计接口--系统调用接口和标准C库提供的很多函数. 与大多数操作系统一样,Unix为程序员运行提供了大量的服务--打开文件,读文件,启动一个新程序, ...

  8. oracle命令登录数据库

    sqlplus aa/aa@jdbc:oracle:thin:@10.200.130.111:1521:nbact 或者 sqlplus aa/aa@nbact

  9. oracle 数据查询

    1,读取从今天到1个月前之间的数据select * from tablewhere column between add_months(sysdate, -1) and sysdate;

  10. Introdution to Spring Mobile

    1. In Eclipse, create a new Maven Project using the spring-mvc-jpa-archetype. 2. Add the spring-mobi ...