软件测试之实验一

1. First, I install three tools of JUnit and coverage tool.

I build the path of the two jar files to my lab1 project according to the PPT.

And I use the online url to install the eclemma.

In the work with blank, I input the website of eclemma and choose the software to install, it just took me several minutes and was pretty convenient.

2. I write the triangle class to judge wether it fuifull the conditions.

package stLab1;
public class riangle {
    public String whichTri(int a, int b, int c){
        int[] list = new int[]{a, b, c};
        for( int i = 0; i < 3; i++ ){
            for( int j = i; j < 3; j++ ){
                if( list[i] < list[j]){
                    int temp = list[i];
                    list[i] = list[j];
                    list[j] = temp;
                }
            }
        }
        a = list[0];
        b = list[1];
        c = list[2];
        if( c <= 0 || b + c <= a || a - c >= b || a - b >= c )
            return "noTri";
        else if( a == b && b == c)
            return "eTri";
        else if( a == b || a == c || b ==c )
            return "iTri";
        else
            return "sTri";
    }
}

And then I write a test class for parameterized test.

package stLab1;
import java.util.Arrays;
import java.util.Collection;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import stLab1.riangle;
import static org.junit.Assert.*;

public class TestStLab1 {
	@RunWith(Parameterized.class)
	public static class TestRiangle{
		private int a;
		private int b;
		private int c;
		private String expected;
		private riangle tri = null;

		public TestRiangle(int a,int b,int c, String expected){
			this.a = a;
			this.b = b;
			this.c = c;
			this.expected = expected;
		}

		@Before
		public void setUp(){
			tri = new riangle();
		}
		@Parameters
		public static Collection<Object[]> getData(){
			return Arrays.asList(new Object[][]{
					{1,1,1,"eTri"},
					{2,3,5,"noTri"},
					{3,5,3,"iTri"},
					{3,5,4,"sTri"},
					{-2,3,5,"noTri"}
			});
		}
		@Test
		public void testWhichTri() {
			assertEquals(this.expected, tri.whichTri(a, b, c));
		}
	}
}

  

3.  Finally, I run it with five test cases and use the JUnit test method and coverage last lanunched. It passed the test with all five test cases.

And the coverage shows almost all the lines have been tested.

4. It‘s awesome to use these test tools to find faults in our codes. And with parameterized class I can test with many cases with only once running.

Also, I meet a problem that the "JUnit couldn‘t......", finally I set the test folder to the source folder and solve it.

时间: 2024-10-09 20:14:27

软件测试之实验一的相关文章

软件测试之实验一——如何使用JUnit,Hamcrest和Eclemma进行简单的软件测试

一.安装JUnit,Hamcrest和Eclemma JUnit以及Harmcrest都以JAR包作为基础导入工程.安装jar包的过程很简单,只要在新建工程的时候导入或者直接在工程里导入即可.如下图所示: 可以直接在项目中添加额外的jar包,也可以将jar包路径添加到classpath中. Eclemma可以通过eclipse的market安装,搜索Eclemma,同意安装后重启即可. 二.实验内容 实验完整代码已上传至github:软件测试实验一@杨牧童 实验程序为一简单的判断三角形类型的函数

《微软的软件测试之道》读书笔记 之 结构测试技术

<微软的软件测试之道>读书笔记 之 结构测试技术 2014-07-18 我们需要结构测试吗? 微软的一项试验说明了结构测试的在代码覆盖中起到的效果: 超过3000名测试员参与了这项实验,每25人一组,实验结果在所有组中都是一致的.在这项研究中, 脚本化测试:根据样式书设计的脚本化测试在被测程序上达到了标称83%的代码覆盖率. 探索性测试:然后,实验参与者允许进行每人15分钟,累计5小时的探索性测试.令人惊讶的是,代码覆盖率平均只增加了3个百分点. 结构测试:但是,当实验参与者能够分析探测过的(

读《微软的软件测试之道》有感(上)

在这个电子书漫天飞的年代,我居然仍然喜欢读纸书,喜欢一边读一遍闻书的味道,就像品尝一顿美味的大餐一样.最近得了一本<微软的软件测试之道>,啃了一段时间了,每次重新拿起来看就觉得里面的内容忘得一干二净了,想起之前有位领导总是教导我们:“要不断总结,要累积,这样才会进步!”之前每次听这话都觉得烦,后来工作久了才知道总结有多重要,如今为了记住这本书的内容,我决定写个读后感,想到哪里写到哪里. 第一部分: 第一章<微软的软件工程> 第二章<微软的软件测试工程师> 第三章<

Google软件测试之道 pdf下载

引领一代风骚的明星企业google, 推出过很多成功优秀的产品,搜索引擎不用说,譬如Gmail ,Chrome, Google Doc, G+等等等等,也推出过很多短命的产品,譬如Google Wave等等. 作为一个时常需要推出新产品,但又要根据用户反馈而做进一步选择继续还是放弃的企业,作为一个需要让产品稳定健壮以保持客户满意度的明星企业,该如何测试是一个很大的问题.Google的经验非常值得借鉴. 该书的作者是Google测试的Senior Director(如果我没记错的话),在测试领域有

全程软件测试之测试需求分析与计划

全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计划活动中,首先要确认测试目标.范围和需求,其中"测试需求分析"是关键任务,然后在测试需求基础上制定测试策略,并对测试任务.时间.资源.成本和风险等进行估算或评估. 无论何时进行估算,我们都是在预测未来,并会接受某种程度的不确定性.软件项目计划的目标是提供一个框架,不断收集信息,对不确定性进

《Google软件测试之道》测试开发工程师

拖延了将近半年的草稿,断断续续的写完了.之前草草翻看完这本书,关注点主要在TE上,而关于SET的部分则只是浏览,最近后知后觉,又翻出了这本书,重新看了一遍,又有新收获. 就说说Google的SET是如何做的,以及个人的一些思考和收获吧,寥有慰藉... Google的测试流程可以简练的概括为:让每个工程师都注重质量.而在工作流程引入过程中也伴随着一些致命的缺陷,下面简述下Google是如何解决以及其测试流程的是如何进化的. ①.测试并不能保证产品质量.需要一直谨记的一点:质量是内建的,而不是外加的

转《Google软件测试之道》

<Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯吧,就做了笔记,将自己的学习理解感触写下来... 预计会分为五部分写这些学习笔记,分别是Google软件测试基础介绍.软件测试开发工程师.软件测试工程师.测试经理以及附录其他部分... 快乐阅读,快乐测试,祝愿你总能发现(并修复)BUG... ----James Whittaker.Jason Arbon.J

小白的软件测试之路

从笔记本代工企业跳出来做软件测试到今天为止整三个月了,一个人从手工测试摸索到现在尝试自动化,做一下总结吧. 第一阶段:依照上一个测试人员的惯例在qc中写用例并执行,发现写的非常的糟糕,无体系且混乱.基本只涉及一些功能测试方面,而且书写非常混乱. 第二阶段:开始查找资料,梳理测试流程,将系统测试各方面重新组织规划,并尽量在有新测试对象时使用这个规范测试,并使用到书中讲到的一些测试用例设计的方法. 第三阶段:寻找自动化测试之路(公司产品分为android端和web端,重点先放在web上),这里的自动

软件测试之loadrunner学习笔记-02集合点

loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行随着时间的推移,并不能完全达到同步.这个时候需要手工的方式让用户在同一时间点上进行操作来测试系统并发处理的能力,而集合点函数就能实现这个功能. 可通过将集合点插入到 Vuser 脚本来指定会合位置.在 Vuser 执行脚本并遇到集合点时,脚本将暂停执行,Vuser 将等待 Controller 或控