执行测试用例,并分析测试结果。实验内容1)对预习报告中的编程代码进行上机调试,完成实验指导书中全部实验要求内容。2)写出实验报告。报告要求:有实验目的,实验内容,实验步骤,调试完成的准确编程代码,实验小结,回答问题。实验步骤及结果代码如下:Expackage Experiment2;import ; public class Ex2 {public static void ...
程序测试报告
课程名称: :
软件测试技术
指导教师: :
毛红梅
级: :
160462
朱青 16046233
朱振宇( 16046234 )
杜欣( 16046235 )
郭昂( 16046236 )
郑森及( 16046237 )
实验 1 1 (设计性)设计被测程序
实验目的
自行任选一门高级语言编写几个小模块。以用于将来的各种测试工作。
实验内容
1)对预习报告中的编程代码进行上机调试,完成实验指导书中全部实验要求内容。
2)写出实验报告。报告要求:有实验目的,实验内容,实验步骤,调试完成的准确编程代码,实验小结。
实验步骤及结果
代码如下:
package Experiment2;
import ; public class Ex2 {
public static void main(String[] args) {
@Test
public void calculate(){
int a=2,
b=6;
(_a的值为:_+a+_
b的值为:_+b);
(_a+b:_+ (a+b));
(_a-b:_+ (a-b));
(_a*b:_+ (a*b));
(_a/b:_+ (a/(float)b));
@Test
public void multipleUtility(){
int[] score= new int[]{20,56,89,400};
double temp=0;
(_成绩分布如下:_);
for(int x:score){
(x+_ _);
();
//求平均值
for(int i=0;i>temp+=score[i];
temp/=;
(_平均成绩为:_+temp);
//求最大值
temp=0;
for(int i=0;i>if(score[i]>temp)
temp=score[i];
(_成绩最大值为:_+temp);
//求最小值
temp=100;
for(int i = 0;i>if(score[i]temp=score[i];
(_成绩最小值为:_+temp);
//求方差
double sAve = 0;//平均值
double sVar = 0;//方差
int m = ;
for(int x:score){
sAve += x;
sAve /= m;//求得平均值
for(int x:score){
sVar += (x-sAve)*(x-sAve);
sVar = sVar/m;
(_成绩的方差为:_+sVar);
//求标准差
double sStan = (sVar);
(_成绩的标准差为:_+sStan);
实验体会
朱青(16046233):
本次的实验是对 Junit 包的第一次实验,通过导入 Junit 可以实现对程序单个方法的测试,能够在不需要 main 方法的前提下单独调用一个方法,前提是在被调用方法上面加上@Test 的注解,并且要进行测试的方法必须设置为 public void 权限,且没有参数,否则会报错。原因很简单,只有 public 方法虚拟机才可以在包外看见并调用,且并没有方法去调用它,所以无需返回值。
朱振宇(16046234): 本次试验以设计测试程序为目的,在设计过程中,应该注意设计出的程序能够进行合理的测试,并调试运行成功。
杜欣(16046235):
郭昂(16046236): 本次实验是写一小段代码以供以后实验课用于软件测试,相对来说比较简单 郑森及(16046237): 成功编写了几个小模块,对于程序编程理解更加深入
实验 2 2 (验证性)白盒测试(判定覆盖)
实验目的
1.选取一个模块,要求绘制出程序的控制流图。
2.采用判定覆盖方法设计测试用例。执行测试用例,并分析测试结果。
实验内容
1)对预习报告中的编程代码进行上机调试,完成实验指导书中全部实验要求内容。
2)写出实验报告。报告要求:有实验目的,实验内容,实验步骤,调试完成的准确编程代码,实验小结,回答问题。
实验步骤及结果
代码如下:
Ex
package Experiment2;
import ; public class Ex2 {
public static void main(String[] args) {
void calculate(int a,int b){
(_a的值为:_+a+_
b的值为:_+b);
(_a+b:_+ (a+b));
(_a-b:_+ (a-b));
(_a*b:_+ (a*b));
(_a/b:_+ (a/(float)b));
void multipleUtility(int[] score){
double temp=0;
(_成绩分布如下:_);
for(int x:score){
(x+_ _);
();
//求平均值
for(int i=0;i>temp+=score[i];
temp/=;
(_平均成绩为:_+temp);
//求最大值
temp=0;
for(int i=0;i>if(score[i]>temp)
temp=score[i];
(_成绩最大值为:_+temp);
//求最小值
temp=100;
for(int i = 0;i>if(score[i]temp=score[i];
(_成绩最小值为:_+temp);
//求方差
double sAve = 0;//平均值
double sVar = 0;//方差
int m = ;
for(int x:score){
sAve += x;
sAve /= m;//求得平均值
for(int x:score){
sVar += (x-sAve)*(x-sAve);
sVar = sVar/m;
(_成绩的方差为:_+sVar);
//求标准差
double sStan = (sVar);
(_成绩的标准差为:_+sStan);
int add(int a,int b){
return a+b;
} } T T
package Experiment2;
import ; import ;
public class TestClass {
Ex2 a = new Ex2();
@Test
public void testa(){
(10, 5);
@Test
public void testb(){
(new int[]{55,88,65,98});
@Test
public void testc(){
int b=(8, 10);
(_加法出错了_,b,19);
实验体会
朱青(16046233):
本次的实验使用了 Assert 方法,通过对 方法的使用,学会了当一个方法语法没问题但是逻辑有问题时输出提示语句。Assert 相当于我们给定一个我们认为输出的值,如果返回值与我们认定值不同,则表示逻辑错误,接着输出我们定义好的错误语句,int b=(8, 10); (_加法出错了_,b,19)就是一个很好的例子,当 b 返回值不是 19 时,说明程序有问题,于是 Junit 会提示“加法出错了”。
另外新学会了一种不用更改原程序而测试方法的办法,另起一个方法,在该方法头部注
解到@Test,然后在方法体内调用所需要测试的方法,前提是记得先声明一个类的实例,以实例来调用方法,除非是 static 方法。
朱振宇(16046234): 在本次试验中,我对于白盒测试有了更加深刻和直观的认识。对于判定覆盖,要注意条件为或的情况;对于条件覆盖测试,保证每个条件真假都取一次的用例可以有很多种,但是不一定保证所有的判定被覆盖,这可能会导致程序的一些逻辑错误无法被发现。
杜欣(16046235):
郭昂(16046236): 本次实验是对上次实验课写的代码进行测试,通过本次实验使我了解到软件测试的便捷性的重要性,让我对软件测试有了初步的了解 郑森及(16046237): 通过控制流图,成功的利用判定覆盖进行测试,对判定覆盖的过程更加熟悉 实验 3 3 (验证性)白盒测试(基本路径测试 )
实验目的
1.选取一个模块,要求绘制出程序的控制流图。
2.采用判定覆盖方法设计测试用例,执行测试用例,并分析测试结果。
3.可以对代码进行静态检查和动态测试。
实验内容
实验前需熟悉白盒测试及基本路径覆盖的概念,了解如何绘制程序的流程图和如何设计出测试用例。比较基本路径测试和判断覆盖的区别。
实验步骤及结果
TestSuite和TestCase都是继承自Test接口,同时,TestSuite的建立和使用依赖于TestCase实例,TestCase 继承自 Assert 类,因此 TestCase 中可以直接使用 Assert 中的相关方法。
一个简单的 Demo:
import ;
public class TestDemo extends TestCase{
@Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
();
(_setUp , hashCode = _+hashCode());
@Override
protected void tearDown() throws Exception {
// TODO Auto-generated method stub
();
(_tearDown,hashCode = _+hashCode());
public void testMethod1(){
(_testMethod1 , hashCode = _+hashCode());
public void testMethod2(){
(_testMethod2 , hashCode = _+hashCode());
一个简单的例子了解一下 TestSuite:
import ; import ;
import ;
public class TestSuiteDemo extends TestSuite{
public static Test suite(){
//创建 TestSuite 对象
TestSuite suite = new TestSuite();
//为 TestSuite 添加一个测试用例集合,参数为:Class extends TestCase> testClass
//通过参数可以知道,其实该参数就是 TestCase 的子类
();
//创建具体的测试用例
Test test = (, _testMethod1_);
//添加一个具体的测试用例
(test);
return suite;
} }
实验体会
朱青(16046233):
TestCase 和 TestSuite 类是 JUNIT 中比较重要的两个类,TestCase 和 TestSuite 可以认为是 JAVA 的合成设计模式在单元测试中的应用,其实即便我们没有自己声明和创建TestSuite 的子类,而且运行的 TestCase 子类的过程中也会创建 TestSuite 类,并将要执行的 TestCase 子类的实例对象添加到 TestSuite 中去执行。
朱振宇(16046234): 本次试验中,我了解到基本路径测试是在程序控制流程的基础上,通过分析控制结构,导出基本可执行路径集合,从而设计测试用例。
杜欣(16046235):
郭昂(16046236): 本次实验对黑盒测试进行的上机实验,本次实验学会了实际流程图和实际测试用例让我对软件测试有了新的认识。
郑森及(16046237): 熟悉了路径覆盖的过程,路径覆盖是要求覆盖程序中所有可能的路径,判断覆盖是使得程序中每个判断的取真分支和取假分支至少经历一次 实验 4 4 (验证性)黑盒测试(等价类划分)
实验目的
1.理解黑盒测试中等价类划分的基本原理。
2.能够根据相应的方法设计测试用例。
3.利用设计的测试用例测试编写的程序。
实验内容
1. 实验前需熟悉黑盒测试及等价类划分的概念,了解如何划分等价类和如何设计出测试用例。
2. 对预习报告中的编程代码进行上机调试,完成实验指导书中全部实验要求内容。
实验步骤及结果
等价类是指某个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等效的,也就是说,如果用这个等价类中的代表值作为测试用例未发现程序错误,那么该类中其他数据(测试用例)也不会发现程序中的错误[1]。
有效等价类:输入满足程序输入的要求(来自规格说明书),通俗的说就是正确的输入。
无效等价类:输入不满足程序输入的要求,即异常输入,需要系统对此有一定的容错性。
有一个员工管理系统,现对其录入模块进行测试。其中,人员信息包括:
编号:系统自动编号,无需手动录入; 姓名:必须有,要求为不超过 5 个汉字; 身份证:必须有,长度为 15 或 18 位置,末尾为数字或 X,注意大小写; 邮箱:要么为空白,输入必须包含@和. 年龄:18-80 之间的数字 住址:可以空白 注意:如果录入正确,则提示录入成功,如果录入错误,则提示数据不对。
输入:
编号(自动录入)
姓名 身份证号 邮箱 年龄
地址 划分等价类 :
实验体会
朱青(16046233):
黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试。而白盒测试可以当盒子是透明的,里面的一切我们都看的清楚,从而我们可以通过去测内部结构来测试。
朱振宇(16046234): 在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。软件不能直接收合理的数据还要接受无效和不合理的数据,这样软件才有更高的可靠性。
杜欣(16046235):
郭昂(16046236): 本次实验是黑盒测试中等价类的划分,让我熟悉了黑盒测试的基本概念,让我学会了划分等价类和设计测试用例。
郑森及(16046237): 了解了等价类划分为按区间划分、按数值划分、按数值集合划分、按限制条件或规划划分、按处理方式划分。并且按此设计测试用例
实验 5 5 (验证性)黑盒测试(边界值测试)
实验目的
1.理解黑盒测试中边界值测试的基本原理, 2.能够根据相应的方法设计测试用例。
3.利用设计的测试用例测试编写的程序。
实验内容
1. 实验前需熟悉黑盒测试及等价类划分的概念,了解如何划分等价类和如何设计出测试用例。
2. 对预习报告中的编程代码进行上机调试,完成实验指导书中全部实验要求内容。
实验步骤及结果
现有一个程序 int CheckTel(char *rc, char *n)执行电话号码有效性检查功能,中国的固定电话号码由两部分组...2024-01-14