1. Java中如何测试方法调用时间
测试方法执行了多长时间,你可以使用打印语句打印出系统时间,两者相减除以3600就可以计算出秒数
2. java中,imp实现类里的方法,在Test测试类里怎么调用出来谢谢 指教一下
如果要在Test测试类里调用imp实现类里的方法,您需要实例化化imp实现类,得到实体对象,然后就可以调用该接口的实现方法了。如有不对,请把您的代码附送到问问,我帮您看看。。
3. ICT测试参数的调整方法
CB 板ICT 测试点设置调整方法
ICT类似如万用表,只是把表笔换成了测试针。那么问题就简单了,一颗普通的RLC元件,都必须有两个测试点才能够测试,当然同一个网络共用的节点用一个测试点就可以了。一般Coverage一般要求在85%以上才建议加入ICT测试。
ICT是在产品不通电的状况下,机器对产品上的每个元件进行阻值、容量、感量、通断等参数的测试。
FCT是在整合了ICT和功能测试,即完成ICT测试步骤后,转到产品通电状态,测试产品的各项正常工作时的参数。这样的好处是不要再去拿放一次产品。测试点的设计要求:
1、定位孔采用非金属化的定位孔 ,误差小于0.05mm。定位孔周围3mm不能有元件。
2、测试点直径不小于0.8mm,测试点之间的间距不小于1.27mm,测试点离元件不小于1.27mm,否则锡会流入到测试点上。
3、如果在测试面放置高度超过4mm的元器件,旁边的测试点应避开,距离4mm以上,否则测试治具不能植针。
4、每个电气节点都必须有一个测试点,每个IC必须有POWER及GROUND的测试点,且尽可能接近此元器件,最好在距离IC 2.5mm范围内 。
5、测试点不可被阻焊或文字油墨覆盖,否则将会缩小测试点的接触面积,降低测试的可靠性 。
6、测试点不能被插件或大元件所覆盖、挡住。
7、不可使用过孔或DIP元件焊点做测试点。
ICT植针率需要达到100%,元件可测试率要达到85%以上。
4. 软件测试的步骤
1、根据软件项目、产品的需求规格说明书提炼,整理测试需求,即本项目具体的测试点是什么,并形成文档,并对测试需求进行评审;
2、根据测试需求和项目的整体计划,制定测试计划,测试方案等,包括测试的时间节点安排,人力资源安排,测试策略等,并进行评审;
3、根据测试需求以及相关的设计文档,编写测试用例,即明确每个测试点的具体的操作步骤,预期结果等内容,并对用例进行评审;
4、准备测试环境和测试数据,包括测试系统部署的硬件环境和软件环境;
5、执行测试用例,提交测试过程中发现的bug,并通过版本迭代进行回归测试,验证相关的bug;
6、完成内部软件系统的功能测试,系统测试之后,系统趋于稳定,提交客户进行验收测试;
7、编写软件测试报告;
8、对测试过程进行总结,并将测试过程中的所有文档进行归档。
(4)如何用一个测试方法去调起扩展阅读:
软件测试一般分为测试需求分析阶段,测试计划阶段,测试设计阶段,测试执行阶段,测试总结阶段。根据项目的不同,每个阶段的具体工作内容会有些差别。但是每个阶段的目标是一样的。与软件开发步骤相配套,从而达到质量保障的目的。
测试需求分析阶段以整个项目或者产品的需求为基线,进行分析、整理得到测试的需求,这也是测试的纲领性文档和标准;测试计划阶段主要是结合整个项目的计划,编制软件测试部分的工作计划。
测试设计阶段主要是根据测试需求和项目的相关设计,编写测试用例,这也是很重要的一环;测试执行阶段,就是进入常说的测试阶段,在测试系统中执行用例,验证系统功能是否正确;测试总结阶段是测试执行完成后,需要做的收尾工作,给出所测试系统的质量评估与报告。
5. 测试类中有许多Junit的@Test方法,如何控制只运行其中的一个测试方法呢
如图,在某一个方法名上右键
6. 怎么用junit 只测试1个方法
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
JUnit是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。它包括以下特性:
1、用于测试期望结果的断言(Assertion)
2、用于共享共同测试数据的测试工具
3、用于方便的组织和运行测试的测试套件
4、图形和文本的测试运行器
另外junit是在xp编程和重构(refactor)中被极力推荐使用的工具,因为在实现自动单元测试的情况下可以大大的提高开发的效率,但是实际上编写测试代码也是需要耗费很多的时间和精力的,那么使用这个东东好处到底在哪里呢?笔者认为是这样的:
1、对于xp编程而言,要求在编写代码之前先写测试,这样可以强制你在写代码之前好好的思考代码(方法)的功能和逻辑,否则编写的代码很不稳定,那么你需要同时维护测试代码和实际代码,这个工作量就会大大增加。因此在xp编程中,基本过程是这样的:构思-》编写测试代码-》编写代码-》测试,而且编写测试和编写代码都是增量式的,写一点测一点,在编写以后的代码中如果发现问题可以较块的追踪到问题的原因,减小回归错误的纠错难度。
2、对于重构而言,其好处和xp编程中是类似的,因为重构也是要求改一点测一点,减少回归错误造成的时间消耗。
3、对于非以上两种情况,我们在开发的时候使用junit写一些适当的测试也是有必要的,因为一般我们也是需要编写测试的代码的,可能原来不是使用的junit,如果使用junit,而且针对接口(方法)编写测试代码会减少以后的维护工作,例如以后对方法内部的修改(这个就是相当于重构的工作了)。另外就是因为junit有断言功能,如果测试结果不通过会告诉我们那个测试不通过,为什么,而如果是想以前的一般做法是写一些测试代码看其输出结果,然后再由自己来判断结果使用正确,使用junit的好处就是这个结果是否正确的判断是它来完成的,我们只需要看看它告诉我们结果是否正确就可以了,在一般情况下会大大提高效率。
安装JUnit
安装很简单,先到以下地址下载一个最新的zip包: http://download.sourceforge.net/junit/
下载完以后解压缩到你喜欢的目录下,假设是JUNIT_HOME,然后将JUNIT_HOME 下的junit.jar包加到你的系统的CLASSPATH环境变量中,对于IDE环境,对于需要用到的junit的项目增加到lib中,其设置不同的 IDE有不同的设置,这里不多讲。
如何使用JUnit写测试?
最简单的范例如下:
1、创建一个TestCase的子类
package junitfaq;
import java.util.*;
import junit.framework.*;
public class SimpleTest extends TestCase {
public SimpleTest(String name) {
super(name);
}
2、写一个测试方法断言期望的结果
public void testEmptyCollection() {
Collection collection = new ArrayList();
assertTrue(collection.isEmpty());
}
注意:JUnit推荐的做法是以test作为待测试的方法的开头,这样这些方法可以被自动找到并被测试。
3、写一个suite()方法,它会使用反射动态的创建一个包含所有的testXxxx方法的测试套件
public static Test suite() {
return new TestSuite(SimpleTest.class);
}
4、写一个main()方法以文本运行器的方式方便的运行测试
public static void main(String args[]) {
junit.textui.TestRunner.run(suite());
}
}
5、运行测试
以文本方式运行:
java junitfaq.SimpleTest
通过的测试结果是:
.
Time: 0
OK (1 tests)
Time上的小点表示测试个数,如果测试通过则显示OK。否则在小点的后边标上F,表示该测试失败。
每次的测试结果都应该是OK的,这样才能说明测试是成功的,如果不成功就要马上根据提示信息进行修正了。
如果JUnit报告了测试没有成功,它会区分失败(failures)和错误(errors)。失败是你的代码中的assert方法失败引起的;而错误则是代码异常引起的,例如。
以图形方式运行:
java junit.swingui.TestRunner junitfaq.SimpleTest
通过的测试结果在图形界面的绿色条部分。
以上是最简单的测试样例,在实际的测试中我们测试某个类的功能是常常需要执行一些共同的操作,完成以后需要销毁所占用的资源(例如网络连接、数据库连接,关闭打开的文件等),TestCase类给我们提供了setUp方法和tearDown方法,setUp方法的内容在测试你编写的TestCase子类的每个testXxxx方法之前都会运行,而tearDown方法的内容在每个 testXxxx方法结束以后都会执行。这个既共享了初始化代码,又消除了各个测试代码之间可能产生的相互影响。
JUnit最佳实践
Martin Fowler说过:“当你试图打印输出一些信息或调试一个表达式时,写一些测试代码来替代那些传统的方法。”一开始,你会发现你总是要创建一些新的 Fixture,而且测试似乎使你的编程速度慢了下来。然而不久之后,你会发现你重复使用相同的Fixture,而且新的测试通常只涉及添加一个新的测试方法。
你可能会写许多测试代码,但你很快就会发现你设想出的测试只有一小部分是真正有用的。你所需要的测试是那些会失败的测试,即那些你认为不会失败的测试,或你认为应该失败却成功的测试。
我们前面提到过测试是一个不会中断的过程。一旦你有了一个测试,你就要一直确保其正常工作,以检验你所加入的新的工作代码。不要每隔几天或最后才运行测试,每天你都应该运行一下测试代码。这种投资很小,但可以确保你得到可以信赖的工作代码。你的返工率降低了,你会有更多的时间编写工作代码。
不要认为压力大,就不写测试代码。相反编写测试代码会使你的压力逐渐减轻,应为通过编写测试代码,你对类的行为有了确切的认识。你会更快地编写出有效率地工作代码。
下面是一些具体的编写测试代码的技巧或较好的实践方法:
1. 不要用TestCase的构造函数初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。
3. 避免编写有副作用的TestCase。例如:如果随后的测试依赖于某些特定的交易数据,就不要提交交易数据。简单的会滚就可以了。
4. 当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。
5. 将测试代码和工作代码放在一起,一边同步编译和更新。(使用Ant中有支持junit的task.)
6. 测试类和测试方法应该有一致的命名方案。如在工作类名前加上test从而形成测试类名。
7. 确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。
8. 如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。
9. 尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。
10.测试要尽可能地小,执行速度快。
JUnit和ant结合
ant 提供了两个 target : junit 和 junitreport 运行所有 测试用例 ,并生成 html 格式的报表
具体操作如下:
1.将 junit.jar 放在 ANT_HOMElib 目录下
2.修改 build.xml ,加入如下 内容:
-------------- One or more tests failed, check the report for detail... -----------------------------
运行 这个 target ,ant 会运行每个 TestCase,在 report 目录下就有了 很多 TEST*.xml 和 一些网页打开 report 目录下的 index.html 就可以看到很直观的测试运行报告,一目了然。
在Eclipse中开发、运行JUnit测试相当简单。因为Eclipse本身集成了JUnit相关组件,并对JUnit的运行提成了无缝的支持。
7. 用junit测试某个方法时,能否调用同一个类中未经测试的另一个方法
push() pop() peek()是静态方法,或者new一个MyStack的静态实例,就可以这样做,而且可以根据testcase的上下顺序将上一次执行的结果做为下一个用例的输入,但是这样做就破坏了每个用例的数据独立性,不利于长期维护同时也很容易出现测试代码上的错误,不建议这样用。push() pop() peek()三个方法一般会协同使用,所以用例设计时应该将每个场景独立设计,在每个testcase前对MyStack进行初始化,针对Stack中所存储数据边界值、等价类、Stack中方法单独调用,反复调用,交叉调用等情况分别设计用例覆盖。
8. 软件测试的方法有哪些
选择培训机构时就一定考虑到以下几点:
1、课程选择,不要只是简单的学习功能测试,而是会涵盖有现在流行的自动化测试、GUI测试,接口测试和性能测试开发等内容;
2、培训机构的教学不仅仅是教会你做标准的软件测试,而是要教你一些测试逻辑,教会你使用工具但又不依赖于这些工具也可以完成自动化测试,也就是其背后的底层的工作原理,这些东西才是真正能够内化成属于你个人的核心竞争力。
3、现在的移动互联网企业对自动化测试的需求非常大,也会要求学员掌握程序设计的原理,所以测试开发性综合性人才才是未来IT行业的需求方向。
4、一定要去参加试学,因为很多人目标不明确,甚至是迷茫的,所以去试学一周,看看自己是不是真的想做技术,或者适合做技术。
5、授课方式,有些是面授,有些是视频授课,各有优点,就看自己喜欢哪种了。当然,线下面授的学费应该更高,毕竟成本在那里,学习时有老师盯着,有同学陪着,能够更快的进入学习的状态,有更充足的斗志。
9. 软件测试的方法一共有几种
1、从是否关心内部结构来看
(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看
(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看
(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
在系统测试中,对于具体的测试类型有:
(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。
(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。
(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。
(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,
(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试)
(9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。
(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。
(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。
(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。
(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。
4、从执行过程是否需要人工干预来看
(1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)
5、从测试实施组织看
(1)开发测试:开发人员进行的测试
(2)用户测试:用户方进行的测试
(3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性
6、从测试所处的环境看
(1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
(2)贝塔测试:是用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,并要求用户报告
软件测试的内容:
1 得到需求、功能设计、内部设计说书和其他必要的文档
2 得到预算和进度要求
3 确定与项目有关的人员和他们的责任、对报告的要求、所需的标准和过程 ( 例如发行过程、变更过程、等等 )
4 确定应用软件的高风险范围,建立优先级、确定测试所涉及的范围和限制
5 确定测试的步骤和方法 ── 部件、集成、功能、系统、负载、可用性等各种测试
6 确定对测试环境的要求 ( 硬件、软件、通信等 )
7 确定所需的测试用具 (testware) ,包括记录 / 回放工具、覆盖分析、测试跟踪、问题 / 错误跟踪、等等
8 确定对测试的输入数据的要求
9 分配任务和任务负责人,以及所需的劳动力
10 设立大致的时间表、期限、和里程碑
11 确定输入环境的类别、边界值分析、错误类别
12 准备测试计划文件和对计划进行必要的回顾
13 准备白盒测试案例
14 对测试案例进行必要的回顾 / 调查 / 计划
15 准备测试环境和测试用具,得到必需的用户手册 / 参考文件 / 结构指南 / 安装指南,建立测试跟踪过程,建立日志和档案、建立或得到测试输入数据
16 得到并安装软件版本
17 进行测试
18 评估和报告结果
19 跟踪问题 / 错误,并解决它
20 如果有必要,重新进行测试
21 在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
10. 如何提高测试效率
1.尽早参与到项目中
测试尽早介入项目详细了解项目的业务需求,做好测试的前期准备:目前来说,可能大家都有类似的感受,接触到的大多数的项目,都是测试周期比较短,开发人员耽误了时间,为了不拖延项目进度,留给测试人员做测试的时间都非常紧张。如果项目测试的前期了解业务需求、了解产品属性和准备测试数据不充分,往往测试效率很低,测试时间变长,测试效率急剧下降。
2.合理的测试计划
首先要有一个合理的详细的测试计划:没有详细的测试计划,测试部的每个成员都在那儿盲无目的测试,何谈提高测试效率?当然测试计划也不能够太细,太细了,编写测试计划同样浪费时间,做到时可而止。最好是测试任务尽量能细化到测试的功能较为理想。
3.要做好测试文档的评审
测试负责人认真做好测试文档的评审:测试经理一定要认真做好测试用例的评审,尽量使用较少的测试用例,发现较多的Bug,无疑是最佳提高效率的一种方式。很多时候,经验较少的测试人员在设计测试用例的时候,写了很多的测试用例,测试时几乎没有发现缺陷。还有一种:比如说等价类的测试,只要具备代表性就可以了,如果写了很多测试用例,执行了半天,臃肿的测试用例,未发现任何问题,也很不值。这些主要是靠测试用例评审的时候,测试Leader去把握了。尽量做到在满足需求的情况下,精简测试用例数量,提高测试覆盖率。很多时候,测试人员写好用例就自己测试,根本没人评审,有些地方理解有偏差,测试点没测试到,导致发给客户版本被退回,给公司也会带来巨大经济损失。
4.提高测试接受的标准,减少测试版本送测次数:
大部分公司的开发人员都有一种惰性,一旦公司成了测试部,他们自己测试时,都不会那么认真,以为有了测试人员,就自己就解放了。很多时候都是调试编译通过,实际上开发人员没有做完整的自测,就拿到测试部进行测试。如果测试部门有严格的测试接受标准,一旦发现有重大问题,立即拒绝测试,送回开发人员修改。可以减少很多次反复测试,重复测试,明显提高了测试效率。
5.发挥主观能动性,积极沟通
测试工作是一项沟通要求比较高的工作,一般需要同项目经理、产品经理、开发人员、业务人员、客户沟通。很多时候,由于测试介入较晚,测试时间短,测试初期测试人员了解需求不及开发人员,为了迅速熟悉需求,需要项目组成员之间相互培训和沟通。测试人员为了利于测试工作,平时也需要主动和开发团队沟通项目的进度、项目存在的问题、项目的需求变更等等情况。与团队成员沟通得越充分、对项目的信息收集和把握得越及时、越准确,我们的测试工作才可能做得越顺利,才可能提高测试效率。我们绝不能消极等待或一味埋怨开发人员的不理解和不重视。我们首先需要正视自己、改进自己,通过自身的不断努力让开发人员,真正体会到测试的价值。同时,也需要理解并配合开发人员的工作。只有这样,才能赢得开发人员的支持。互相配合、互相促进,项目成员之间形成良性循环,彼此感情加深了、配合默契了、工作效率和工作质量也就自然提高了。
6.按照项目的性质大小不同,引入自动化测试工具和自动化测试脚本
是否引入自动化的测试工具,主要取决于测试的时间长短和测试的轮次。一般来说,测试周期较长、版本升级平凡和回归测试次数较多的项目,引用测试工具可以提高测试效率。如果测试周期较短,本来测试周期只有两三个月,开发测试脚步就要花费大量时间,引入自动化测试工具,用的次数较少,结果得不丧失,劳民伤财!
7.对测试项目前景充满信心,调整最佳心态,保持愉悦的工作心情:
一般来说,如果大家认为测试的项目没什么发展前景,当然测试也不会很卖命,测试效率不用说。如果某个测试人员碰到什么不顺心的事,当天的工作效率肯定比平常低。所以,要保证测试效率,测试负责人要察言观色,及时找不开心的下属谈心,了解并帮忙消除部分员工的不良情绪,让员工有更好的心情投入到测试工作中去。
8.提高测试人员的专业技能和工作能力:
由于测试技术的不断成熟和完善,许多的新技术陈出不穷,作为测试人员需要不断提高自己的专业技能和工作技能。不断的给自己充电,补充测试理论知识,让自己工作技能力去弥补专业技能的不足。这样,你的工作同样可以做到最棒,效率自然很高。一段时间过去,回过头来一看,自己确实进步不少,没有虚度光阴呀!