主编:钟元生 赵圣鲁
第十三章 App集成测试
本讲内容 Android客户端访问Java Web服务器集成测试 本书案例代码集成架构 黑盒测试 MySQL数据库测试 白盒测试 Jave Web服务器访问MySql数据库集成测试 集成测试流程 Contents
13.1 单元测试 单元测试,是指对软件中的最小可测单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java中单元指一个类,图形化的软件中可以指一个窗口或一个菜单等,总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。单元测试主要以白盒测试为主,夹杂着少量的黑盒测试。 Contents
13.1 单元测试 13.1.1 黑盒测试 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 Contents
13.1 单元测试 13.1.2 白盒测试 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。 Contents
13.2 集成测试 集成测试,又称为组装测试或联合测试,即对程序模块采用一次性或增值方式组装起来,对系统的接口进行正确性检验的测试工作。集成测试是在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装为子系统或系统,进行集成测试。 实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能实现。下面以历年高考省控线查询在数据库、服务器和客户端的集成为例进行测试。 Contents
13.2 集成测试 13.2.1 MySQL数据库测试 Contents 首先我们建立一个包名为test的Package专门来存放测试类test.java。程序结构目录如图。 Contents
13.2 集成测试 13.2.1 MySQL数据库测试 Contents test.java代码如下: 1. package test; 2. import db.DBconn; 3. public class test { 4. public static void main(String[] args) { 5. DBconn dbc=new DBconn(); 6. dbc.getConnection(); 7. } 8. } 新建DBconn对象,再调用DBconn对象的getConnection方法。运行test.java文件,结果如下图所示。 Contents
13.2 集成测试 13.2.2 Jave Web服务器访问MySql数据库集成测试 Contents 在第3章设计网络服务器小节中,我们在MyEclipse中编写好了数据库连接类,存放数据用的实体类,实施数据库操作的工具类,其目录结构如图所示。 Contents
13.2 集成测试 13.2.2 Jave Web服务器访问MySql数据库集成测试 Contents test.java代码如下: package test; import impl.lineImpl; import java.util.ArrayList; import java.util.List; import model.Line; import db.DBconn; public class test { public static void main(String[] args) { // DBconn dbc=new DBconn(); // dbc.getConnection(); List<Line> Lines=new ArrayList<Line>(); lineImpl lineimpl=new lineImpl(); Lines=lineimpl.queryLine(2013); System.out.println(Lines.size()+" 年份:"+Lines.get(0). getControlYear()+" 分数线:"+Lines.get(0).getControlLine() ); } Contents
13.2 集成测试 13.2.2 Jave Web服务器访问MySql数据库集成测试 Contents 前面的测试代码是新建一个lineImpl对象,直接调用queryLine方法并传入2013来查询2013年省控线。通过for循环将结果打印出来。运行结果如图13-18所示。 Contents
13.2 集成测试 13.2.2 Jave Web服务器访问MySql数据库集成测试 Contents 上面的结果还不完全是Java Web服务器访问MySQL数据库的结果。还需要我们实现Servlet类。我们需要将项目部署到Tomcat服务器中,部署完之后,启动Tomcat服务器,打开浏览器,在地址栏输入http://localhost:8080/bktDemo/LineSer?controlYear=2013,这就是android客户端查询省控线的接口。简单理解的话就是向服务器传递年份2013。 输入URL之后如果出现如图所示结果,那么服务器端就算成功完成了。也就说明我们的Java Web服务器能够成功访问到MySQL数据库中的数据。 Contents
13.2 集成测试 13.2.3 Android客户端访问Java Web服务器集成测试 Contents 由上述13.2.2小节可知,我们的Java Web服务器已经能够成功地访问到MySQL数据库中的数据,那么我们能否将查询到的数据传输给安卓客户端呢? 我们需要在Android端,建立实体类来存放从服务器端传递过来的JSON数据。建好实体类之后,还需要建立一个工具类用来访问服务器和获取服务器返回的结果。上述步骤全部完成之后,我们将Android客户端运行起来,其主界面如图。(查看图片) Contents
13.2 集成测试 13.2.3 Android客户端访问Java Web服务器集成测试 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents “豹考通”案例集成测试流程如图所示。 “豹考通”案例集成测试流程图 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents 豹考通demo是集成测试的第一个基础,它实现了“历年高考省控线查询”的功能(界面如图所示)。 “历年高考省控线查询”界面图 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents Code0302服务器端程序目录结构 13.3.1 集成测试流程 其集成步骤依次是创建数据库,开发服务器端,最后实现Android客户端。其集成实现数据库及代码如图所示。 Code0303安卓端访问网络数据模块程序目录结构 数据库表结构 数据库表的记录 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents “历年高考省控线查询”界面图 “历年录取线查询”界面图 “报考咨询”界面图 “报考咨询”界面图 13.3.1 集成测试流程 我们在第3章的基础上开始依次集成本地临时数组数据实现的“历年高考省控线查询”,“录取分数线查询”,“报考咨询”,“个人中心”等模块。实现结果如图 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents 其实现程序代码目录结构依次如图所示。 Code0502个人基本信息模块程序目录结构 13.3.1 集成测试流程 Code0402历年省控线查询程序目录结构 Code0404录取线列表布局程序目录结构 Code0501报考咨询模块程序目录结构 其实现程序代码目录结构依次如图所示。 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 在第6章的基础上集成趋势图 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents 集成“多页面切换效果”功能的实现程序代码目录结构如图 Code0704根据录取线页面数据绘制趋势图 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents 集成第8章创建的本地SQLite数据库 demo08本地数据库SQLite表 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents Code0902将数组里的数据替换成本地SQLite数据程序目录结构 13.3.1 集成测试流程 Code0901创建本地数据库SQLite程序目录结构 在集成第8章的基础上,集成“客户端从本地SQLite数据库中获取数据”的模块,其实现程序代码目录结构如图所示。 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents 接下来需要集成MySQL网络数据库 demo10创建网络数据库表 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents 然后,需要集成部署网络服务端。其在MyEclipse开发工具中的程序实现代码目录结构如图 Code1105网络服务端程序代码目录结构 Contents
13.3 “豹考通”案例集成测试流程 13.3.1 集成测试流程 Contents Code1203报考咨询模块与服务端交互流程程序目录结构 Code1201省控线查询模块与服务器交互流程程序目录结构 Code1202历年录取分数线查询与服务端交互的实现程序目录结构 13.3.1 集成测试流程 部署好了网络服务端,需要我们集成“历年高考省控线查询”,“历年录取线查询”,“报考咨询”等模块与服务器交互。其程序实现代码目录结构如图。 Contents
13.3 “豹考通”案例集成测试流程 13.3.2 本书案例代码集成架构 本书案例代码集成架构如图 本书案例代码集成架构 Contents
谢 谢!