软件测试实验1:为三角形问题编写一个Java程序,并用Junit测试程序

实验报告

实验内容:

1.Install Junit(4.12), Hamcrest(1.3) with Eclipse

2.Install Eclemma with Eclipse

3.Write a java program for the triangle problem and test the program with Junit.

实验步骤:

1.在eclipse中安装Junit、Hamcrest和eclemma。

下载Junit-4.12.jar、hamcrest-core-1.3.jar、和hamcrest-library-1.3.jar。

打开eclipse,新建一个project,在eclipse的菜单栏中,选择Project->Properties,在弹出的框的左侧选择“Java Bulid Path”,然后点击“Add  External  JARs”,把下载的几个包添加进来。如图:

安装eclemma:选择eclipse菜单中的“Help”,选择"Eclipse marketplace...",搜索eclemma,点击install开始安装。

安装完成后重启eclipse。看到快捷按钮中的,说明eclemma安装成功。

 

2.程序代码和测试代码:可查看https://github.com/realpby/SWTesting/blob/master/First%20Lab

项目的目录如图:

triCalculate.java文件中是实现三角形问题的代码。testCalculate.java中是测试程序的代码。

triCalculate.java:

package triangle;public class triCalculate {private static int tri =0;public void triangle(int a,int b, int c){if(a<=0||b<=0||c<=0){tri=0;}else{if(((a+b)>c) && ((a+c)>b && (b+c)>a)){if((a == b) &&(a == c)){tri = 3;//equilateral
                }if((a==b && a!=c)||(a==c && a!=b)||(b==c && a!=b)){tri = 2;//isosceles
                    }if(a!=b && a!=c && b!=c){tri = 1;//scalene
                }}else{tri=0;//三边长度无法构成三角形
            }}        }public int getReuslt(){return tri;}public void clear(){tri = 0;}
}

testCalculate.java:

package triangle;
import static org.junit.Assert.*;
import org.junit.Test;public class testCalculate {private static triCalculate cal = new triCalculate();@Testpublic void testTriangle(){cal.triangle(-5, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(5, 5, 5);assertEquals(3, cal.getReuslt());cal.triangle(5, 5, 6);assertEquals(2, cal.getReuslt());cal.triangle(3, 4, 5);assertEquals(1, cal.getReuslt());cal.triangle(12, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(10, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(11, 5, 5);assertEquals(3, cal.getReuslt());}}

3.三角问题测试的测试结果和覆盖报告

截图如下:

测试程序中(11,5,5)这组数据不为3,所以出现一个failure。在上图的右边可以看到Junit的报告,在下方可以看到Coverage的报告。

 

转载于:https://www.cnblogs.com/bingyupan/p/6530268.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SurfaceFlinger与Surface概述

基本原理&#xff1a; SF一个Client对应一个app中的SurfaceComposerClient&#xff0c; 分别是Binder的n端和b端&#xff0c;主要用来CreateSurface 一个app中有多个Activity&#xff0c;一个Activity一般有一个Surface(除SurfaceView&#xff0c;一个View就有一个Surface)&…

拼图项目动手指南

Jigsaw项目将把模块化引入Java平台&#xff0c;根据原始计划&#xff0c;它将在12月10日完成功能。 所以我们在这里&#xff0c;但是拼图在哪里&#xff1f; 在过去的六个月中肯定发生了很多事情&#xff1a; 原型问世 &#xff0c;内部API的迫在眉睫的删除引起了很大的骚动 &…

java实现回文验证_LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串

文章目录一、题目描述1.1 题目验证回文串给定一个字符串&#xff0c;验证它是否是回文串&#xff0c;只考虑字母和数字字符&#xff0c;可以忽略字母的大小写。说明&#xff1a;本题中&#xff0c;我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a cana…

java开发门禁指纹,指纹门禁

大兀人脸识别控制系统USB指纹仪DW9拓扑图(指纹为java系统直接采集、云或控制板直接比对&#xff0c;无需二次注册&#xff0c;人脸为htttp上传服务器或rtsp视频流比对方案)大兀活体指纹门禁采用BS架构&#xff0c;已集成进大兀人脸识别系统&#xff0c;如二次开发可直接调用jav…

使用Selenide进行有效的UI测试

等待奇迹 圣诞节是奇迹的时刻。 在新的一年的前夕&#xff0c;我们都为下一年制定了计划。 我们希望所有问题都将在最后一年消失&#xff0c;在来年出现奇迹。 每个Java开发人员都梦想着创造一个奇迹&#xff0c;使他成为世界上最有效的Java开发人员。 我想向你展示这样的奇…

android之seekbar

做了一个拖动滑块改变数值的demo 下附上代码: <SeekBar android:id"id/myseekbar" android:layout_width"match_parent" android:layout_marginTop"20dp" android:thumb"drawable/slider" android:layout_height&qu…

php 微信小程序 循环 多选,微信小程序实现多选功能

本文为大家分享了微信小程序实现多选功能的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下代码&#xff1a;{{num 1}}/{{quesyion.length}}{{question[num][0]}}A {{question[num][1]}}B {{question[num][2]}}C {{question[num][3]}}D {{question[num][4]}}正确答案…

php+反序列化代码执行漏洞,PHP反序列化漏洞

0x001 漏洞产生原理在反序列化的过程中自动触发了某些魔术方法。未对用户输入的序列化字符串进行检测&#xff0c;导致攻击者可以控制反序列化过程&#xff0c;从而导致XSS、代码执行、文件写入、文件读取等不可控后果。0x002 漏洞触发条件一般只能通过代码审计的方式挖掘该漏洞…

java filter 模式,Java设计模式----过滤器模式(挑三拣四)

过滤器模式描述拦截过滤器模式(Intercepting Filter Pattern)用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器&#xff0c;并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志&#xff0c;或者跟踪请求&#xff0c;然后把请求传给相…

java项目processes设置,Jvm调优和SpringBoot项目优化的详细教程

参考文章1、先看一下未设置JVM参数的情况&#xff0c;默认情况下&#xff0c;没有设置任何Jvm参数。2、设置Jvm参数。配置参数&#xff1a;关于这些设置的JVM参数是什么意思&#xff0c;参考Jvm调优。-XX:MetaspaceSize128m (元空间默认大小)-XX:MaxMetaspaceSize128m (元空间最…

Git问题Everything up-to-date解决

Git问题Everything up-to-date解决 【自己的亲身错误体验】 我的上一篇博客&#xff0c;说了怎么上传一个项目到git远程上面。今天我写好一个小栗子&#xff0c;准备再次上传的时候。我依旧是放在我的F:\github\js- 这个和我的github上的远程仓库相同名称的文件中的 在这里空白…

java超出gc开销限制_超出了GC开销限制– Java堆分析

java超出gc开销限制这篇文章是我们原来的GC开销超出问题模式的延续。 正确的Java堆分析对于消除O​​utOfMemoryError&#xff1a;GC开销问题至关重要。 如果您不熟悉此Java HotSpot 1.6错误&#xff0c;建议您首先阅读有关此主题的第一篇文章 。 本文将为您提供一个示例程序和…

java自定义一个timeout,Timeout操作符 RxJava 学习笔记二十一

timeout用于检测在给定时间内observables没有及时响应。如果指定的时间量没有发出任何项目&#xff0c;则超时会使observables失败并出现TimeoutException。我们将从debounce的示例中重用我们的observable来演示超时。输出&#xff1a;只要值不超过200ms&#xff0c;就会输出。…

用xshell ssh连接测试服务器时候出的问题

问题还原&#xff1a;用ssh连接测试服务器 给我结结实实报了个错 FBIwarning: ----------------------------------------------------------------------------------------------------------------------------以上 问题还原 解决过程&#xff1a;百度 博客地址http://blog.…

maven集成spring_Maven集成测试和Spring Restful Services

maven集成spring介绍 我的原始博客通过一个非常简单的示例展示了如何分离Maven单元和集成测试。 http://johndobie.blogspot.com/2011/06/seperating-maven-unit-integration-tests.html此后&#xff0c;许多人要求我提供比最初使用的示例更实际的示例。 这篇文章显示了如何在实…

WebService.asmx架设后,显示调用按钮的方法

我们在VS本地调试WebService的时候&#xff0c;页面是可以调试的&#xff0c;如下图 但是在发布以后&#xff0c;通过浏览器访问服务器上的地址&#xff0c;是不能调试你的程序的&#xff0c;就变成了这个样子&#xff1a; 可以通过修改服务器上的web.config达到远程调试的效果…

复习者-Java EE 7概览

随着红帽JBoss企业应用平台7&#xff08;EAP 7&#xff09;的出现&#xff0c;甚至最近刚刚通过Java EE 7认证的WebLogic服务器&#xff0c;我认为现在应该为您重新介绍Java Enterprise Edition 7的时候了功能&#xff0c;并指向更多资源。 Java EE 7 –开发人员的生产力&…

按窗口文件php代码,在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法...

有时候只是简单的为了测试某个php函数的效果&#xff0c;以前总是需要建一个php文件&#xff0c;复制这个文件的路径&#xff0c;再通过web访问或者用php命令执行这个php文件。一直想要怎么才能不用创建文件&#xff0c;才能直接执行PHP代码片段呢&#xff1f;终于找到了方法&a…

adf435编程_动态ADF列车:以编程方式添加列车停靠点

adf435编程我将展示如何以编程方式“即时”将火车停靠站添加到ADF火车中。 在我的用例中&#xff0c;我有一些票务预订应用程序。 它具有训练模型的有限任务流。 在火车的第一站&#xff0c;用户输入乘客数量&#xff0c;在随后的站点&#xff0c;他们输入一些乘客信息。 必须根…

JAVA消息服务JMS规范及原理详解

一、简介 JMS即Java消息服务&#xff08;Java Message Service&#xff09;应用程序接口&#xff0c;是一个Java平台中关于面向消息中间件&#xff08;MOM&#xff09;的API&#xff0c;用于在两个应用程序之间&#xff0c;或分布式系统中发送消息&#xff0c;进行异步通信。Ja…