基于android生日管家软件的设计与实现

上传人:仙*** 文档编号:99845371 上传时间:2022-06-01 格式:DOC 页数:33 大小:590.50KB
返回 下载 相关 举报
基于android生日管家软件的设计与实现_第1页
第1页 / 共33页
基于android生日管家软件的设计与实现_第2页
第2页 / 共33页
基于android生日管家软件的设计与实现_第3页
第3页 / 共33页
点击查看更多>>
资源描述
毕业设计说明书基于android生日管家软件的设计与实现不下可排两行077信息商务学院学生姓名: 学号: 计算机系学 院: 网络工程系 名: 专 业: 指导教师: 2015 年 5 月基于android生日管家软件的设计与实现摘要 随着社会的不断发展和进步,生活节奏不断加快。人们常会因为这样那样的琐事,有时候难免无法记住每个朋友的生日,从而造成亲情、友情或是爱情的疏离。另一方面,由于智能机的出现,手机已经成为我们生活中的主要构成部分,而使用手机作为记录日常生活中的琐事已是大势所趋。在这样的背景下大众需要一个生日管家来帮助你记录管理亲友的生日。论文对Android系统架构和应用开发进行初步研究,运用Java开发语言设计了一款生日管家软件。在对系统进行详细需求分析的基础上,确定了系统的功能和性能要求,对软件的界面,布局等方面进行了详细设计。在软件的详细设计阶段中,首先,我们必须搭建好软件开发的必要环境,包括下载安装开发环境Eclipse和安装ADT扩充套件。其次,软件的设计主要是从两方面入手,一是界面UI设计;二是其功能的实现。由于UI设计相对简单,所以此次开发将功能的实现作为重点。在技术选型的时候,考虑Android自带的功能比较稳定,所以选用的是其自带功能。该软件很好地将Android自带功能,比如打电话功能、发短信功能放融入到其中,达到功能的多样化,便于对好友生日进行管理。关键词: Android,生日管家,生日提醒Based on the android birthday housekeeper softwaredesign and implementationAbstract With the continuous development and progress of society, the accelerating pace of life. People often because of trivial things, sometimes can not remember each friends birthday, resulting in the family, friendship or love alienation. On the other hand, the emergence of intelligent machines, mobile phones have become the main part of our life, and the use of mobile phones as a record of the chores of daily life has become the trend of the times. The need for a birthday steward in this context the public to help you record management relatives birthday.The preliminary study on the Android system architecture and application development, a birthday housekeeper software is designed using Java language development. Based on the detailed demand analysis to the system, the function and performance of the system, the software interface, detailed design layout etc. In the detailed design stage of the software, first of all, we must build a good environment for software development, including download and install the development environment of Eclipse and install the ADT extension. Secondly, the software design is mainly from two aspects, one is the UI interface design; the two is the realization of its function. The UI design is relatively simple, so it will function as the focus of the implementation. When the technology selection, relatively stable Android built-in function is considered, so the choice is its own function. The software will be a good Android built-in function, such as phone calls, send text messages function functions into one, to achieve the diversification of functions, easy to carry on the management to the friends birthday.Key words: Android,housekeeping,birthday reminder目 录1 绪论11.1 背景11.2 目的和意义21.3 国内研究现状21.4 软硬件需求31.5 本文的结构32 基础知识与开发技术42.1 Android操作系统简介42.1.1 Android系统特点42.1.2 Android手机平台的优势52.2 开发工具及其他软件的简介62.2.1 开发工具62.2.2 其他软件的简介62.3 系统开发的环境73 软件需求分析及概要设计83.1 软件的需求分析83.2 软件的概要设计83.2.1 软件的功能模块说明83.3 数据保存的设计104 软件的详细设计134.1 主界面的设计与实现134.1.1 主界面的头部菜单栏134.1.2 软件主界面功能的设计144.2. 任务功能的设计165 手机软件系统测试185.1 手机软件测试概述185.2 常用的软件测试方法185.2.1 黑盒测试195.2.2 白盒测试195.2.3 基于风险的测试205.2.4 基于模型的测试215.3 本系统测试用例216 结论24参考文献26致 谢281 绪论1.1 背景现在手机已经成为了人们生活中不可或缺的移动设备,没有手机会让人觉得寸步难行。手机已经不再仅仅拥有传统的打电话、发短信等基本功能,取而代之的是基于智能手机强大的信息处理能力和扩展能力,以及4G网络高速数据传输,使得越来越多的功能和业务将被开发并被大规模的应用。正因为如此,各种各样的软件层出不穷,我们的生活也因为各种各样的软件变的更有滋有味。不缺乏娱乐性,也不缺乏教育意义,让我们从这些软件中受益匪浅,使我们看到了相比以前的巨大进步。随着经济的发展,同时,随着科技的发展,计算机越来越精致,手机也越来越智能化,所以我们的依赖性也越来越大,越来越离不开这些给我们提供日常信息的工具。手机也已不再仅仅是简单的人与人通话的工具,而是在很大程度上成为了我们交换信息和获得各种服务的一种渠道。移动设备最根本的特征是移动性,即能够利用无线电波、微波或红外线灯传输介质允许通信中的设备在一定范围内自由移动,其位置不受束缚,从而实现通信双方至少有一方在移动中进行信息传输和交换的目的。移动设备从产生到现在的历史并不长,然而其发展速度却远远超出人们的预料。现如今,移动设备大行其道,全球有超过十亿部移动电话正在被使用,并且这个数目正在逐渐增加,在除美国之外的每个发达国家,拥有手机的人数比拥有计算机的人数更多。而目前,Android系统在成为全球最流行的智能手机操作系统,截止2012年11月,Android全球市场占有率达到76%,在中国份额更是达到90%,2013年9月24日,全世界Android的设备数量已经达到10亿台,智能手机的功能是越来越强大,它已经进入人类生活的各个领域,如炒股、聊天、娱乐以及网上冲浪等。综上所述,Android系统是移动平台发展的大势所趋,未来将在移动领域扮演一个时代重要的角色。所以,对Android平台进行相关研究并熟悉它是很有必要的,通过了解手机软件行业,进而把握未来移动互联网的发展趋势。同时可以更好的提升目前掌握的软件开发专业技能,开发出符合用户需求的应用软件,从而使生活更加便捷。Android 操作系统的普及,使用Android 智能手机的人越来越多,Android 的应用程序也越来越多。社会的不断发展进步,人们的生活变得异常的忙碌,生活节奏越来越快,忘却身边人的生日也是常有之事。如果在Android 手机中装有这么一个生日管家软件,在朋友生日到来之时,及时给他们送上祝福,彼此都会觉得特别的开心。目前市场上也存在类似的软件,此类软件的特点是: 比较占用手机资源,功能相对比较单一,用户体验较差,广告繁多导致用户使用比例小。所以,很多用户装了这类软件之后发现效果没有预期的好,或者是软件占用较大的手机资源甚至有毒,使用的比例非常小,因此设计一款小型的、安全无毒的,用户操作便捷的生日管家软件是很有必要的。1.2 目的和意义这次设计的目的很明显,就是为大众无法记得朋友家人生日而开发得一个基于Android平台的手机生日管家软件,为用户提供好友生日方面服务的,它包括好友生日信息的查看、好友信息的增删、好友信息的编辑、向好友送去祝福、一键电话一键短信等功能。这样可以帮助用户在繁忙的工作之余,不忘亲朋好友的生日,在特殊的日子里记录我们人生的成长记号,在这样特别的日子里为身边的人送上最真诚的生日祝福,希望这样的软件能给你的爱人,亲人,朋友带去欢乐和美好的祝福。1.3 国内研究现状中国手机软件的市场规模在近几年内一直保持了较快的发展,而且这几年的发展速度越来越快。在2012年,Android手机的全球销量为4.815部,占据了全球智能手机68.8%的市场份额。在2013年,这个数字上升到了7.812亿、78.9%,这是一个相当惊人的数字。随着Android应用的流行,网上出现了多种版本的生日管家类软件。每个软件都有以其独特的地方吸引了一大批用户。2012年7月上线的生日管家,用户上述生日管家大体相同的功能:用户可以直接由通讯录导入亲友的生日,从而省去了手动录入的麻烦,降低了使用门槛;不管出于真情或假意,用户都要适时送去祝福,为此生日管家的祝福标签一栏中为用户提供的是一系列祝福素材,比如短信祝福、语音贺卡等。但一般说来,一个单纯的工具性App是很难保持高粘性的,为此,生日管家以更多的服务去锁定更多的用户群体。用户规模决定商业模式,有5000万用户的生日管家将选择尝试卖虚拟礼物,围绕生日卖蛋糕、鲜花以及礼品,目前生日管家在全国100多个城市共有20多家蛋糕供应商和3家鲜花供应商,用户可以根据人气、价格、赠送对象预定合适的礼物,同时提出个性化的需求,比如在蛋糕上做个玩偶,花束里写上祝福语等,礼物会通过这些门店的专门渠道当日送达至好友手中,该业务正式上线以来,每天订单量一直稳步增长,目前约100单/天,客单价200元,选择组合购买的用户约为10%,用户男女比例持平,下单用户年龄集中在18-35岁之间,目前它采用与合作商分成的盈利模式,分成比例高达20%-30%,就蛋糕、鲜花、礼品三类商品而言,目前销售比例约为65%、20%和15%。随着产品的主体功能由记录工具向社交消费服务转变,生日管家的产品设计也正在朝着这个方向发展。1.4 软硬件需求硬件需求:CPU:Pentium以上计算机内存: 512M以上软件需求:操作系统版本:Windows XP/vista/Win7开发工具:Eclipse Luna SR2 (4.4.2)、ADT 23.0.3开发语言:Java1.5 本文的结构 论文主要结构及内容如下: 第一部分绪论,介绍项目的背景、目的及意义,阐述国内研究现状及软硬件需求。 第二部分相关知识介绍,介绍项目开发的的基础知识,包括Android操作系统、特点和优势的介绍,以及开发工具及环境的介绍。 第三部分软件需求分析及概要设计,分析软件开发的各方面需求,为设计做准备。 第四部分软件的详细设计,针对用户需求及概要设计,实现软件模块功能。 第五部分软件的测试,就软件几个功能进行测试,找出问题,完善软件。2 基础知识与开发技术2.1 Android操作系统简介Android操作系统的主要组成部分和逻辑结构。具体如图2.1所示:图2.1 Android操作系统 本系统是以Java为编程语言,Java是一种面向对象的语言,从接口到功能,灵活多变,语言等级较高,易于开发者掌握。软件主要运用的是利用发送Intent的办法在Activity之间的相互跳转,来实现不同操作界面之间的无缝切换。运行中如果某个Activity的画面被另一个Activity所取代,则这个Activity停止。本系统通过把View类与XML(可扩展标记语言)将用户界面放置在视图窗口,然后注册事件来完成相应的功能。例如,当视图要处理用户的点击事件的时候,Android就要向Framework注册一个OnClickListener等。本系统中触发事件都是通过这种来实现的。 Java语言是一种简单易用,面向对象的,可移植的语言。它具有很多的优越性和特点,比如:平台无关性,安全性,面向对象,健壮性等等。本系统就是在Android平台上使用Java语言完成的。2.1.1 Android系统特点Android系统具有如下5个特点:1) 开放性。Google与开放手机联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统;2) 应用程序无界限。Android上的应用程序可以通过标准API(Application Programming Interface,应用程序编程接口)访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用;3) 应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件;4) 应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML、JavaScript和样式表,还可以通过WebView显示网络内容;5) 应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引动注意6。每个Android应用程序都存在于它自己的世界之中:默认情况下,每个应用程序均运行于它自己的Linux进程中。当应用程序中的任意代码开始执行时,Android启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。每个进程都运行于自己的Java虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。默认情况下,每个应用程序均被赋予一个唯一的Linux用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。 使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个Linux进程,以及同一个虚拟机。2.1.2 Android手机平台的优势现在常见的智能手机平台有:Symbian、Windows Mobile、Blackberry、iOS等。Android作为第一个完整、开放、免费的手机平台,使其在为开发程序时拥有更大的自由。Android强调的是搜索功能,界面更强大,加上其融入了基本全部的Web应用的平台,现在的Android已经基本稳定,并拥有非常广泛的开发群体。最重要的Android操作系统与其他平台不同的是,免费向开发人员提供,这样的话可以节省近三成成本,因此得到了广大厂商与开发者的拥护。2.2 开发工具及其他软件的简介2.2.1 开发工具 此次设计主要采用Eclipse作为开发工具,设计过程中界面UI主要基于Android的XML文件完成。 Eclipse简介:Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。Eclipse也是非常著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C+和Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。本设计使用了在eclipse上的Android辅助开发插件ADT23.0.3.并使用了谷歌提供的SDK开发包中的Android4.4.4作为编译环境。2.2.2 其他软件的简介(1)JDK(Java Development Kit)是Sun Micro systems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的JRocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。(2)Android SDK(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,Android SDK 指的既是Android专属的软件开发工具包。(3)ADT(Android Development Tools),目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。 2.3 系统开发的环境Android 的上层应用程序是用Java 语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够, 因为是使用 Java 语言进行开发, 还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还需要在 Eclipse安装ADT,为 Android开发提供开发工具的升级或者变更,是Eclipse 下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建 Android 开发环境,从而进行Android应用程序的开发。(1) Eclipse (2) JDK(3) Android SDK(4) ADT(Android Development Tools)3 软件需求分析及概要设计3.1 软件的需求分析该软件是一个基于Android平台的手机生日管家软件,是为用户提供好友生日提醒方面服务的,它包括好友生日信息的查看、好友信息的增删、好友信息的编辑等设置、向好友送去祝福等功能。本软件可以帮助用户在繁忙的工作之余,不忘亲朋好友的生日,在特殊的日子里记录我们人生的成长记号,在这样特别的日子里为身边的人送上最真诚的生日祝福,希望这样的软件能给你的爱人,亲人,朋友带去欢乐和美好的祝福。3.2 软件的概要设计3.2.1 软件的功能模块说明(1)好友信息编辑模块。用户可以通过增加、修改、删除来管理好友生日信息。在好友信息列表中,包含了好友的姓名、生日、电话等内容。(2)自由选择提醒日期模块。用户可以通过软件自由去选择生日的提醒日日期,可以是在生日当天,可以是生日提前的那几天,用户可以完全进行自由设置。(3)自动拨打电话和自动发送信息模块。在生日提醒时,用户可以一键拨通好友的电话,或者说一键给好友发信息。3.2.2 软件的功能模块结构图在程序设计分析的基础上,结合实际情况,得出本程序的功能模块结构图。在结构图中包括了功能模块的表示及其中部分功能的实现原理。根据生日管家软件的要求,生日管家的功能模块主要有好友信息模块和生日提醒模块这两大块。首先是一个总的功能模块的结构图,其中包括了系统设计时的总体功能概括,具体如图3.1所示:置图3.1 功能模块结构 然后在总体的功能模块后面是主体功能的详细模块显示。在好友信息编辑显示上可分为几个部分,具体如图3.2所示:图3.2 信息编辑3.3 数据保存的设计数据保存用的是MySQL,与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQ L是开放源码软件,因此可以大大降低总体拥有成本。第一次进去必须先建立数据库文件,如果先getWritableDatabase()就会建立数据库, 使得fromOutCopyDate()读取不到数据,因为他们使用的是同一个数据库.以下是有关数据代码的核心部分:public SqlDatebase(Context context) this.context = context;sqLiteDatabase_sms = fromOutCopyDate(); 从外部复制数据到本地public SQLiteDatabase fromOutCopyDate() String DATEBASE_PATH = /data/data/.rcp.day/databases;String DATEBASE_FILENAME = rcpBrithday_sms.db;/* 数据的绝对路径 */String databasePath = DATEBASE_PATH + / + DATEBASE_FILENAME;File path = new File(DATEBASE_PATH);/ 建立一个文件夹if (!path.exists() path.mkdir();/ 建立一个文件if (!(new File(databasePath).exists() InputStream inputStream = context.getResources().openRawResource(R.raw.wishdata);try FileOutputStream fileOutputStream = new FileOutputStream(databasePath);byte data = new byte2048;int index = 0;while (index = inputStream.read(data) != -1) fileOutputStream.write(data, 0, index);System.out.println(-=-);inputStream.close();fileOutputStream.close();用户存储生日信息代码,核心部分如下:public class MySql extends SQLiteOpenHelper private static MySql mInstance = null;/ 姓名 年龄 性别 头像 年 月 日 电话 生肖 星坐AUTOINCREMENTprivate static final String create = Create Table + sqlVolue.TABLE_brith_name + ( _id integer primary key,+ sqlVolue.brithPer_name + text, + sqlVolue.brithPer_age+ integer, + sqlVolue.brithPer_sex + text,+ sqlVolue.brithPer_photo + text, + sqlVolue.gregorianYear+ integer, + sqlVolue.gregorianMouth + integer,+ sqlVolue.gregorianDate + integer, + sqlVolue.brithPer_phone+ text, + sqlVolue.brithPer_animals + text,+ sqlVolue.brithPer_constellation + text,+ sqlVolue.brithPer_beizhuInfo + text);private static final String create1 = Create Table + sqlVolue.TABLE_SMS_name + ( _id integer primary key,+ sqlVolue.SMS_info + text);public MySql(Context context) super(context, rcpBrithday.db, null, 1);/* 单例模式 */static synchronized MySql getInstance(Context context) if (mInstance = null) mInstance = new MySql(context);return mInstance;public void onCreate(SQLiteDatabase db) db.execSQL(create);db.execSQL(create1);4 软件的详细设计4.1 主界面的设计与实现4.1.1 主界面的头部菜单栏制作菜单栏使用了ActionBar,可以替代传统的标题栏,设计出可以展开更多的丰富内容,方便操控。ActionBar上默认情况下包括了app的logo,logo位置在左侧,紧挨在logo右侧的是activity的title,其主要功能包括:显示选项菜单,提供标签页的切换方式的导航功能,可以切换多个fragment,提供下拉的导航条目,提供交互式活动视图代替选项条目,使用程序的图标作为返回Home主屏或向上的导航操作。通过调用onCreateOptionsMenu()方法来将菜单项放置于ActionBar中,在menu中声明Action Item的例子。具体如图4.1所示:图4.1 在菜单栏中增加添加控件当用户选择一个Action Item是,Activity会接受到onOptionsItemSelected()方法的调用,并且传入菜单项的ID值,具体如图4.2所示:图4.2 添加功能的跳转4.1.2 软件主界面功能的设计在主界面(好友信息界面)中,包括了好友信息的添加、修改、删除主要功能。(1) 添加生日信息功能,layout文件代码如下: 软件添加生日功能页面。具体如图4.3所示:图4.3 添加功能的实现(2) 好友信息的修改,调用LinkManDao.txt文本下保存的好友信息,通过edit重新编辑信息,具体如图4.4所示:图4.4 好友信息修改(3) 在ListView界面上有对好友信息的删除操作,只要点击就会出现删除选项,删除后后会跳转回主界面,删除信息的界面。具体如图4.5所示:图4.5 好友信息删除4.2. 任务功能的设计 (1)一键拨打电话在AndroidManifest中添加user-permission,并声明使用权限:通过Inter对象,带入“ACTION_CALL”这个关键词,以及通过Uri.parse()方法将用户要拨打的号码带入。最后以startActivity(intent)方法(代码如图4-10),即可完成通过程序直接拨打电话,具体如图4.11所示一键拨打电话效果图。图4.7 拨打电话的实现代码通过两个虚拟机模拟拨打电话。具体如图4.8所示:图4.8 一键拨打电话效果图 (2)一键发送短信同样,在AndroidManifest中添加user-permission,并声明使用权限:,具体如图4.9所示: 图4.9 一键发送短信效果图5 手机软件系统测试5.1 手机软件测试概述 手机软件系统测试仿佛还是近几年的事情,当大多数的IT工程师埋头于软件编程,想着如何增加手机的各项功能使其更加的人性化、智能化的时候,软件测试工程师并没有得到足够的重视。而如今随着智能手机的日渐强大,各种复杂功能的出现,用户在使用过程中出现了各种各样的问题,这时企业才发现经历了软件开发过程之后,产品并不能立即交付使用,成功与否还需要测试人员加以认证。软件测试是软件开发过程中的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的:第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件;第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。四、质量也代表着它符合客户的需要。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是提高了。 测试人员在软件开发过程中的任务:寻找Bug;避免软件开发过程中的缺陷;衡量软件的品质;关注用户的需求。总的目标是:确保软件的质量。 5.2 常用的软件测试方法随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强,选择合适的软件测试方法可以让我们事半功倍。5.2.1 黑盒测试黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。黑盒测试的优点有:(1) 比较简单,不需要了解程序内部的代码及实现;(2) 与软件的内部实现无关;(3) 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;(4) 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;(5) 在做软件自动化测试时较为方便。 黑盒测试的缺点有:(1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%; (2)自动化测试的复用性较低。5.2.2 白盒测试白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。具体如图5.1所示程序代码:图5.1 用例代码 读了代码之后可以知道,可以知道注册界面的运行是否流畅,也可以设计很多不同的测试用例,比如修改提示、修改保存后跳转页面等。这些是在纯粹做黑盒测试时不一定能做到的事情。白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。 白盒测试的缺点有: (1)程序运行会有很多不同的路径,不可能测试所有的运行路径; (2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否; (3)可能会漏掉一些功能需求; (4)系统庞大时,测试开销会非常大。 5.2.3 基于风险的测试 基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。具体如图5.2所示,横轴代表影响,竖轴代表概率,根据一个软件的特点来确定:如果一个功能出了问题,它对整个产品的影响有多大,这个功能出问题的概率有多大?如果出问题的概率很大,出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那么如果时间比较紧的话,就可以考虑不测试。基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,出问题的概率有多大。其它一些影响因素还有复杂性、可用性、依赖性、可修改性等。测试人员主要根据事情的轻重缓急来决定测试工作的重点。 图5.2 风险测试分析5.2.4 基于模型的测试 模型实际上就是用语言把一个系统的行为描述出来,定义出它可能的各种状态,以及它们之间的转换关系,即状态转换图。模型是系统的抽象。基于模型的测试是利用模型来生成相应的测试用例,然后根据实际结果和原先预想的结果的差异来测试系统,过程具体如图5.3所示:图5.3 模型测试过程状态转化5.3 本系统测试用例本系统是基于Android平台的生日管家系统,其主要功能是好友信息的编辑及好友生日的提醒,测试目的在于好友信息是否能够正确的保存和好友生日当天是否能够通过查询已保存的好友信息向好友送去生日祝福。在测试过程中还需启动两个模拟机,以此模拟向好友打电话和发送短信的功能。主界面功能的测试,结果具体如图5.4所示:1.添加手机测试用例功能的测试。模拟用户添加手机测试用例的几种情况。(1)选择添加,输入姓名、电话、生日。系统提示:测试用例保存成功。(2)选择添加,输入电话、生日,不输入姓名。系统提示:姓名不能为空。(3)选择添加,输入姓名、生日,不输入电话。系统提示:测试用例保存成功。(4)选择添加,什么也不填写,直接保存。系统提示:姓名不能为空。(5)填写一条已经存在的手机测试用例,保存。系统提示:测试用例保存成功。2.删除手机测试用例功能的测试。(1)选择一条测试用例,点击删除。系统提示:删除成功。(2)以上操作成功后,重新查询删除的手机测试用例。实际情况:查询不到该测试用例。3.修改手机测试用例功能的测试。(1)修改时,只修改姓名,电话、生日不进行修改。系统提示:修改成功。(2)修改时,只修改电话,姓名、生日不进行修改。系统提示:修改成功。图5.4 主界面测试结果图模拟用户添加两条手机测试用例:一条测试用例添加好友姓名、电话及生日;另一条测试用例则只添加好友姓名和生日,电话为空。进入生日提醒界面,测试一键拨打电话和发送短信功能是否出现问题。1. 点击已保存好的好友信息(包括姓名、电话、生日)的item,一键拨打电话。系统提示:拨打成功。2. 相同的测试用例,进行发送短信。系统提示:短信发送成功。3. 点击另一条保存好的好友信息(不包括电话)的item,一键拨打电话。系统提示:无响应。4. 相同的测试用例,进行发送短信。系统提示:没有电话号码。6 结论经过艰苦的奋斗,我的毕业设计基于Android平台的生日管家软件终于完成了,软件成功通过测试,可以实现在模拟器和手机上的操作。在毕业设计开始之初,经过先前的准备工作,包括开题报告、任务书、外文翻译的书写,使得我对自己的毕业设计内容有了初步的认识,然后是对Android基本知识的学习、熟悉及掌握。一切准备就绪后开始进行毕业设计的启动,一开始还是遇到了各种各样的问题,通过自己的不断尝试,不断的学习,查找资料和向老师寻求解决办法,终于解决了毕业设计项目中的一些难点,在这过程中我感觉到经历很多,收益很多。其中我了解了很多以前在书本中无法学习到的知识,我发现只有自己实践才能更好地提升自己的能力,并且光有知识是不够的,还需要与实践相结合,这样才能提高自己的专业知识和操作能力。同时,还从侧面让我再次学习到Android的应用时怎么在系统上运行的。其中吸引我地方就是Android的Runtime,在这,我看到了Google设计的Dalvik虚拟机不同于传统Java虚拟机的地方,这个虚拟机在移动终端设备CPU速度低,资源有限的环境下也能很高效率的运行,这无疑也证明了Android系统的成功。软件开发的过程中,不仅学习到Android系统是一个层次的软件集,学习了Android层次方面的问题及对其运行环境层和Android应用框架层的重要,通过对Android平台上应用的开发,更一步了解了Android系统在开发过程中,尤其注重Android对Intent机制的使用。此项目虽然完成了,但是其中还存在不少的问题。当然,作为第一次做Android的手机应用,还有许多未熟悉和掌握的知识,所以开发出来的软件可能存在着问题,例如界面粗糙,未达到市场需求等。只有在不断地熟悉与学习,并且去尝试,才能更好的完成以后的工作任务。虽然存在一些问题,但是这次的毕业设计,给了我们一次很好的锻炼机会。指导老师耐心的带领我们,深刻的认识了开发一个项目的完整过程,从中我学到了很多很多。这次毕业设计的制作使我体会最深的是我们做任何事只要坚持就会成功的。刚开始做这个系统的时候我自己无从下手,当中存在着很多很多的疑问,我灰心丧气,感觉自己学了那么多的东西一样都没有用到。但是在老师的耐心指导下,我重拾信心,通过去图书馆找相关的资料,通过网上搜索相关的内容,慢慢就有了头绪。从一开始的手足无措,毫无进展,到后来通过老师的帮助把系统的一个个模块一点一点地实现出来,我感到很高兴很兴奋。总之,这次的毕业设计是一个不断学习、探索、发现问题和解决问题的过程。在以后的工作中还需要不断的积累,不断的努力。参考文献1靳岩, 姚尚朗. Google Android 开发入门与实战M. 北京: 人民邮电出版社, 2009: 1-12.2景保玉. 2010中国移动应用开发现状与趋势大调查M. 北京: 人民邮电出版社, 2011: 2-19.3谭浩强.Java语言程序设计(第三版)M.北京:清华大学出版社,2008.4余志龙.Android SDK开发范例大全2M.北京:人民邮电出版社,2010.5郭宏志.Android应用开发详解M.北京:电子工业出版社,2010.6李飞.最新实用网络技术教程M.西安:西安电子科技大学出版社,2012.7张利国,龚海平,王植萌.Android移动开发入门与进阶M.北京:人民邮电出版社,2009.8Enck, William, Ongtang, Machigar, McDaniel, Patrick. Understanding Android SecurityJ. IEEE security & privacy, 2009, 7(1): 50-57. 9林寒超,张南平. Hibernate技术的研究J. 计算机技术与发展,2006, 16(11): 112-113.10胡伟. Android系统架构及其驱动研究J.广州广播电视大报.2010,10(4). 11亢勇,陈自力,李鹏,路平. 面向对象的软件测试J. 测试技术学报,1999,(02):15-23.12陈昱,江兰帆.基于Google Android平台的移动开发研究J.福电脑,2008(11): 156-157.13陈璟,陈平华,李文亮. Android内核分析J . 广东工业大学计算机学院 实践与经验,2009(1):112-115. 14SIMSON GARFINKEL. Android CallingJ. Technology Review, 2008, 111(2): 80-99.15姚昱旻,刘卫国. Android的架构与应用开发研究J. 计算机系统应用,2008,17(11):110-112.16田珂,谢世波,方马. J2EE数据持久层的解决方案J. 计算机工程,2003, 29(22): 93-95.17陈道鑫,宋绍云,袁中旺,等. ExtJS框架在Web软件开发中的应用J. 电脑知
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!