集成电路组装测试框架testing 是组装测试场景有几种方式

更多公众号:gh_6ad2807a4aad主要介绍互联网技术,研发管理,前沿科技动态;码农的日常等。提供软件、硬件的介绍和一些运营管理知识等。最新文章相关作者文章搜狗:感谢您阅读也来谈一谈集成测试 本文版权归原作者所有,本文由网友投递产生,如有侵权请联系 ,会第一时间为您处理删除。查看: 839|回复: 10
如题,请热心的坛友帮帮忙.
炊烟的味道
自顶向下集成测试 自顶向下集成(Top-Down Integration)方式是一个递增的组装软件结构的方法。从主控模块(主程序)开始沿控制层向下移动,把模块一一组合起来。分两种方法: 第一:先深度:按照结构,用一条主控制路径将所有模块组合起来; 第二:先宽度:逐层组合所有下属模块,在每一层水平地 集成测试 沿着移动。 ...
UT = unit testing 单元测试 IT = integration testing 集成测试 ST = system testing 系统测试 UAT= User acceptance testing 用户接受测试(俗称:验收测试)
扪心自问心
单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践...
妹妹好好美
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
不可以,软件的开发也是从小的模块开始,不可能没有模块就开始集成,后来才打包成一个软件,形成一个系统。 单元测试是测试各个小的模块,通过对他们的测试,才能找出基本的bug,然后为各个模块搭建接口,也就是把模块组装起来,之后进行集成测试,看各个模块的接口是否正常稳定,打包成软件后,先做出一个demo版本,由...
一米的天堂
在软件测试过程中,通常是分两个阶段的。 因为我们知道,一个软件的开发,很可能是由多个程序员共同完成的,每人只做其中的一部分。 所以,在测试的时候,首先要以各个功能模块为单位,进行基本的功能测试; 完成这一阶段(单元测试)后,还要把各个模块连接起来形成一个完整的软件系统,对整个系统进行的测试,就是集成...
单元测试,就是单独一部分功能是否实现 模块集成测试,就是这个子功能是否实现 系统集成测试就是子功能合成后,能否一个一个进入到不同的子功能里去 系统测试,我感觉是性能、兼容这些
裸奔的蚂蚁一家
单元测试侧重测试该模块里的每一个功能,需要特别详细,细到每一个输入框、每一个按钮、每一个链接等等;而集成测试侧重测试模块与模块之间能否连续的完成整个系统的主要功能流程。
黑盒测试主要是为了发现以下几类错误: 1)是否有不...(常见的联调测试) 系统测试的目的是对最终软件系统...经集成测试后,已经按照设计把所有的模块组装成一个...单元测试 集成测试 系统测试
我的图书馆
单元测试 集成测试 系统测试
单元,是集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。&& 单元测试
单元测试又称模块测试,是针对软件设计的最小单位程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。&& 集成测试()通常,在单元测试的上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是:在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;全局数据结构是否有问题;单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。在单元测试的同时可进行集成测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统。子系统的集成测试特别称为部件测试,它所做的工作是要找出集成后的子系统与系统需求规格说明之间的不一致。
系统测试()
&系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较发现软件与系统的定义不符合或与之矛盾的地方。
不同之处:
首先,他们的测试方法不同:
单元测试属于白盒测试;
集成测试属于灰盒测试的范畴;
系统测试属于黑盒测试。
其次,他们的考察范围不同,也就是他们测试的重点不同:
单元测试主要测试单元内部的数据结构、逻辑控制、异常处理等等;
集成测试主要测试模块之间的接口和接口数据传递的关系,以及模块组合后的整体功能;
系统测试主要测试整个系统相对于需求的符合度。
再次,他们的基准不同:
单元测试评估的主要是逻辑覆盖率;
集成测试评估的主要是接口覆盖率;
系统测试评估的是测试用例对需求规格的覆盖率。
TA的最新馆藏[转]&[转]&[转]&[转]&1375人阅读
架构设计(25)
J2EE(28)
一、使用Spring2.5 TestContext框架
参阅:/developerworks/cn/java/j-lo-spring25-test/
&&&&&& Spring 2.5 TestContext 测试框架,是一个全新的基于注解的测试框架,为 Spring 推荐使用该测试框架。
&&&&&& Spring 2.5 相比于 Spring 2.0 所新增的最重要的功能可以归结为以下 3 点:
(1)基于注解的 IoC 功能;
(2)基于注解驱动的 Spring MVC 功能;
(3)基于注解的 TestContext 测试框架。
Spring 推荐开发者使用新的基于注解的 TestContext 测试框架。
1、一个需要测试的 Spring 服务类(测试需求)
在用户登录成功后调用 UserService 中的 handleUserLogin() 方法执行用户登录成功后的业务逻辑:
(1)登录用户添加 5 个积分(t_user.credits);
(2)登录用户的最后访问时间(t_user.last_visit)和 IP(t_user.last_ip)更新为当前值;
(3)在日志表中(t_login_log)中为用户添加一条登录日志。
这是一个需要访问数据库并存在数据更改操作的业务方法,它工作在事务环境下。
2、编写 UserService 的测试用例
(1)TestUserService继承AbstractTransactionalJUnit4SpringContextTests。
(2)标注一个类级的 @ContextConfiguration 注解。TestUserService-context.xml 的 Spring 默认配置文件。@ContextConfiguration两个常用的属性:locations:inheritLocations。
(3)属性 @Autowired 注解。让 Spring 容器自动注入 UserService 类型的 Bean。
(4)测试方法@Test 注解。@Test 是 JUnit 4.4 所定义的注解。
TestUserService-context.xml 配置文件的内容:
&import resource=&classpath:/applicationContext.xml&/&
3、准备测试数据并检测运行结果
(1)准备测试数据
使用 JUnit 4.4 的 @Before 注解达到这个目的。
在 Spring TestContext 中,标注 @Before 和 @After 的方法会在测试用例中每个测试方法运行前后执行,并和测试方法运行于同一个事务中。由于测试方法运行后,整个事务会被回滚,在@Before中插入的测试数据也不会持久化到数据库中,因此我们无须手工删除这条记录。
要不在同一个事务中,保存准备数据。使用 Spring TestContext 的 @BeforeTransaction 和 @AfterTransaction 注解来达到目的。
可以显式地通过 @NotTransactional 注解,让测试方法不工作于事务环境下。
准备测试数据时,常使用的对象(在 AbstractTransactionalJUnit4SpringContextTests 抽象类中定义):只要 Spring 容器有配置数据源,simpleJdbcTemplate 就会被自动创建。同时该抽象类中还拥有一个 Spring 容器引用:applicationContext,你可以借助该成员变量访问 Spring 容器,执行获取 Bean,发布事件等操作。
此外,AbstractTransactionalJUnit4SpringContextTests 还提供了若干个访问数据库的便捷方法,说明如下:
protected int countRowsInTable(String tableName) :计算数据表的记录数。
protected int deleteFromTables(String... names):删除表中的记录,可以指定多张表。
protected void executeSqlScript(String sqlResourcePath, boolean continueOnError):执行 SQL 脚本文件,在脚本文件中,其格式必须一个 SQL 语句一行。
(2)检验业务逻辑的正确性
没有在业务方法执行后检查执行结果的正确性,测试是不到位的。也就是说,我们必须访问数据库以检查业务方法对数据更改是否成功:这包括积分(credits)、最后登录时间(last_visit)、最后登录 IP(last_ip)以及登录日志表中的登录日志记录(t_login_log)。
注意:由于我们的 DAO 层采用 Spring JDBC 框架,它没有采用服务层缓存技术,所以可以使用 DAO 类返回数据库中的数据。如果采用 Hibernate 等 ORM 框架,由于它们采用了服务层缓存的技术,为了获取数据库中的相应数据,需要在业务方法执行后调用 HibernateTemplate.flush() 方法,将缓存中的对象同步到数据库中,这时才可以通过 SimpleJdbcTemplate 在数据库中访问业务方法的执行情况。
二、利用spring2.0来进行集成测试
参阅:http://wiki./display/springside/SpringUnitTest
&&&&&& /spring_ref/2.0RC2/html/testing.html
Spring下单元测试的要点
1. 需要Spring 依赖注入的测试
为了测试Spring管理下的Bean,可以自行构造BeanFactory,也可以继承于AbstractDependencyInjectionSpringContextTests,实现public String[] getConfigLocations()函数, 返回applicationContext文件路径的数组。
protected String[] getConfigLocations() {
&return new String[]{&classpath*:spring/*.xml&,& &classpath*:spring/test/*.xml&};
并显式写一些需要注入的变量的setter函数。
tips1:此基类有一个applicationContext的成员变量,所以除了依靠setter注入外,还可以随时用applicationContext.getBean(String beanName) 取出所需的bean。
2. Dao测试
AbstractTransactionalDataSourceSpringContextTests继承于AbstractDependencyInjectionSpringContextTests,除了拥有上类的能力外,还管理了每个测试的事务,会Open Session In Test,还会在每个测试后默认回滚所有的操作。
tips1:如果需要在测试后提交,需要setRollBack(false); 或者调用setComplete(); 注意如果没有提交,hibernate这样奸诈的Framework就不会去实际操作数据库,降低了测试的效果。
3. Controller测试
Controller测试一般要用MockObject 分离Service层,要copy WEB-INF/下的相关文件copy 到classpath,而且Controller不含太多的逻辑,所有测试controller有点吃力不讨好,建议直接用Selenium进行集成测试,见(Selenium测试概述)。
1、AbstractSpringContextTests类[1],该类全部方法是protected的,主要用于子类重写。
2、AbstractDependencyInjectionSpringContextTests类[2]:继承于类[1]:名字N长的。如果仅仅使用Spring依赖注入功能,可以让测试用例继承该类。
3、AbstractTransactionalSpringContextTests类[3]:继承于类[2],继承该类的测试用例在spring管理的事务中进行,测试完后对数据库的记录不会造成任何影响。
4、AbstractTransactionalDataSourceSpringContextTests:继承于类[3],功能更强大,用于测试持久层组件,看其源代码,有一行&protected JdbcTemplate jdbcT&,提供了一个JdbcTemplate的变量,通过该对象可以直接操作数据库。
三、利用spring的mock类进行单元测试
spring框架提供了大量测试的mock类,包括与jndi,porlet,web应用相关的mock类。尤其是web应用相关的mock类,可以大大提高web组件测试的方便性。
打开spring的下载包的mock文件夹(路径...mock/org/springframework/mock/web),就发觉有如下几个文件:
MockHttpServletRequest:是HttpServletRequest接口的mock实现,用来模拟客户端的HTTP请求,很常用的一个类。
MockHttpServletResponse:是HttpServletResponse接口的mock实现,用于模拟服务器对客户端的响应。
MockHttpSession:是对HttpSession接口的mock实现。
DelegatingServletInputStream:是对ServletInputStream接口的mock实现。
DelegatingServletOutputStream:ServletOutputStream的mock实现。需要拦截和分析服务器的输出的流的内容,可以使用该类。
其他的,例如MockFilterConfig,MockPageContext(可以测试预编译的 JSP),MockRequestDispatcher,MockServletConfig看名称就知道大概是mock什么的。
举一个例子: Java代码
MockHttpServletRequest request =& new MockHttpServletRequest(&POST&,&/index.do&);&&
request.addParameter(&username&,&name&);&&
request.addParameter(&password&,&word&);&
本文章转自:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:212696次
积分:2867
积分:2867
排名:第10823名
原创:66篇
转载:28篇
评论:15条
(8)(1)(1)(1)(2)(2)(1)(1)(1)(2)(1)(3)(15)(2)(2)(1)(8)(4)(2)(1)(2)(1)(3)(1)(2)(5)(2)(1)(1)(1)(2)(8)(1)(1)(2)(3)}

我要回帖

更多关于 云南组装框架游泳池 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信