一、实验目的

巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。

二、实验内容

白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。

白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。

测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。

三、实验原理、方法和手段

  1. 测试程序

实现对不少于10个随机数的冒泡排序算法。

2.实验要求

要求至少采用两种语句覆盖技术,设计测试用例,包括测试数据及预期结果。

四、代码段

import java.io.IOException;
import java.util.ArrayList;
class Test {public static void main(String[] args) throws IOException {int[] arr = getArr();System.out.println();getList(arr);System.out.println();writeArr(arr);}private static void writeArr(int[] arr) {}// 产生10个随机数/** 要产生随机数,可以使用Java api中java.lang包中的Math类.Math类以静态方法的方式提供常用的数学方法,* 其中Math.random()方法是一个可以产生[0.0,1.0]区间内的一个双精度浮点数的方法 如: 产生一个100以内的整数:int* x=(int)(Math.random()*100); 又如: 产生一个1-50之间的随机数:int* x=1+(int)(Math.random()*50)*/public static int[] getArr() {int[] numArr = new int[10];for (int i = 0; i < 10; i++) {int num = 1 + (int) (Math.random() * 100);numArr[i] = num;}System.out.println("产生的随机数数组为:");for (int i = 0; i < 10; i++) {System.out.print(numArr[i] + " ");}return numArr;}// 把数组中的数放到一个ArrayList集合中public static void getList(int[] numArr) {System.out.print("冒泡排序过程:");// 创建一个集合ArrayList<Integer> numList = new ArrayList<Integer>();// 给集合添加元素for (int i = 0; i < numArr.length; i++) {numList.add(numArr[i]);}for (int i = 0; i < numArr.length - 1; i++) {//外层循环控制排序趟数for (int j = 0; j < numArr.length - 1 - i; j++) {//内层循环控制每一趟排序多少次if (numArr[j] > numArr[j + 1]) {int temp = numArr[j];numArr[j] = numArr[j + 1];numArr[j + 1] = temp;}}//输出System.out.println("");for (int num : numArr) {System.out.print(num + "  ");}}}
}

五、流程图

六、测试用例及测试结果

七、白盒测试分析

优点:

    1) 帮助软件测试人员增大代码的覆盖率。 提供代码的质量,发现代码中隐藏的问题。

缺点 :

  1) 程序运行会有很多不同的路径,不可能测试所有的运行路径。

2) 测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求。

3) 系统庞大时,测试开销会非常大。

软件工程-白盒测试(实验报告)相关推荐

  1. 软件工程导论-实验报告-软件测试

    软件工程导论-实验报告-软件测试 [问题描述] 一元二次方程式 ax2+bx+c=0的求根程序有以下功能: 1)输入A.B.C三个系数: 2)根据根的性质的:两个相等或不相等的实根,或无实根,输出相应 ...

  2. 工资软件测试白盒测试报告,软件测试白盒测试实验报告

    <软件测试白盒测试实验报告>由会员分享,可在线阅读,更多相关<软件测试白盒测试实验报告(7页珍藏版)>请在人人文库网上搜索. 1.西南科技大学计算机学院实验报告实 验 名 称 ...

  3. 软件工程导论实验报告二(类图设计)

    软件工程导论实验报告 实验二 类图设计 2.实验目的 (1)掌握绘制类图的基本步骤: (2)掌握识别类的方法. 3.实验内容 利用StarUML或其它UML绘图工具,绘制系统中的类图. (1)图书管理 ...

  4. 工程热力学c语言 朗肯循环第二题,软件工程上机实验报告_相关文章专题_写写帮文库...

    时间:2019-05-12 14:56:17 作者:admin <数据库与软件工程>上机实验答案 实验三 SQL语言的DDL 3.CREATE TABLE aa( Bb1 VARCHAR( ...

  5. 《软件工程》实验报告——软件设计

    一.实验目的 掌握Axure RP软件基本用法: 掌握软件体系结构设计: 了解常用软件设计模式: 将实验过程中形成的图形.文字内容插入本文档. 二.实验内容 1.当前Web前端最经典的软件体系结构模式 ...

  6. 软件工程课程实验报告:实验三

    实验三:内部模块化的命令行菜单小程序V2.0 咖啡机<软件工程(C编码实践篇)>MOOC课程作业http://mooc.study.163.com/course/USTC-10000020 ...

  7. 软件工程课程实验报告:实验二

    实验二:命令行菜单小程序V1.0 咖啡机<软件工程(C编码实践篇)>MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006 新创建 ...

  8. 《软件工程》实验报告——软件测试

    一.实验目的 掌握结构化分析与设计方法 掌握JUnit的用法: 掌握白盒测试中路径覆盖的测试用例设计: 掌握黑盒测试中等价类方法: 二.实验内容 1. 某证券公司为了方便提供证券交易服务,欲开发一证券 ...

  9. Java白盒测试三角形函数_白盒测试实验报告-三角形形状-山东大学

    实 验 报 告 一.实验目的 运用白盒测试中的条件覆盖和判定覆盖检查程序中内部动作或者运行是否符合规范,各部分内容是否按照规定正常运行. 二 .实验 内容 1 1 .题目 输入三角形的三条边 , 判断 ...

  10. 软件工程课程实验报告:课程总结

    软件工程(C编码实践篇)学习总结 李珺(咖啡机)<软件工程(C编码实践篇)>MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006 ...

最新文章

  1. 《Adobe After Effects CC经典教程》——导读
  2. 一次受限制、无连接的故障处理
  3. 解决Excel打开UTF-8编码的CSV文件乱码的问题 实测好用
  4. java super父类的父类_合理使用父类的财富——Java中的super
  5. 飞鸽传书找不到其他人的问题
  6. 重磅!《Apache Flink 十大技术难点实战》发布
  7. SAP Spartacus B2B页面Banner Component的路由url是在哪里定义的
  8. 【C++深度剖析教程35】函数模板的概念和意义
  9. 微信也许会有重大变化
  10. sql批量插入数据mysql_MYSQL批量插入数据库实现语句性能分析
  11. go语言struct各种定义和用法
  12. 大数据之-Hadoop完全分布式_SCP案例_同时在1000台服务器上安装JDK_配置环境变量---大数据之hadoop工作笔记0031
  13. 2.OAuth 2实战 --- OAuth 之舞
  14. python快速排序算法没看懂_python中的快速排序算法的理解
  15. 大学计算机word操作教程,word技巧大全:73个word实用技巧分享-电脑教程
  16. Freepiano如何使用sf2音源,sfark如何转换至sf2?
  17. 基于stm32的语音识别系统
  18. MySQL之高级SQL语句
  19. durpal是否支持php7,php – 无法在drupal 7中添加图像字段
  20. s饥荒服务器物品id,流年饥荒控制台指令大全+物品大全+服务器管理命令大全.docx...

热门文章

  1. dubbo-admin 容器化构建
  2. [KVM应用案例] 湖南电视台高清电视转播车KVM矩阵项目
  3. Sailfish应用开发入门(二)Sailfish SDK 简介
  4. 堆排序(小根堆)的简单实现(java)
  5. 在vue中使用Echarts的3D柱状图
  6. 怎样检查mysql是否安装成功_怎么检验mysql安装成功
  7. 面向对象--接口--接口的例题
  8. devmem读写物理内存
  9. python os.path模块
  10. 谷歌优化有什么好处?外贸独立站如何提高谷歌优化排名?