基于JAVA的智能家居控制系统的设计(信息控制端的设计)-论文二稿 联系客服

发布时间 : 星期四 文章基于JAVA的智能家居控制系统的设计(信息控制端的设计)-论文二稿更新完毕开始阅读8fa3f81714791711cc7917b7

平顶山学院2011届本科生毕业论文 基于JAVA的智能家居控制系统的设计(信息控制端的设计) 张灿灿

5 系统测试

5.1 单元测试

单元测试集中检测软件设计的最小单元——模块。通常,单元测试和编码属于软件过程的同一个阶段。在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。可以应用人工测试和计算机测试这两种不同类型的测试方法,完成单元测试工作。这两种测试方法各有所长,互相补充。通常,单元测试期间着重从下述5个方面对模块进行测试。

1.模块接口

首先应该对通过模块接口的数据流进行测试,如果测试数据不能正确地进出,所有其他测试都是不切实际的。

在对模块接口进行测试时主要检查下述几个方面:参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元;全局变量的定义和用法在各个模块中是否一致。

2.局部数据结构

对于模块来说,局部数据结构是常见的错误来源。检查局部数据说明、初始化、默认值等方面是否出现错误。

3.重要的执行通路

由于通常不可能进行穷尽测试,因此在单元测试期间选择最有代表性、最可能发现的错误的执行通路进行测试是十分关键的。用于判断不适当的控制流造成的错误。

4.出错处理通路

设计中能预见出现错误的条件,并且设置适当的处理错误的通路,以便在真的出现错误时执行相应的出错处理通路或干净地结束处理。在程序中应包含出错处理通路。

5.边界条件

边界测试时单元测试中最后的也可能是最重要的任务。软件常常在它的边界上失效。使用刚好小于、刚好等于和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。

19

平顶山学院2011届本科生毕业论文 基于JAVA的智能家居控制系统的设计(信息控制端的设计) 张灿灿

5.2 功能测试

功能测试是在系统集成过程中和系统集成之后所进行的系统功能测试,不仅要考虑模块之间的相互作用,而且要考虑系统的应用环境。功能测试主要是检测被测试的系统是否满足各方面功能的使用要求。

5.3 性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。

5.4 小结

本章通过对智能家居控制系统进行单元测试、功能测试以及性能测试这一繁琐的内容,我们了解到系统测试是软件开发与维护过程中不可缺少的一部分。软件测试需要耗费大量的人力,不仅需要采用计算机测试,同时还要进行人工测试。在测试过程中我们使用这两种测试方法,最终使此系统满足客户的要求。

20

平顶山学院2011届本科生毕业论文 基于JAVA的智能家居控制系统的设计(信息控制端的设计) 张灿灿

6 结论

经过充分的调查和对大量资料的研究,分析了智能家居的现状和发展趋势,并考虑到我国的经济发展和人们生活水平的不均衡等特点,利用GPRS移动通信网络,以及嵌入式技术结合蓝牙无线通信技术,安全可靠,性能稳定的智能家居控制系统。同时本系统除用于家庭设备远程自动控制外,还可用于家庭通信、家庭娱乐,共同组建智能家居控制系统。

开发充分利用了j2me技术中所提供的API,以及高效的编程。不仅适应了嵌入式系统的软硬件资源受限的特点,而且使得程序的运行速度有所提高。

目前该系统在模拟系统中正常运行,实现了目前市场上智能家居系统中最重要的组成部分——智能家居终端的大部分功能。

在此基础上,今后的研究工作将从以下方面进行深入:一方面是增加智能家居终端控制家电设备的种类,这需要对协议进行扩展;另一方面使用户能够通过更多途径方案进行远程控制,例如,手机短信控制也是一种方案;第三,考虑到嵌入式系统硬件资源受限,还需要就某些功能的实现代码进行进一步优化,例如,可通过考虑将多进程改为多线程来减少进程的创建和切换的开销等。

由于个人能力的局限性,做出的程序不是十分完善,但是本系统已经满足开题报告中所提出的内容,在以后的过程中,可以通过扩充自己的知识储备,对课题进行进一步的完善。

21

平顶山学院2011届本科生毕业论文 基于JAVA的智能家居控制系统的设计(信息控制端的设计) 张灿灿

附 录

ControlCanvas类主要代码如下所示:

public ControlCanvas(FamilyList fl, Display display, int Type, int i) { index = i; Fl = fl; this.Type = Type; // 页面样式 this.display = display; Cmd_Back = new Command(\返回\ Cmd_Send = new Command(\发送\ addCommand(Cmd_Back); addCommand(Cmd_Send); setCommandListener(this); // 设置功能键侦听器 setTitle(Fl.getItemString(index)); // 设置标题 try { selectImage = Image.createImage(\ } catch (IOException e) { e.printStackTrace(); } }

protected void paint(Graphics g) { // 画背景图片 if (Fl.getBackImage() != null) { g.drawImage(Fl.getBackImage(), 0, 0, Graphics.TOP | Graphics.LEFT); } if (Type == ControlCanvasType_STYLE_ON_OFF) { // 开关样式 draw_On_Off_String(g, getWidth() / 5, getHeight() / 3); } else if (Type == ControlCanvasType_STYLE_ROLL) { // 滚动样式 draw_roll_Style(g); } else if (Type == ControlCanvasType_STYLE_DOUBLE_ROLL) { // 双滚动条样式 draw_doubleroll_Style(g); } } FamilyList类中的主要代码如下所示:

public FamilyList(Display display, Canvas cv, String title, String[] items, Image backImage) { Title = title; setTitle(Title); // 设置标题 setLastPage(cv); this.display = display; // 音效 MidPlayer mp = new MidPlayer(); mp.sound(); ITEMS = items; BackImage = backImage;

22