白盒测试实验报告

2024-04-08

白盒测试实验报告(精选6篇)

篇1:白盒测试实验报告

软件学院综合性、设计性实验报告

专业:

年级/班级:

2015—2016 学年第一学期 课程名称 软件测试 指导教师

本组成员 学号姓名

实验地点

实验时间 2015 年 12 月 26日 项目名称 白盒测试 实验类型 综合性/设计性

一、实验目的 1.通过实验熟悉测试用例设计 2.通过实验熟悉白盒测试

二、实验仪器或设备 计科楼计算机

三、总体设计(设计原理、设计方案及流程等)

程序流程图:

程序控制流图

四、实验步骤(包括主要步骤、代码分析等)

代码分析

/** 判断三角形的类 */

public class TriangleTestMethod {

/** 判断三角形的种类。参数 a, b, c 分别为三角形的三边,* 返回的参数值为 0,表示非三角形;

* 为 1,表示普通三角形;

* 为 2,表示等腰三角形;

* 为 3,表示等边三角形。

*/

public static int comfirm(int a, int b,int c){

if((a + b > c)&&(b + c > a)&&(a + c > b)){ // 判断为三角形

if((a == b)&&(b ==c))// 判断为等边三角形 return 3;

if((a == b)||(b == c)||(a == c))// 判断为等腰三角形 return 2;

else // 判断为普通三角形 return 1;

}

else { // 为非三角形 return 0;

}

}

}

三、测试用例

1.语句覆盖测试用例:

输入 期望输出 覆盖对象 测试结果

Case1

0 ①, ⑤ 0

a=1, b=6, c=7

Case2 a=3, b=4, c=5 1 ①, ②, ④, ⑥ 1

Case3 a=3, b=3, c=4 2 ①, ②, ④, ⑦ 2

Case4 a=3, b=4, c=5 3 ①, ②, ③ 3

2.判定覆盖测试用例

输入 期望输出 覆盖对象 测试结果

Case11 a=1, b=2, c=3 0 ①, ⑤ 0

Case12 a=3, b=4, c=5 1 ①, ②, ④, ⑥ 1

Case13 a=3, b=3, c=4 2 ①, ②, ④, ⑦ 2

Case14 a=3, b=4, c=5 3 ①, ②, ③ 3

3.条件覆盖测试用例

输入 期望输出 覆盖对象

测试结果

Case5 a=1, b=2, c=3 0 F1, T2, T3

0

Case6 a=7, b=1, c=6 0 T1, F2, T3

0

Case7 a=1, b=7, c=6 0 T1, T2, F3

0

Case8 a=3, b=3, c=4 2 T1,T2,T3, T4, 2

F5, T6, F7, F8

Case9 a=3, b=4, c=3 2 T1,T2,T3, F4, 2

F5, F6, F7, T8

Case10 a=4, b=3, c=3 2 T1,T2,T3, F4, 2

T5, F6, T7, F8

4.条件-判定覆盖测试用例

输入 期望输出 覆盖对象

测试结果

Case15 a=1, b=6, c=7 0 F1, T2, T3

0

(①, ②)

Case16 a=1, b=1, c=6 0 T1, F2, T3

0

(①, ②))

Case17 a=7, b=1, c=6 0 T1, T2, F3

0

(①, ②)

Case18 a=3, b=4, c=3 2 T1,T2,T3, T4, 2

F5, T6, F7, F8

(①, ②, ③, ⑦)

Case19 a=4, b=3, c=3 2 F T1, T2, T3, 4, 2

F5, F6, F7, T8

(①, ②, ③, ⑦)

Case20 a=3, b=3, c=4 2 T1,T2,T3, F4, 2

T5, F6, T7, F8

(①, ②, ③, ⑦)

Case21 a=3, b=3, c=3 3 F1, T2, T3

(①, ②, ③)

Case22 a=3, b=4, c=5 1 T1, F2, T3

(①, ②, ④, ⑥)

5.条件组合覆盖测试用例

输入 期望输出 覆盖对象

测试结果

Case23 a=1, b=6, c=7 0 F1, T2, T3

0

Case24 a=7, b=6, c=1 0 T1, F2, T3

0

Case25 a=1, b=7, c=6 0 T1, T2, F2

0

Case26 a=3, b=3, c=3 3 T1, T2, T3,3

T4, T5

Case27 a=3, b=3, c=4 2 T1, T2, T3, T4, F5, F6, F7, T8

Case28 a=4, b=3, c=3 2 T1, T2, T3, 2

F4, T5, F6, T7, F8

Case29 a=3, b=4, c=5 1 T1, T2, T3, 1

F4, F5, F6, F7, F8

Case30 a=3, b=4, c=3 2 T1, T2, T3, 2

F4, F5, F6, F7, T8

备注 其他条件组合,无法到达结束

基本路径覆盖测试用例

输入 期望输出 覆盖对象

测试结果

Case31

a=7, b=6, c=1 0 A->D

0

Case32

a=1 b=6, c=7 0 A->B->D

0

Case33

a=1, b=7, c=6 0 A->B->C->D

0

Case34 a=3, b=3, c=3 3 A->B->C->E->G-> 3

H

Case35 a=3, b=3, c=4 2 A->B->C->E->G-> 2

I

Case36 a=4, b=3, c=3 2 A->B->C->E->F-> 2

H

Case37 a=3, b=4, c=3 2 A->B->C->E->F->J 2

->H

Case38 a=3, b=4, c=5 1 A->B->C->E->F->J 1

->K

五、结果分析与总结 试验中对于路径测试有了更深的理解,可以更好,更迅速的去划分路径,设计测试用例,通过试验,我对软件测试有了进一步的认识和学习,对白盒测试流程有了较清楚的了解,收获很多。

教师签名:

****年**月**日

篇2:白盒测试实验报告

一、实验目的(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;

(2)学习测试用例的书写。

二、实验内容

判断三角形类型

输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。

要求:

为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。

(1)画出程序的流图;

(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径

要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%

(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。

(4)通过你的测试,请总结你所使用测试方法发现的Bug。

三、实验要求

(1)根据题目要求编写测试用例

(2)撰写实验报告

(3)有关的实现程序请附到实验报告中

(4)实验报告命名规则:学号后两位+姓名_白盒实验

四、实验报告

(1)程序代码:

1.import

java.io.*;

public

class

sanjiaoxing

{

private

static

int

x;

private

static

int

y;

private

static

int

z;

2.public

static

void

main(String

arg[])

{

int

v=0;

System.out.println(“请输入三角形第一条边的长!“);

x=getside(v);

System.out.println(“请输入三角形第二条边的长!“);

y=getside(v);

System.out.println(“请输入三角形第三条边的长!“);

z=getside(v);

ifzhijiaotriangle();

}

3.public

static

int

getside(int

v)

{

BufferedReader

input=new

BufferedReader(new

InputStreamReader(System.in));

try{

v=Integer.parseInt(input.readLine());

}

catch(IOException

e){}

return

v;

}

public

static

void

ifzhijiaotriangle()

{

if((x>0&&x<200)&&(y>0&&y<200)&&(z>0&&z<200))

{

if(x+y<=z||x+z<=y||z+y<=x)

{

6.System.out.println(“您输入的三边不能构成三角形“);

}

7.else{

System.out.println(“一般三角形“);

}

8.else

if(x==y||x==z||y==z)

{

if(x==y&&y==z)

10.System.out.println(“您输入的三角形是等边三角形“);

12.else

System.out.println(“您输入的三角形是等腰三角形“);

}

}

11.else{

System.out.println(“超出“);

}

}

}

(2)

程序的流图:

(3)语句覆盖;

编号

测试用例

执行路径

覆盖语句

预输出结果

(0,10,20)

a,c,d

1,2,3,4,11,13

超出

(10,20,35)

a,b,e,f

1,2,3,4,5,6,13

不能构成三角形

(3,3,5)

a,b,g,j,k,l

1,2,3,4,5,7,9,10,13

等腰三角形

(3,3,3)

a,b,g,j,m,n

1,2,3,4,5,7,9,12,13

等边三角形

(10,20,25)

a,b,g,h,i

1,2,3,4,5,7,8,13

一般三角形

(4)

判定覆盖;

编号

测试用例

执行路径

覆盖判定

预输出结果

(0,10,20)

a,c,d

F1

超出

(10,20,35)

a,b,e,f

T1,F2

不能构成三角形

(10,20,25)

a,b,g,h,i

T1,T2,F3

一般三角形

(3,3,5)

a,b,g,j,k,l

T1,T2,T3,F4

等腰三角形

(3,3,3)

a,b,g,j,m,n

T1,T2,T3,T4

等边三角形

(5)

条件覆盖:

条件

符号

a>=1&&

a<=200

1T

b>=1&&

b<=200

2T

c>=1&&

c<=200

3T

a+b>c

4T

a+c>b

5T

b+c>a

6T

a==b

7T

b==c

8T

a==c

9T

编号

测试用例

执行路径

覆盖条件

预输出结果

(0,10,20)

a,c,d

-1T,2T,3T

超出

(10,20,35)

a,b,e,f

1T,2T,3T,-4T,5T,6T

不是三角形

(10,35,20)

a,b,e,f

1T,2T,3T,4T,-5T,6T

不是三角形

(35,10,20)

a,b,e,f

1T,2T,3T,4T,5T,-6T

不是三角形

(10,20,25)

a,b,g,h,i

1T,2T,3T,4T,5T,6T,-7T,-8T,-9T

一般三角形

(3,3,3)

a,b,g,j,m,n

1T,2T,3T,4T,5T,6T,7T,8T,9T

等边三角形

(3,3,5)

a,b,g,j,k,l

1T,2T,3T,4T,5T,6T,7T,-8T,-9T

等腰三角形

(6)

判定/条件覆盖;

编号

测试用例

执行路径

覆盖条件

覆盖判定

预输出结果

(0,10,20)

a,c,d

-1T,2T,3T

F1

超出

(10,20,35)

a,b,e,f

1T,2T,3T,-4T,5T,6T

T1,F2

不能构成三角形

(10,35,20)

a,b,e,f

1T,2T,3T,4T,-5T,6T

T1,F2

不能构成三角形

(35,10,20)

a,b,e,f

1T,2T,3T,4T,5T,-6T

T1,F2

不能构成三角形

(10,20,25)

a,b,g,h,i

1T,2T,3T,4T,5T,6T,-7T,-8T,-9T

T1,T2,F3

一般三角形

(3,3,3)

a,b,g,j,m,n

1T,2T,3T,4T,5T,6T,7T,8T,9T

T1,T2,T3,T4

等边三角形

(3,3,5)

a,b,g,j,k,l

1T,2T,3T,4T,5T,6T,7T,-8T,-9T

T1,T2,T3,F4

等腰三角形

(7)

组合覆盖;

编号

测试用例

执行路径

覆盖条件

预输出结果

(0,201,201)

a,c,d

-1T,-2T,-3T

超出

(201,201,1)

a,c,d

-1T,-1T,3T

超出

(201,2,201)

a,c,d

-1T,2T,-3T

超出

(2,201,202)

a,c,d

1T,-2T,-3T

超出

(1,2,201)

a,c,d

1T,2T,-3T

超出

(1,201,2)

a,c,d

1T,-2T,3T

超出

(201,1,2)

a,c,d

-1T,2T,-3T

超出

(10,20,35)

a,b,e,f

1T,2T,3T,-4T,5T,6T

不能构成三角形

(10,35,20)

a,b,e,f

1T,2T,3T,4T,-5T,6T

不能构成三角形

(35,10,20)

a,b,e,f

1T,2T,3T,4T,5T,-6T

不能构成三角形

(3,4,5)

a,b,g,h,i

1T,2T,3T,4T,5T,6T,-7T,-8T,-9T

一般三角形

(3,3,5)

a,b,g,j,k,l

1T,2T,3T,4T,5T,6T,7T,-8T,-9T

等腰三角形

(5,3,3)

a,b,g,j,k,l

1T,2T,3T,4T,5T,6T,-7T,8T,-9T

等腰三角形

(3,5,3)

a,b,g,j,k,l

1T,2T,3T,4T,5T,6T,-7T,-8T,9T

等腰三角形

(3,3,3)

a,b,g,j,m,n

1T,2T,3T,4T,5T,6T,7T,8T,9T

等边三角形

(8)

基本路径覆盖;

经过计算,程序流图的环复杂度为5,因此基本路径有5条

编号

测试用例

基本路径

预输出结果

(10,20,35)

a,b,c,f

不能构成三角形

(3,4,5)

a,b,g,h,i

一般三角形

(3,3,5)

a,b,g,j,k,l

等腰三角形

(3,3,3)

a,b,g,j,m,n

等边三角形

(0,201,201)

a,c,d

超出

附录:测试用例书写格式(语句覆盖为例)

测试用例表

编号

测试用例

执行路径

覆盖条件

覆盖语句

预输出结果

篇3:浅谈白盒测试技术

白盒测试是针对被测单元内部是如何进行工作的一种测试方法.它根据程序控制结构设计导出测试用例,主要用于软件程序的验证。又称透明盒测试、逻辑驱动测试。

采用白盒测试应全面的了解程序内部的逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法。在使用这种方法时,测试者必须检查程序的内部结构,从检查程序的逻辑结构着手,得出测试数据。

2 白盒测试的常用方法

覆盖率测试用例设计方法是一种常用的白盒测试方法。覆盖率不是目标,只是一种手段。测试的目标是尽可能地去发现错误,去寻找被测试对象与规定的不一致的地方。

目前,比较常用的覆盖测试用例方法包括语句覆盖、判定覆盖、条件覆盖、组合覆盖、路径覆盖。为了便于理解,我们结合一个实例来分别讲解这几种方法。(程序如下)

根据程序画出相应的流程图和流图如图1,图2所示。

1)语句覆盖

采用语句覆盖方法应选择足够多的测试用例,使程序中的每个可执行语句至少执行一次。

例如上述实例,我们设计一个能通过流图中路径BCEF(执行了程序(1)(2)(3)(4)(5)语句)的测试路径即可。即当A=1,B=1,C=3,X=2时程序的五个语句均得到执行,完成了语句覆盖。换句说,测试用例A=1,B=1,C=3,X=2就可以满足了语句覆盖。

2)判定覆盖

判定覆盖比语句覆盖较强一种的方法,它通过执行足够的测试用例,使得程序中的每个判定至少都获得一次”真”值和”假”值.也称为”分支覆盖”。

例如上述实例,要满足判定覆盖的测试用例就要使程序中的(1)语句和(3)语句获得一次”真”值和”假”值。

判定((A<2)and(B=1))的值至少获得一次”真”值(例如:A=1,B=1)和”假”值(例如:A=2,B=1);

判定((C>2)and(X>1))的值至少获得一次”真”值(C=3,X=2)和”假”值(C=2,X=2)。于是,我们可以设计出以下两组测试用例就可以满足判定覆盖。

测试用例1:A=1,B=1,C=3,X=2

测试用例2:A=2,B=1,C=2,X=2

3)条件覆盖

条件覆盖是设计若干个测试用例,在执行测程序以后,要使用每个判定中的每个条件的可能值至少满足一次.

例如上述实例,要满足条件覆盖的测试用例,就要满足以下要求:

判定((A<2)and(B=1))中的条件(A<2)的值至少获得一次”真”值(例如:A=1)和”假”值(例如:A=2),条件(B=1)分的值至少获得一次”真”值(例如:B=1)和”假”值(例如:B=2)。

同理,也要使判定((C>2)and(X>1))中的条件(C>2)的值至少获得一次”真”值(例如:C=3)和”假”值(例如:C=2),条件(X>1)分的值至少获得一次”真”值(例如:X=2)和”假”值(例如:X=1)。

于是,我们可以设计出以下两组测试用例就可以满足条件覆盖,测试用例如下:

测试用例1:A=1,B=1,C=3,X=2

测试用例2:A=2,B=2,C=2,X=1

4)组合覆盖

组合覆盖是通过执行足够的测试用例,使得每个判定中的条件的各种可能都至少执行一次.因此组合覆盖的测试用例一定满足判定覆盖、条件覆盖。

例如上述实例,要满足组合覆盖的测试用例,就要满足以下要求:

对于,判定((A<2)and(B=1))中的条件的各种可能值有:

(A<2)、(B=1)两者的逻辑值同时为真,例如A=1,B=1;

(A<2)、(B=1)两者的逻辑值同时为假,例如A=2,B=2;

(A<2)、(B=1)两者的逻辑值前一个为真,后一个为假,例如A=1,B=2;

(A<2)、(B=1)两者的逻辑值前一个为假,后一个为真,例如A=2,B=1;

同理,也要使判定((C>2)and(X>1))中的条件的各种可能值有:

(C>2)、(X>1)两者的逻辑值同时为真,例如C=3,X=2;

(C>2)、(X>1)两者的逻辑值同时为假,例如C=2,X=1;

(C>2)、(X>1)两者的逻辑值前一个为真,后一个为假,例如C=3,X=1;

(C>2)、(X>1)两者的逻辑值前一个为假,后一个为真,例如C=2,X=2;

于是,我们可以设计出以下四组测试用例就可以满足组合覆盖,测试用例如下:

测试用例1:A=1,B=1,C=3,X=2;

测试用例2:A=2,B=2,C=2,X=1;

测试用例3:A=1,B=2,C=3,X=1;

测试用例4:A=2,B=1,C=2,X=2;

5)路径覆盖

路径覆盖是指设计足够多的测试用例,要求覆盖程序中所有的可能的路径.路径覆盖就是从一个程序的入口开始,执行所经历的各个语句的完整过程。

例如上述实例,要满足路径覆盖的测试用例,就要覆盖AD、AEF、BCD、BCEF这四条路径(流图所示)。

于是,我们可以设计出以下四组测试用例就可以满足路径覆盖,测试用例如下:

路径1 AD(1-3-5)测试用例1:A=2,B=2,C=2,X=1;

路径2 AEF(1-3-4-5)测试用例2:A=2,B=2,C=3,X=2;

路径3 BCD(1-2-3-5)测试用例3:A=1,B=1,C=2,X=1;

路径4 BCEF(1-2-3-4-5)测试用例3:A=1,B=1,C=3,X=2;

3 结束语

本文着重介绍了白盒测试的基本概念、常用的测试技术、并通过实例进行讲解。白盒测试是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试普遍应用于单元测试当中。

摘要:伴随着软件和硬件的发展而逐步发展起来的软件测试。软件测试是一种检验手段,目的是为了寻找软件系统的中缺陷,在业界已经有越来越多的公司意识到了软件测试的重要性,并且在软件测试方面加大了投入。其中,白盒测试是软件测试技术中最基本的方法之一,是针对被测单元内部是如何进行工作的测试,是以覆盖测试与路径测试为基本策略。该文将重点介绍白盒测试中的常用测试方法,并通过实例介绍实际运用白盒测试的技术。

关键词:白盒测试,语句覆盖,判定覆盖,条件覆盖,组合覆盖,路径覆盖

参考文献

[1]毛志雄.软件测试理论与实践[M].北京:中国铁道出版社,2008.

[2]贺平.软件测试教程[M].北京:电子工业出版社,2007.

篇4:白盒测试实验报告

关键词:面向对象;白盒测试;用例

1 引言

如何提高软件质量是软件工程致力解决的关键问题之一。软件测试和验证是保证软件正确性和提高软件可靠性的最基本和最重要的手段。自20世纪80年代以来,面向对象方法和技术的研究已遍及计算机软件、硬件和应用各领域,在软件工程领域更是得到了广泛的重视,但研究的重点和成果主要集中于面向对象分析与技术方法学领域(即软件开发的前期),而面向对象软件测试技术的研究还比较薄弱。近年来,国内外对面向对象软件测试进行了大量的研究,但目前该领域还处于百家争鸣的阶段,还未形成一套较为成熟与完善的软件测试理论与方法。本文从软件测试的层次划分出发,对面向对象的测试方法和解决方案做一探讨,并结合具体项目给出了实例设计。

2 面向对象理论

运用面向对象的方法和技术,首先必须明确什么是“面向对象”。曾经有很多年,“面向对象”被认为是使用一系列面向对象程序设计语言(如Ada95,C++,Smalltalk等)的软件开发方法。现在“面向对象”己包含完整的软件工程观点,Peter Coad和Edward Yourdon给出了“面向对象”的如下定义:面向对象(Object-Oriented)=对象(Objects)+分类(Classification)+继承(Inheritance)+通信(Communication)。

面向对象软件的封装性、继承性、多态性和动态绑定等特性提高了软件的可重用性,使软件开发更快、质量更高,而且软件易于维护、易于修改。通过组装可利用子系统而产生更大的系统,然而另一方面,它却给软件测试带来了更多的困难。与之相对应的软件测试技术还相对滞后,如何探索出一套行之有效的方法,尤其是如何采用自动化的方法来测试这些软件,己成为软件测试者们所面临的挑战。

3 白盒测试的传统方法

白盒测试方法主要依据逻辑段盖准则,如语句覆盖和判定覆盖等。这些覆盖准则是白盒测试方法的重要理论基础,能够指导测试人员设计出有效的测试用例。

SQA Team Test是测试Power Builder软件的有用测试工具,它能够与Power Builder对象紧密地结合在一起,根据使用SQA Team Test测试软件的经验和对该软件的理解,认为设计出有效的测试用例仍是使用SQA Team Test测试软件的关健性工作。能否设计出一系列有效的测试用例,将直接影响到软件的测试效果,因为SQA Team Test测试软件的测试思想是回归测试,所以能否发现软件中存在的问题,仍依赖于测试用例的设计。

从前面的分析中可以看出,无论是使用白盒测试方法还是使用SQA Team Test测试软件,设计有效的测试用例是测试工作的重要环节。传统的白盒测试方法是按照软件模块内的逻辑控制结构、运行过程和模块间的组织结构与接口,逐个设计出针对每个模块、每个子系统和系统的测试用例,因此每个模块都会被测试到,或者说能够保证测试的模块被覆盖。因为白盒测试的基础是依据对程序结构的清楚描述,而模块内部的逻辑履盖由逻辑覆盖准则提供保证。但是在事件驱动面向对象的软件中,软件的设计思路和软件的结构与传统的面向过程的软件相比已经发生了相当大的改变,对象和事件概念在软件开发中占有非常重要的地位,而传统的白盒测试方法并不能适应这种变化。

4 面向对象白盒测试框架分析

测试设计是整个测试过程的关键部分,面向对象软件开发中的白盒测试设计优劣更是整个测试工作的成败所在。为此在本文中我们可以具体的实例来设计一个白盒测试的框架和方法。

面向对象的白盒测试通常不能独立地测试一个方法(操作),这个方法相当于传统的测试单元,而是将这个方法作为一个测试类的一部分。

如果一个基类中有一个方法,继承类也继承了这个方法,但是这个方法可能在继承类中被私有数据和方法使用,所以尽管基类中已经测试了这个方法,但是每个继承类也需要考虑对这个方法进行测试。一般从下面两个方面进行考虑。

(1)继承的成员函数是否都不需要测试。一般来说,对父类中已经测试过的成员函数,两种情况需要在子类中重新测试,即继承的成员函数在子类中作了改动,或成员函数调用了改动过的成员函数的部分。

(2)对父类的测试是否能照搬到子类。多态有几种不同的形势,如参数多态,包含多态,过载多态。包含多态和过载多态在面向对象语言中通常体现在子类与父类的继承关系上。对具有包含多态的成员函数测试时,只需要在原有的测试分析的基础上扩大测试用例中输入数据的类型。

从上面的分析可以看出,面向对象的软件的白盒测试主要是针对软件设计中的类和对象来进行测试的。因此链接被测试的软件的类结构,是进行白盒测试的关键。由于封装的原则,在面向对象软件的类一般设计为私有或受保护类型,即类的属性和方法是无法从外部直接访问的,必须通过类中的公有方法来实现。因此设计测试用例时必须要注意对这些公有成员的才做。白盒测试逻辑覆盖的方法主要包括语句覆盖、分支覆盖、条件覆盖、条件组合覆盖等。穷举测试要求对所有可能的输入和状态执行所有的路径,除非对一些小实例,穷举测试是不现实的,通常是通过从所有可能的测试用例中确定最有可能检测出最多错误的子集,进行有限的测试来发现尽可能多的错误。但是为了实现对类中所有方法的有效测试,必须设计足够多的测试用例。

下面我们就以一个自动售货机为例设计一个软件系统的白盒测试用例。一个软件系统是有很多的服务组成的,而每个服务时由很多的用例组成的,下面我们给出自动售货机的用例和服务,如表1所示,描述用例的用例图如图1所示。

对用例的用户描述往往采用系统序列图,它将系统看做一个整体,并从用户的角度描述用例的处理过程,以购买商品用例为例,给出其处理过程序列表如表2所示。

借助购买商品的流程可以对服务进行白盒测试。白盒测试主要进行基本路径测试,我们在这里主要设计语句覆盖测试和分支覆盖测试,来设计面向对象软件的白盒测试的测试用例,测试用例的设计原则是保证在测试中程序的每一个可执行语句至少执行一次,针对购买商品的流程得出的具体路径有两条,路径1:1-2-3-4-5;路径2:1-3a-2-3-5a-4-4a-5。

根据路径生成测试用例:根据判断节点给出的条件,选择适当的数据以保证每一条路径可以被测试到。只要设计出的测试用例能够保证控制流程图中的所有路径都能被执行到,就可以使得程序中的每一个可执行语句至少执行一次,则服务中每个条件的真假两种取值都可以得到测试,从而实现可以检查程序的主要执行路径,又可以覆盖程序的所有分支,而且可以满足语句覆盖的要求。

5 小结

由于面向对象软件自身的特点,使得面向对象的白盒测试有别于传统的白盒测试思想。到目前为止,现有的面向对象软件测试方法还存在许多问题,对面向对象软件的白盒测试技术还有待进一步的深入研究,以便做出对软件测试的理论和实践有指导意义、有影响的成果。

参考文献

[1]LARMAN C.UML和模式应用:面向对象分析与设计导论[M].姚淑珍,李虎,译.北京:机械工业出版社,2001.

[2]JACOBSON I, BOOCH G, RUMBAUGH J.统一软件开发过程[M].周伯生,冯学民,樊东平,译.北京:机械工业出版社,2001.

篇5:系统测试实验报告

万继王(20111081147)

任课教师:贾春花

班级:2011级计科(1)班

实验目的:

计算机在生活中的普遍,计算机已经成为我们生活中不可缺少的部分,计算机已经被广泛的应用到各个领域,网络技术的飞速发展,互联网已经成为了人们发布与获取信息的重要途径之一,在我们的生活中已经离不开计算机,离不开网络,计算机给人们的生活带来方便的同时也需要开发相应的管理系统和软件,所以,这就需要我们进行软件测试,软件测试是使用人工或者自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或者弄清预期结果与实际结果之间的差别。软件测试作为保证软件质量、提高软件可靠性的重要手段,在软件开发中起着不可替代的作用。其关键与核心是测试数据生成。软件测试的实质是根据软件开发各阶段的规格说明和程序的内部结构精心选取一批测试数据,形成测试用例,并用这些测试用例去驱动被测程序,观察程序的执行结果,验证所得结果与预期结果是否一致,然后做相应的调整。

此次实验是为了检验我们是否掌握本学期所学的《软件质量保证与测试》这门课程的基础知识,并查找出被测试软件的不足或缺陷,及时做出相应的调整,也让我们掌握一定的黑盒测试和白盒测试的相应内容。还有就是在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求(或达到xxx功能目标),同时,了解软件测试概念,了解软件测试的主要内容,了解手动测试自动测试,初步掌握测试软件并能够进行简单运用。了解软件测试在当前计算机行业中的相关地位,了解为了成为软件测试工程师所需要掌握的技能。

实验内容:

软件测试前景:随着软件产业的发展,软件产品的质量控制与质量管理正逐渐成为软件企业生存与发展的核心。

软件测试是指:使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

软件测试的内容:1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。

软件测试的对象:不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。

实验测试步骤:

第一步,进入登录界面。在运行程序后弹出登录界面,有账号的可以直接登录,没有账号的要先申请账号(及注册),然后才可以登录。在注册账号时需要自己填写账号、密码、昵称和个性签名。这些东西都没有限制,可以是数字、字母、汉字以及三者的混合,头像的话是可以自己选择的。账号和密码是必须填写的,否则无法注册,其他的可填可不填。相关截图如下所示:

登录界面:

账号申请界面:

账号申请成功界面 : 第二步,进行登录。登录之后可以进行密码修改和添加好友。登录之后我们 可以点击修改密码对密码进行修改,也可以输入好友账号添加好友。添加好友时输入好友账号,点击添加好友,弹出添加好友对话框,点击“是”,添加好友就成功了,若不想添加此好友可以点击“否”,就可以拒绝添加此好友了。

相关截图如下所示:

登录成功界面:

修改密码界面: 篇二:web系统测试综合实验报告

目录 1.1.1系统功能..........................................................................................................................4 1.1.2系统的体系结构..............................................................................................................4 1.1.3开发环境..........................................................................................................................5 1.2.1测试需求..........................................................................................................................5

1、功能测试.....................................................................................................................6

2、性能测试.....................................................................................................................6

3、兼容性测试.................................................................................................................6 1.2.2测试资源..........................................................................................................................6

1、人力资源.....................................................................................................................6

2、测试环境.....................................................................................................................6

3、测试工具.....................................................................................................................6

4、文档资料.....................................................................................................................7 1.2.3测试策略..........................................................................................................................7

1、功能测试.....................................................................................................................7

2、性能测试.....................................................................................................................8

3、用户界面测试.............................................................................................................9

4、安全性测试.................................................................................................................9

5、兼容性测试.................................................................................................................9 1.2.4测试标准..........................................................................................................................9

1、测试特性.....................................................................................................................9

2、输出准则.....................................................................................................................9

3、缺陷严重级别定义...................................................................................................10 测试用例设计.................................................................................................................11

2、录制的测试脚本.......................................................................................................14

3、执行测试...................................................................................................................14

4、测试结果...................................................................................................................14 1.3.2相册模块测试................................................................................................................14

1、测试用例设计...........................................................................................................15

2、执行测试...................................................................................................................16

3、测试结果...................................................................................................................16 1.3.3个人档模块测试............................................................................................................17

1、测试用例设计...........................................................................................................17

2、执行测试...................................................................................................................19

3、测试结果分析...........................................................................................................19 1.3.4日志模块测试................................................................................................................20

1、测试用例设计...........................................................................................................20

2、执行测试...................................................................................................................27

3、测试结果分析...........................................................................................................27 1.3.5链接测试........................................................................................................................27 1.4.1测试用例设计................................................................................................................30 1.4.2测试环境........................................................................................................................33 1.4.3测试执行........................................................................................................................33 1.4.4测试结果分析................................................................................................................34 1.1.1系统功能

(1)日志模块:撰写和发表日志。

(2)撰写说说模块:发表说说。

(3)相册管理模块:支持多相册功能,可将相册分类收藏,可以上传照片,创建相册,同时可以上传视频和制作个性相册等功能。

(4)音乐盒模块:可以收藏音乐,可以管理我的音乐盒里的音乐等。

(5)个人档管理模块:修改自己的个人信息。

(6)留言板模块:查看留言和对留言进行回复。

(7)用户模板:提供用户制定功能,打造个性,设置自己喜欢的风格。1.1.2系统的体系结构

系统的体系结构如下图: 1.1.3开发环境

(1)操作系统:windows xp(sp2)(2)web服务器:apache(3)数据库:mysql(4)开发语言和工具:php+zend+phpwind(5)浏览器:ie6.0 1.2.1测试需求

此系统属于一般类型的应用软件,用户要求各功能正常使用,系统响应比较快,运行稳健,能满足10000人正常使用。此系统用户可以建立个人主页(发表日志,发表说说,相册管理,音乐盒管理,个人档管理等)。

此次测试的目的就是检查核心模块功能是否正常,验证系统性能是否满足应用需求。这次测试的具体内容如下:篇三:在线考试系统实验报告

河南工程小学院

毕业设计(论文)报告

系 别 软件工程系

专 业 计算机应用

班 级

姓 名 ****** 学 号 ********* 设计题目 在线考试系统

指导教师 ****** 起迄日期 2011.1.2——2011.4.20 毕业设计诚信承诺书

本人慎重承诺和声明: 我承诺在毕业设计过程中严格遵守学校有关规定,在指导教师的安排与指导下完成所规定的毕业设计工作,绝不弄虚作假,不请别人代做毕业设计或抄袭别人的成果。所撰写的毕业论文或毕业设计是在指导老师的指导下自主完成,文中所有引文或引用数据、图表均注明来源,本人愿意为由此引起的后果承担责任。

学生签名: 日期: 年 月 日

毕业设计知识产权权属声明

本人在老师指导下所完成的论文及设计成果、知识产权归属学校。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。

学生签名: 日期: 年 月 日

指导教师签名: 日期: 年 月 日

在线考试系统

摘 要

通过考试系统webexam是目前市场占有率较高,应用最广泛的远程网络学习考试软件,适合政府、行业及企业的各专业网上考试、作业、练习等应用。它采用web方式,同时适用于局域网和internet,无需安装客户端,即可实现网上考试、作业、练习、成绩排行等功能,并能够答卷保存、自动判分、成绩查询和分析等功能

该系统同时拥有最开放的题库管理系统和最灵活的组卷系统,能够自动输出word试卷,提供excel题目导入导出、题库和试卷导入导出等设计,提供资源的快速收集和高度共享。在开发方法上,引入了当今流行的microsoft.net remoting 技术思想,把整个开发程分为需求分析、概要设计、详细设计、系统实现等步骤。该系统通过优化和再造管理流程,使人力资源的管理更为高效和科学,数据更为准确,从而将人事部门从繁重的、耗时的工作中解放出来,把精力集中到更高层的政策性工作中去。关键词 在线考试系统 ; c#.net编程语言 ; visual studio 2008 ;sql server 2005数据库

目 录

第1章 绪论.....................................................................................................................................1 1.1 课题研究背景...................................................................................................................1 1.2 课题研究目的和意义.......................................................................................................1 第2章 系统分析概述.....................................................................................................................2 2.1 引言...................................................................................................................................2 2.2 系统需求分析...................................................................................................................2 2.3 系统概述...........................................................................................................................3 2.4 visual studio 2008的概述..........................................................................................4 2.5 sql server 2005数据库的概述....................................................................................5 第3章 系统方案总体设计.............................................................................................................6 3.1 系统设计思想及相关技术介绍.......................................................................................6 3.1.1 系统架构设计.......................................................................................................6 3.1.2 系统总体模块功能设计.......................................................................................6 第4章 数据库的设计.....................................................................................................................8 4.1 引言...................................................................................................................................8 4.2 数据库需求分析...............................................................................................................8 4.3 数据库概念结构设计.......................................................................................................8 4.4 数据库逻辑结构设计.......................................................................................................8 第5章 界面设计与实现...............................................................................................................10 5.1 主页设计.........................................................................................................................10 5.1.1 实现目标.............................................................................................................10 5.1.2 登录窗口.............................................................................................................10 5.1.3 注册窗口.............................................................................................................12 5.2 主要界面设计—用户登录信息画面.............................................................................13 5.2.1 实现目标.............................................................................................................13 5.2.2 主界面.................................................................................................................13 5.3 主要界面设计 —— addquestion.aspx.....................................................................17 5.3.1 实现目标.............................................................................................................17 5.4 主要界面设计 —— usermangement.aspx.................................................................18 5.4.1 实现目标.............................................................................................................18 结

论............................................................................................................................................20 致

谢............................................................................................................................................21 参 考 文 献...................................................................................................................................22 第1章 绪论

1.1 课题研究背景

近几年来,随着internet的崛起,远程教育开始发展,普及网络教育的呼声日益高涨,其势头不亚于电子商务。联合国教科文组织1998年在其一项调查报告中:无论是发达国家还是发展中国家,都不同程度存在教育滞后于现实需要的问题,特别是第三世界国家,而普及远程教育,尤其是网络教育,不仅是解决这一问题的有效途径,而且将成为革新传统教育模式的重要动力。

中国的网络教育也随internet的发展而同步增长,同时,网络教育也为中国的教育事业开辟了新的天地。

1.2 课题研究目的和意义

随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开始设了远程教育。但是,远程教育的软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统到远程教育当中去,这就给软件设计人员提出了更高的设计要求。

远程教育包括很多环节。例如,教学系统、考试系统、和答疑系统等等。其中一个很重要的环节是在线考试系统,同时,它也是最难实现的环节。在我国,远程教育以蓬勃发展起来。但目前学校和社会上的各种考试大都都采用传统的考试方法,在此方式下,组织一次考试,要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。

显然随着考试类型的不断增加和考试要求的不断提高,教师的工作量也越来越大,可以说传统的考试方法已经不能适用于现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切需要这些技术来进行在线考试,以减轻教师的工作的负担以及提高工作效率,与此同时提高了考试的质量,从而使考试更趋于公正、客观,更加激发学生的学习兴趣。篇四:软件测试实验报告

武汉理工大学

学 生 实 验 报 告 书

实验课程名称 软件测试

开 课 学 院 计算机科学与技术学院

指导老师姓名 毛 雪 涛

学 生 姓 名

学生专业班级 2014 — 2015 学年 第 一 学期

任务1:针对一个常用的通讯软件做黑盒测试,利用所学的黑盒测试方法来设计测试用例,并做相应测试,给出测试方案和测试报告。

实验一.通讯软件飞信个人生日填写测试用例

一.简介 1.1编写目的

本测试项目拟对通讯聊天工具飞信输入生日日期进行测试。1.2项目背景

通讯聊天工具中都会有用户填写个人的基本资料,其中生日日期的填写需要进行则是。本项目即为用软件测试输入个人生日日期的正确性。1.3术语

等价类划分:把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。1.4参考资料

软件测试 佟伟光主编 人民邮电出版社

黑盒测试用例设计示例 作者: chinaitlab 来源: chinaitlab 二.测试概要 2.1测试程序源代码 #include using namespace std;void nextdate(int year,int month,int day);void main(){ int year=0,month=0,day=0;nextdate(year,month,day);} void nextdate(int year,int month,int day){ cout<<请输入年份:<>year;while(!(year>=1811 && year<=2013)){ cout<<年份超过界限,请重新输入<>year;} cout<<请输入月份:<>month;while(month>12||month<1){ cout<<月份输入有误,请重新输入<>month;} cout<<请输入日期:<>day;while(day>31||day<1){ cout<<日期输入有误,请重新输入<>day;} if((year%4==0 && year%100!=0)||(year%400==0))//检查闰年; { int i=0;i=day-29;while(month==2&&i>0){ cout<<本月是闰月,请在1-29之间从新输入日期<>day;} if(month==2&&day==29){ month=3;day=1;} else day++;else day++;//月底计算; switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: if(day==32){ month++;day=1;cout<<明天是:<

if(day==29)

{

month=3;

day=1;

cout<<明天是:<

利用等价类划分法设计测试用例如下:

用例一:输入日期年份超过界限,如输入:20151104;

用例二:输入日期月份输入有误,如输入:19931304;

用例三:输入日期输入有误,如输入:19931144;

用例四:输入日期包含非数字字符,如输入:1993佛说!;

用例五:输入日期超过8位数字,如:1993110402;

用例六:输入日期短于8位数字,如:1993114;

用例七:输入年份为闰年且输入月份为2,日期超过29,如:20000230,2.3测试方法

手工利用黑盒测试中的等价类划分法进行测试,主要测试目标为检验函数是否符合题目所给要求。即:输入是否符合规定条件,及程序的鲁棒性。

三.测试结果及缺陷分析 3.1测试执行情况与记录

测试情况记录:

1、输入日期20151104,程序提醒“年份超过界限,请重新输入”。

2、输入日期19931304,程序提醒“月份输入有误,请重新输入”。

3、输入日期19931144,程序提醒“日期输入有误,请重新输入”。

4、输入日期1993佛说!,程序没有提醒,合理的应该出现提醒“输入非数字

字符,请重新输入”。

5、输入日期1993110402,程序没有提醒,合理的应该出现提醒“输入字符超篇五:计算机测试系统实验报告1 计算机测试系统机电控制

实验报告 2014年12月21日

一、实验目的利用计算机、数据采集卡、被控对象(机电实验平台aedk—dj6)等组成计算机测控系统,在了解相关硬件的基础上,采用有关的软件工具,结合相应的控制规律,在windows环境下实现对相应硬件的访问控制,从而实现对被控对象的测试控制。通过实验加深了解计算机测控系统的组成,掌握windows环境下对硬件访问控制的方法,掌握对被控对象的测试和控制的方法,以及对测试数据处理、分析方法,具备一定的计算机测控硬软件设计能力和应用能力。

二、实验设备

pci9112数据采集卡,机电实验平台aedk—dj6等。

三、实验原理

本实验要求编程实现指针位置的测量和控制实验,原理如下:

本实验平台通过机械结构将步进电机的角位移转换为直线位移,利用电位器和数据采集卡9112内的a/d转换器,构成测位置系统。当步进电机运转时,带动电位器旋转,电位器输出的模拟量——电压值发生改变,通过a/d转换器采集电压值来确定指针位置。电位器输出的模拟量与指针位置成近似线性关系,即采集的数字量就能直接反映出指针的位置,具体原理如下:

(1)电机通过橡胶传动带联动,再通过蜗杆和齿轮将电机的圆周运动转化为皮带的水平运动。

(2)皮带的位移用指针和刻度尺来表示,刻度尺共分为16大格,每格1cm,最小刻度为1mm。皮带移动带动右端一个多线圈电位器转动,通过改变阻值来改变反馈电压,此电压被同时送入控制接口插座in0脚(已经接到9112的16路模拟量输入端口中的0号端口)。当皮带在16cm范围内变化时,in0脚的位置反馈电压将在0~+5v范围内线性变化。实验过程中可以通过测量或采集此电压来计算当前的指针位置。(3)实验平台使用四相步进电机,电流脉冲由a、b、c、d四个引脚输入。a、b、c、d已经接到9112内16路数字输出端口的4、5、6、7四个端口上,即从9112依次输出0010h、0020h、0040h、0080h,可以使步进电机正转;依次输出0080h、0040h、0020h、0010h,可以使步进电机反转。

四、实验内容 1:总体设计

实验通过上位pc机控制实验平台实现电机的闭环控制。

上位机通过labview虚拟仪器控制9112数据采集卡与下位硬件平台数据端口进行通信,从而实现对下位硬件平台的闭环控制,系统结构框图如下: labview 数据接口 2:前面板设计 labview程序前面板可以分为三个区域,分别是模式选择区域、控制区域以及显示区域。

模式选择区域如下:

该区域用来选择系统的工作模式,当设定系统的工作模式为“自动”时,程序自动控制电机转动,使得标尺移动到指定位置,当设定系统的工作模式为“手动”时,通过手动控制电机的移动方向,使得标尺移动到指定位置。当按下“停止”按钮时,系统停止运行。

控制区域如下:

该控制区域在系统工作在手动模式时起作用,在手动工作模式下,当按钮处于“左移”位置时,标尺指针向左移动,当按钮处于“右移”位置时,标尺指针向右移动。

显示区域如下:

设定位置标尺用来预设定标尺位置,作为实际标尺移动的参考标志,实际位

置标尺动态的显示当前标尺的位置。

示波器显示两条曲线,曲线一显示的是标尺设定位置随时间变化的曲线,曲线二显示的是标尺实际位置随时间变化的曲线,在程序运行过程中示波器可以动态的显示出指针实际位置曲线不断接近设定位置曲线,最后重合在一起。3:程序流程图

程序运行流程如下图所示: 程序运行时,首先判断系统的工作模式,如果为手动工作模式,则判断手动控制按键状态,如果为左移,则控制电机使得指针左移,如果为右移,则控制电机使得指针右移。如果系统处于手动工作模式,则判断指针实际位置是否等于设定位置,如果相等或者处于误差允许范围内,则不移动指针,如果不相等则判断实际位置与设定位置的大小,如果实际位置小于设定位置,则控制电机使得指针右移,如果实际位置大于设定位置,则控制电机使得指针左移。4:关键部分程序实现(1)读取实际位置

前面是9112采集卡初始化部分,后续为电压采集模块,由于满度电压输出为5v,对应的标尺刻度为16厘米,所以结果上述运算可以得出标尺指针的实际位置。

(2)控制电机正转

篇6:软件测试实验报告

2016 ~ 2017学年

第二学期

院 计算机科学技术

业 软件工程 学

140521221 姓

名 蒲凤 指导教师王鹏

目录

一、单元测试.......................................................1 1.1实验目的......................................................1 1.2实验环境......................................................1 1.3实验原理......................................................1 1.4实验内容......................................................1 1.4.1 C#单元测试................................................1 1.4.2 测试用例..................................................4 1.5实验结果......................................................5 1.6实验总结......................................................6 1.6.1插件安装...................................................6 1.6.2心得体会...................................................6 1.6.3单元测试意义...............................................6

二、LOADRUNNER性能测试.............................................7 2.1实验目的......................................................7 2.2实验环境......................................................7 2.3实验原理......................................................7 2.4实验内容......................................................7 2.4.1 HP LoadRunner录制脚本.....................................7 2.4.2 HP LoadRunner脚本测试场景设计及分析......................17 2.5实验结果.....................................................33 2.6实验分析.....................................................34 2.7实验总结.....................................................34

三、反编译........................................................36 3.1实验目的.....................................................36 3.2实验环境.....................................................36 3.3实验原理.....................................................36 3.4实验内容.....................................................36 3.4.1 Net Refelector反编译.....................................36 3.5实验结果.....................................................40 3.6实验总结.....................................................41 3.6.1心得体会..................................................41

I 3.6.2 对软件安全性的看法.......................................41

四、SQL注入.......................................................42 4.1实验目的.....................................................42 4.2实验环境.....................................................42 4.2实验原理.....................................................42 4.3实验内容.....................................................42 4.3.1 sql注入..................................................42 4.4实验结果.....................................................52 4.5实验总结.....................................................54 4.5.1心得体会..................................................54 4.5.2 SQL注入危害..............................................54

五、禅道项目管理的BUG管理模块使用................................55 5.1实验目的.....................................................55 5.2实验环境.....................................................55 5.3实验原理.....................................................55 5.4实验内容.....................................................55 5.4.1禅道项目管理的bug管理模块使用............................55 5.5实验结果.....................................................67 5.6实验总结.....................................................68

II

一、单元测试

1.1实验目的

1.能够使用编程工具进行单元测试。

2.检查代码实现是否符合设计,尽早发现设计和需求中存在的错误。3.发现在编码过程中引入的错误,跟踪需求和设计的实现是否一致。

1.2实验环境

环境:vs2013

1.3实验原理

主要采用白盒技术,检查模块控制结构的某些特殊路径,期望覆盖尽可能多的出错点。

1.4实验内容

1.4.1 C#单元测试

1.新建一个类库项目,并为其中的类为BinaryTree.构建二叉树并添加前序遍历方法。如图1-1所示。

图1-1 2.创建单元测试。在方法名上右击,然后单击“Generate Unit Test”选项,打开对话框。如图1-2所示。

图1-2 3.选择方法,为新建项目命名。如图1-3所示。

图1-3 4.然后在解决方案管理中就多了相应的BinaryTree Tests解决方案。如图1-4所示。

图1-4 打开测试菜单->窗口->测试资源管理器,如图1-5所示。

图1-5 5.在测试试图,右键运行要测试的方法,在测试结果窗口中查看测试结果,运行测试之前。如图1-6所示。

图1-6 1.4.2测试用例

1.设置测试参数。如图1-7,1-8所示。

图1-7

图1-8 2.运行之后。如图1-9所示。

图1-9 1.5实验结果

经过测试,ResultEqualTest1,ResultEqualTest2均未通过测试,调整参数,重新测试,测试结果如下,如图1-10所示。:

图1-10 1.6实验总结

1.6.1插件安装

在vs2013进行单元测试之前,需要按照手动添加插件。选择工具-扩展和更新,搜索并安装Unit Test Generator。1.6.2心得体会

本次测试设计涉及预期测试需求,实验结果符合预期。单元测试帮助开发人员编写代码,提升质量,减少bug;提升反馈速度,减少重复工作,提高开发效率;保证最后的代码不会破坏之前的代码功能,同时让代码维护更容易,有助于改进代码质量和设计。1.6.3单元测试意义

单元测试集中注意力与程序的基本组成部分,首先保证每个单元测试通过,才能使下一步把单元组成部分组装成部件并测试其正确性具有基础。单元是整个软件的构成基础,只有保证零部件一样,这个设备的质量才有基础,单元的质量也是整个软件质量的基础。因此,单元测试的效果会直接影响到软件的后期测试,最终在很大程度上影响到产品的质量。同时,单元规模较小,复杂性较低,因而发现错误后容易隔离和定位,有利于调试工作。

二、LoadRunner性能测试

2.1实验目的

1.掌握LoadRunner的使用方法。2.能够使用LoadRunner进行负载测试

3.学会用LoadRunner设计场景并尝试,并分析测试结果。

2.2实验环境

环境:HP LoadRunnner

2.3实验原理

LoadRunner进行负载测试通常有五个阶段组成:

计划、脚本创建、场景定义、场景执行和结果分析。

(1)计划负载测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所需相应时间。

(2)创建Vuser脚本:将最终用户活动捕获到自动脚本中。(3)定义场景:使用LoadRunnerControlller设置负载测试环境。(4)运行场景:通过LoadRunnerControlller驱动、管理和监控负载测试。(5)分析结果:使用LoadRunnerAnalysis创建图和报告并评估性能。

2.4实验内容

2.4.1HP LoadRunner录制脚本

1.启动服务。如图2-1所示。

图2-1 2.登录自带网站WebTours,并注册。如图2-2所示。

图2-2 填写注册信息,如图2-3,2-4所示。

图2-3

图2-4 注册成功,如图2-5所示。

图2-5

3.打开Loadrunner,点击新建脚本打开VuGen。如图2-6所示。

图2-6 新建脚本,如图2-7所示。

图2-7

4.新建脚本,选择协议。如图2-8所示。

图2-8 5.选择浏览器,设置所测web的地址。如图2-9所示。

图2-9 6.点击左下角Options按钮,进入录制环境设置界面。如图2-10,2-11所示。

图2-10

图2-11

7、模拟用户操作开始录制脚本。如图2-12所示。

图2-12 用户操作如下,模拟用户订票。如图2-13所示。

图2-13 8.结束录制,生成脚本。如图2-14所示。

图2-14 9.回放脚本,验证脚本是否正确。如图2-15所示。

图2-15 回放结果,如图2-16所示。

图2-16 10.增加事务,并命名。如图2-17所示。

图2-17 给事务命名,如图2-18所示。

图2-18 查看事务,如图2-19所示。

图2-19 11.参数化。在脚本中找到需要参数化的值,例如登录名和登录密码。如图2-20所示。

图2-20 2.4.2HP LoadRunner脚本测试场景设计及分析

1.导入脚本,打开controller。如图2-21所示。

图2-21 2.选择文件路径。如图2-22所示。

图2-22 3.进入初始界面。如图2-23所示。

图2-23 4.为了设置集合点,取消默认勾选框,添加脚本。如图2-24所示。

图2-24 5.确定,进入场景设置界面。如图2-25所示。

图2-25 6.设置场景,选择初始化。如图2-26所示。

图2-26 7.打开运行时设置,设置迭代次数。如图2-27所示。

图2-27 8.设置迭代参数为2。如图2-28所示。

图2-28 9.点开Miscellaneous,设置Continueon error,使错误发生时可继续执行。如图2-29所示。

图2-29 10.设计集合点。如图2-30所示。

图2-30 设置当所有虚拟用户都到达集合点才释放,模拟多用户同时进行某一操作的情况。选中policy。如图2-31所示。

图2-31 11.设置policy。如图2-32所示。

图2-32 12.点击运行,进入运行时监控界面。如图2-33所示。

图2-33 13.点击运行场景。如图2-34所示。

图2-34 14.观察运行结果。如图2-35,2-36,2-37,2-38,2-39所示。

图2-35

图2-36

图2-37

图2-38

图2-39 15.设置场景运行时Windows资源监控图。如图2-40所示。

图2-40 点击添加。如图2-41,2-42所示。

图2-41

图2-42 运行时Windows资源监控图截图如下。如图2-43所示。

图2-43 16.打开分析器,形成分析结果。如图2-44,2-45所示。

图2-44

图2-45 17.分析器自动形成分析结果。如图2-46,2-47,2-48,2-49,2-50所示。

图2-46

图2-47 18.点开监控的图表,根据需要合并图表以便更好地分析。

图2-48

图2-49

图2-50 19.添加Windows资源监控图表。如图2-51,2-52所示。

图2-51

图2-52 20.添加页面分析结果图表。如图2-53所示。

图2-53 21.生成测试报告。如图2-54所示。

图2-54 生成测试报告中。如图2-55所示。

图2-55 生成测试报告,如图2-56所示。

图2-56 2.5实验结果

回放验证。如图2-57所示。

图2-57

生成测试报告,点击内容,如图2-58所示。

图2-58 2.6实验分析

通过测试报告可以看出,最多能够创建10个vuser,平均吞吐量是14320字节每分,平均每秒点击数量约为10次。同时可以通过以下方式使被测系统所受压力减轻,从如下方面进行综合调解:将测试脚本中think time值加大并在控制台中按比例实现,此处think time指在transaction外部的时间;Controller中Run-Time Setting的Pacing设置值加大;虚拟用户登录时使用递增策略,间隔稍长。

2.7实验总结

LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。学会了使用LoadRunner录制脚本。基本的流程是启动服务器、注册、录制脚本及进行参数化设置。设计涉及场景的搭建和测试,通过Lordrunner进行脚本测试,同时能够生成相应的图表,直观的反应了测试结果。Lordrunner作为专业的性能测试工具,通过模拟成千上万的用户对被测应用进行操作和请求,在实验室环境中精确重现生产环境中任意可能出现的业务压力,然后通过在测试过程中获取的信息和数据来确认和查找软件的性能问题,分析性能瓶颈。

三、反编译

3.1实验目的

1.学会如何使用反编译工具对程序进行反编译。2.能够使用.NetRefelector进行反编译。

3.2实验环境

环境:.Net Refelector,VS2008 3.3实验原理

反编译的主要思想:将特定的机器代码,即我们的“源程序”,先翻译为低级的中间代码,然后再根据特定的高级语言将中间代码翻译为高级程序。反编译器也有前端和后端。前端是一个机器依赖的模块,句法分析二进制程序、分析其指令的语义、并且生成该程序的低级中间表示法和每一子程序的控制流向图。通用的反编译机器是一个与语言和机器无关的模块,分析低级中间代码,将它转换成对任何高级语言都可接受的高级表示法,并且分析控制流向图的结构、把它们转换成用高级控制结构表现的图。最后,后端是一个目标语言依赖的模块,生成目标语言代码。反编译的过程中要使用一些工具:把二进制程序装入内存,对这一程序做句法分析或反汇编,以及反编译或者分析该程序来生成高级语言程序。这个过程借助编译器和库的签名来识别特定的编译器和库子程序。只要在二进制程序中识别出编译器签名,就不去反编译这些编译器启动代码(start-up)和库子程序:对于前者,从最后的目标程序去掉启动代码的那些例程,反编译器从主(main)程序入口点开始分析;对于后者,那些子程序用其库函数名代替。

3.4实验内容

3.4.1Net Refelector反编译

1.启动.NETRefelector(在所有程序中找到RedGate文件夹)找到安装文件,点击运行。如图3-1所示。

图3-1 2.选择文件,打开可执行文件。如图3-2所示。

图3-2 选择文件路径。如图3-3所示。

图3-3

3.导入工程截图如下。如图3-4所示。

图3-4 4.相关函数和类,如图3-5所示。

图3-5 5.选中工程,导出源码。如图3-6所示。

图3-6 6.选择导出文件路径。如图3-7所示。

图3-7 7.选中反编译程序,点击运行。如图3-8所示。

图3-8 3.5实验结果

反编译成功,如图3-9所示。

图3-9

3.6实验总结

3.6.1心得体会

本次实验通过反编译工具进行了反编译,完成了从可执行文件到源码的转换,学会了如何使用.NET Refelector反编译工具。3.6.2 对软件安全性的看法

软件安全(Software Security)就是使软件在收到恶意攻击的情形下依然能够继续正确运行及确保软件被在授权范围内合法使用的思想。软件安全性分析任务包含于软件生存周期的若干活动中,是针对软件的安全性质量,作为这些活动的补充。软件安全性分析作为开发中软件的质量的重要保证,关系到软件的获取、供应、开发、运行和维护,已得到专业人士的高度重视。并且现在,软件安全性分析任务的各项细节执行都写入了国军标,被安全相关软件的需方、供方、开发者、维护者以及独立的评价者使用。规范化将推进软件安全性分析的进程,使更多的开发和评测单位遵循标准化文件,督促开发团队采取相应的技术手段,以软件测试作为辅助。同样,软件安全性分析标准也会在推进的过程中,得到不断地发展。

四、SQL注入

4.1实验目的

1.明白SQL注入原理。2.能够进行简单的SQL注入。

4.2实验环境

环境:VS2013,SQL Server Management Studio 4.2实验原理

SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

4.3实验内容

4.3.1 sql注入

1.点击SQL SERVERR2。如图4-1所示。

图4-1 登陆数据库,如图4-2所示。

图4-2 2.创建数据库SQLTEST。如图4-3,4-4所示。

图4-3

图4-4 3.创建表UserLogin。如图4-5所示。

图4-5 设置主键如下,如图4-6所示。

图4-6 设置成功,截图如下。如图4-7所示。

图4-7 输入表名。如图4-8所示。

图4-8 4.选中表,编辑前200行。如图4-9所示。

图4-9 5.编辑测试数据,如图4-10所示。

图4-10 6.打开VS2013,新建项目。如图4-11所示。

上一篇:珍惜与幸福六年级作文下一篇:巩留公路项目建设指挥部质量年活动实施方案