1. 如何写测试用例
编写测试用例需要有以下几点:
1、测试用例编号
◇ 规则:编号具有唯一性、易识别性,由数字和字符组合成的字符串
◇ 约定:
系统测试用例:产品编号-ST-系统测试项名-系统测试子项名-XXX
集成测试用例:产品编号-IT-集成测试项名-集成测试子项名-XXX
单元测试用例:产品编号-UT-单元测试项名-单元测试子项名-XXX
2、测试项目
◇ 规则:当前测试用例所属测试大类、被测需求、被测模块、被测单元等
◇ 约定:
系统测试用例测试项目:软件需求项 如:测试手机在没有SIM卡的情况下,可以拨打紧急电话
集成测试用例测试项目:集成后的模块名或接口名 如:测试模块A提供的文件接口
单元测试用例测试项目:被测试的函数名 如:测试函数int ReadFile(char *pszFileName)
3、测试标题
规则:测试用例的概括简单的描述用例的出发点、关注点,原则上不能重复。
4、重要级别
规则
高:保证系统基本功能、核心业务、重要特性、实际使用频率高的测试用例;
中:重要程度介于高和低之间的测试用例;
低:实际使用频率不高、对系统业务功能影响不大的模块或功能的测试用例。
5、预置条件
规则:执行当前测试用例需要的前提条件,是后续步骤的先决条件
6、输入
规则:用例执行过程中需要加工的外部信息,输入、文件、数据库等
7、操作步骤
规则:执行当前测试用例需要经过的操作步骤,保证操作步骤的完整性。
8、预期输出
规则:当前测试用例的预期输出结果,包括返回值的内容、界面的响应结果、输出结果的规则符合度等
2. 设计测试一个用例,条件如下
一、根据条件,分析场景(我看不懂,你这是上传图片还是什么的)
二、分析需求中的每个输入条件,选择合适的用例设计方法。我感觉用等价类和边界值。
等价类分析法
输入条件 有效等价类 编号 无效等价类 编号
图片格式 JPG/BMP 1 JIF/JPEG等(不是JPG/BMP) 1-1
文字集 没要求吗?
用户名 没要求吗?
边界值分析法
输入条件 边界 编号
图片大小 2M 2-1
1.9M 2-2
1M 2-3
2.1M 2-4
客户容量 21M 3-1
10M 3-2
20M 3-3
文字集 2000字符 5-1
2001字符 5-2
1000字符 5-3
1999字符 5-4
标题 50个字符 6-1
20个字符 6-2
51个字符 6-3
三、根据上面的分析,写测试用例。对于等价类分析,遵循以最少的测试用例覆盖尽可能多的有效等价类,每个无效等价类设计一个用例。对于边界值分析,边界(上点、离点、内点)分别设计一个用例。用例的要素我就不说了!
OK了,希望能帮上。有问题,再一起讨论!
3. 什么是测试用例
一个测试用例描述了针对某个目标对程序进行测试所采用的一组实际输入、程序执行条件、测试步骤和预期的输出,以核实某个程序或其中的特定路径是否满足特定需求。
由于程序输入的范围会非常大,因此会导致一个软件可选的测试用例数目巨大(甚至是无穷的)。这时,需要恰当地设计和选择测试用例集,以在限定的资源和时间内,尽可能地暴露软件中的错误。
因此,测试用例集的设计通常被认为是测试中最重要、也是最困难的方面。由于实际测试中使用的测试用例集的输入范围只是程序输入的子集,因此即使软件通过了测试,也无法保证程序一定是正确的。
这说明测试本身是不完全的,不能证明程序无错。人们认为,软件测试活动从未间断,只是在软件交付用户使用后,将由用户扮演测试角色而已。
对每个测试用例都需要给出具体描述,表1给出了一个测试用例模版示例。表1 测试用例模版用例标识:对该测试用例赋予一个唯一标识用例开发者:谁编写的本用例用例开发日期:编写用例的日期测试项:描述将被测试的具体特征、代码模块等对象测试输入:测试时为程序提供的输入数据前提条件:执行测试时系统应处于的状态或要满足的条件等环境要求:执行测试所需的软硬件环境、测试工具、人员等测试步骤:(1)……;(例如,点击“文件”菜单中的“新建”菜单项) (2)……;(例如,在“test case”目录下选择“test5.dat”文件)……预期输出:希望程序运行得到的结果用例之间的依赖性:该测试用例依赖或受影响的其它测试用例当测试用例数量多时,文档化的工作量就比较大。
这时,模版内容在实际测试中可以根据需要进行简化,例如把各个测试用例所共有的内容单独列出来(如环境要求),并把所有测试用例用一张表格描述出来。
4. 如何使用junit4写单元测试用例
Junit4支持注解了,只要在要执行的方法前加@Test即可,如:
@Test
public void multiplyPoundsByInteger() {
assertEquals( 10, 5 );
}
Junit4增加了许多特性,主要是支持注解了:
测试由原来的命名模式改变注解,即testXXX变为@Test。其中@Test还提供了额外的属性。如expected,表示期望抛出的异常
数组比较改用Assert.assertArrayEquals
套件测试也用注解替换
通过@Ignore,可以忽略某个方法或整个类的测试
增加了新特性-理论机制(Theory),这个特性听起来很迷惑人,作用是使得开发人员从开始的定义测试用例的阶段就可以通过参数集(理论上是无限个参数)对代码行为进行概括性的总结.开发人员都知道他们代码所想要实现的概括性的总的目的,理论使得他们只需要在一个地方就可以快速的指定这些目的,而不要将这些目的翻译成大量的独立的测试用例。
提供了新的特性-假设机制(Assumption).此特性使用了Hamcrest库的类.本来Hamcrest是一个单独的测试组件,Junit也集成了一部分,但是并没有完全包含。建议使用junit独立的JAR文件,再单独引入hamcrest包。 其实hamcrest的功能相当的强大,理解起来也非常的容易,是一个很不错的组件。它提供assertThat,assumeThat,assumeNotNull等假设语句,也提供is,not,both..and,either..or等用法,非常的灵活。
@Before,@After,@BeforeClass,@AfterClass.这几个注解一看便知大概,@Before表示每个测试方法执行前执行一次,而@BeforeClass表示整个类测试前执行一次。不过需要注意的是,@BeforeClass,@AtferClass注解的方法必须是静态的。
Junit提供了新的核心运行类MaxCore,相对于以前的JunitCore运行机制,这个类有一系列的优点,如从未测试过的方法优先测试,剩下的测试中,以前测试失败的方法优先测试,再其次,运行快的优先于运行慢的方法。
5. 五子棋路径覆盖的测试用例怎么写
路径覆盖 要根据 开发编写的代码程序来。
知道是五子棋是不够的,要了解具体的程序实现。
基本路径覆盖
(1) 概述
l 在程序控制流图的基础上,通过分析程序控制流图的环路复杂性,导出基本可执行路径的集合,然后据此设计测试用例
l 设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次
(2) 程序控制流图
l 控制流图是描述程序控制流的一种方式
l 图形符号:圆圈代表一个结点 表示一个或多个无分支的语句或源程序语句
l 边和点圈定的部分叫做区域。当对区域计数时,图形外的一个部分也应记为一个区域
l 判断语句中的条件为复合条件时,即条件表达式由一个或多个逻辑运算符连接的逻辑表达式(a and b),则需要改变复合条件的判断为一系列只有单个条件的嵌套的判断
图形符号图所示
(3) 程序环路复杂性
l 程序的环路复杂性即McCabe复杂性度量,简单的定义为控制流图的区域数
l 从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的上界
l 独立路径:包括一组以前没有处理的语句或条件的一条路径
l 通常环路复杂性可用以下三种方法求得:
v 将环路复杂性定义为控制流图中的区域数。
v 设E为控制流图的边数,N为图的结点数,则定义环路复杂性为 V(G)=E-N+2。
v 若设P为控制流图中的判定结点数,则有 V(G)=P+1。
(4) 基本路径测试步骤
l 以详细设计或源代码为基础,导出程序的控制流图
l 计算得到控制流图G的环路复杂性v(g)
l 确定线性无关的路径的基本集
l 生成测试用例,确保基本路径集中每条路径的执行
6. 如何评价一个框架
我们经常会看到很多文章在比较着这些框架,优缺点列出一堆,得出一个结论哪个哪个比较好。除了这些流行的开源框架之外,很多公司内部的框架的数目也不在少数,相比那些开源的流行的框架,公司内部的框架的文档会很缺乏,经常会以使用心得或者同事的介绍,再加上自己在使用的过程中慢慢熟悉的。有很多细节性的问题,你甚至要深入阅读框架的源代码才能理解。很多抱怨也会这么产生。
一、??要评价一个框架,或者说理解一个框架,需要适当地了解一下这个框架发展的历史,这样就能知道框架某种做法的来龙去脉。很多今天我们所认为理所当然的一些东西,在框架的开发过程中,正在被探索中。在探索中,深入学习了流行的框架,并对其优缺点形成了一套自己的认识。最流行的并不是技术最前卫的。我们要去理解一个框架,首先要了解它所产生的一个技术背景,然后再来做出评价。
业界的发展很快。雨后春笋般冒出来的新框架新思路,最初的框架中有肯定会有很多地方会落后了。那么我们就要来不断的改进框架。一个框架能不能很好的扩展和改进也是衡量一个框架质量的标准。但是框架也不能说改进就改进,框架必须稳定,不能说变就变。虽然我们知道有很多新技术新理念,但必须一点一点地加到框架中。对于现有已经稳定工作的框架,还是要保证其正常运行。一般采取两条路线:
一条是渐进路线,一条是变革路线
前者的原则是稳定压倒一切。在稳定的基础上,尽可能解决大家碰到的问题和不爽之处。后者是站在前者肩膀之上,但不拘于现有应用的束缚,大胆变革,以产生更好的框架。
每一种框架都有它自己特定的优点,相对而言,也会有它的缺点。没有一种框架是完美的。框架是为了达成下列目标而设立的:重用代码
框架聚合了很多公用的代码、模块,以便简化编程的工作,提高编程的质量。良好设计
如果没有框架,写程序就可以天马行空。但有了框架,就可以把程序员约束在一种良好的设计里面。降低耦合
这一点其实包括在良好设计范围内,不过它非常重要。其实近来IoC、AOP从本质上来说,都是为了降低代码的耦合度。随之带来的好处是易测试、易重用、易读懂、易维护等。简化工作
把和业务无关的内容尽量处理掉,使程序员可以专注在业务上。
保证性能和稳定性
框架中也需要考虑性能问题、稳定性、扩展性、可用性。。等很多问题??纵观opensource世界中的很多流行框架,例如Webwork、Struts2等。它们确实在某一方面做得很好,或者说它们在80%的地方都做得很好。
7. 计算机毕业论文的测试用例管理系统的结果统计分析模块应该怎么写
正好我这两天再研究测试用例管理系统,虽然不是毕业论文,但是希望能帮上你的忙
——测试用例执行结果统计分析模块(Statistics & Analysis)
——测试人员在执行完整个测试用例集以后,根据测试结果模板出具测试报告(包括用例pass率/fail率、问题报告列表、测试人员感想)并自动通过E-mail发送测试报告
——针对fail用例,生成饼状图,主要通过fail用例追踪测试用例库中的需求关键词,饼状图主要展示每个需求关键词中fail的用例数。
——通过点击上述饼状图进入某个需求关键词下属的fail用例列表,并查看
——可以在各个模块中根据自己的需求创建柱状图,如在测试用例库模块中可定义创建者、所编写的用例被测频率;需求关键词、每个需求关键词所包含用例数;测试工具、运用此测试工具的用例数;创建日期、在此创建日期编写的用例。作为X,Y轴。如在资源分配模块中可定义每个测试人员的测试时长和测试用例数作为X,Y轴,从而自动计算出每个测试人员的测试效率;定义测试硬件、使用频率(High/Medium/Low);如在测试用例执行问题处理模块中可定义报告者、报告问题数作为X,Y轴,从而自动计算每个人的报告问题效率;需求关键词、被关联的问题报告数;错误等级评估、每个等级的错误报告数。
(可选)——深入分析fail的用例,查看fail用例具体出现问题的步骤,并以此步骤为关键词,搜索其他相关的用例,扩大测试范围。
8. 请教:系统测试方案怎么写,特别是功能部分
? 概述:对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。
这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。测试目标 确保测试的业务功能正常,其中包导航性质菜单,数据输入,处理和检索等功能。
测试的范围 1、界面里面常用功能按钮:增、删、查、保存、取消等。2、下拉列表、单选、复选、3、文本框技术 利用有效的和无效的数据来执行各个用例、用例流或功能,以核实以下内容:1、在使用有效数据时得到预期的结果。
2、在使用无效数据时显示相应的错误消息或警告消息。3、各业务规则都得到了正确的应用。
开始标准 测试执行完成标准 1、完全实现需求中定义的功能2、在功能实现的基础上实现正确的业务流程需要考虑的特殊事项 ? 方案:给出具体的针对性的测试方案,为今后设计用例或在测试过程提供一个大纲性质的方案。下拉列表 1、条目内容的检查,对照需求说明察看条目内容和实际内容是否一一对应。
2、条目的功能能否实现,逐一执行列表框中每个条目的功能。3、在列表框中能否输入数据,检查能否输入或则粘贴数据向组合列表框内。
4、能及时获取得到新增加的数据并显示。文本框的 1、边界值和等价类测试用例方法。
2、可以采用随机测试进行测试用例的补充。3、输入符合规定的数据。
4、输入已经存在的内容。5、输入超常字符。
6、输入特殊字集。7、输入空白,或则空格。
复选框的测试 1、多个复选框被选中。2、多个复选框可以被部分选中。
3、多个复选框可以不被选中4、逐一执行每个复选框的功能单选框的测试 1、单选按钮是否只能同时选中选中一个。2、个单选按钮的功能是否正确完成3、是否有默认被选中的选项命令按钮的测试 1、对各类按钮的测试。
2、功能是否实现。3、提示信息是否正确。
4、描述、图标功能是否一致。错误处理 1、对于不符合业务背景的输入数据是否有相应的处理方法。
2、单击按钮正确响应操作。3、对非法的输入或操作给出足够的提示说明。
4、错误说明应当清楚,命了,恰当,让用户明白错误出处。5、对于无法恢复的操作必须提供确认信息,给用户放弃选择的机会。