相关标签

探讨HTML5警务知识查询系统的设计

发布时间:2020-01-06 18:44

  摘要:本文档的目的是进一步定制软件开发的细节,并使软件开发工作更加具体。是用户的软件,软件开发人员和分析师初始规则有一个共同的理解,它说明了产品的功能需求、性能需求和数据需求,清楚地识别每个函数的实现过程,实际背景和范围,提供客户解决问题或达到所需的条件或能力,提供测量和基准。HTML5提供了各种各样的标记,极大地促进了开发人员的开发。

  关键字:HTML5,网站开发,软件设计

  一、背景和意义

  1.1TML超文本标记语言

  超文本标记语言,标准通用标记语言下的一个应用。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。

  1.2语言概述

  在WWW上的一个超媒体文档称之为一个页面(page)。作为一个组织或个人在万维网上开始点的页面称为主页Homepage,或首页,主页中通常包括有指向其他相关页面或其他节点的指针(超级链接)。在逻辑上将视为一个整体的一系列页面的有机集合称为网站(Website或Web)。

  Web页面也就是通常所说的网页,在这里不作区分。

  1.3规范标准

  HTML之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点------就是一种URL指针,通过激活(点击)它,可使浏览器方便地获取新的网页。这也是HTML获得广泛应用的最重要的原因之一。

  由此可见,网页的本质就是HTML,通过结合使用其他的Web技术(如:脚本语言、CGI、组件等),可以创造出功能强大的网页。因而,HTML是Web编程的基础,也就是说万维网是建立在超文本基础之上的。

  1.4有关约定.

  在编辑HTML文件和使用有关标记符时有一些约定或默认的要求。

  (1)文本标记语言源程序的文件扩展名默认使用htm或html。在使用文本编辑器时,注意修改扩展名。而常用的图像文件的扩展名为gif和jpg。

  (2)HTML源程序为文本文件,其列宽可不受限制,即多个标记可写成一行,甚至整个文件可写成一行;若写成多行,浏览器一般忽略文件中的回车符(标记指定除外);对文件中的空格通常也不按源程序中的效果显示。完整的空格可使用特殊符号“ (注意此字母必须小写,方可空格)”表示非换行空格,如需换行可以输入;表示文件路径时使用符号“/”分隔,文件名及路径描述可用双引号也可不用引号括起。

  (3)标记符中的标记元素用尖括号括起来,如:"<"">",带斜杠的元素表示该标记说明结束;大多数标记符必须成对使用,以表示作用的起始和结束;标记元素忽略大小写,即与作用相同,但完整的空格可使用特殊符号“ (注意此字母必须小写,方可空格)”;许多标记元素具有属性说明,可用参数对元素作进一步的限定,多个参数或属性项说明次序不限,其间用空格分隔即可;一个标记元素的内容可以写成多行。

  (4)标记符号,包括尖括号、标记元素、属性项等必须使用半角的西文字符,而不能使用全角字符。

  (5)HTML注释由惊叹号表示,注释内容由符结束。注释内容可插入文本中任何位置。任何标记若在其最前插入惊叹号,即被标识为注释,不予显示。

  二HTML与网站开发

  2.1网站服务器

  网站服务器(WebsiteServer)是指在互联网数据中心中存放网站的服务器。网站服务器主要用于网站的互联网中的发布、应用,是网络应用的基础硬件设施。

  部署网站服务器一般都是在IDC服务商租用或者托管服务器,也可以自己托管机房。24小时维护、1-3个工作日上架。部署网站服务器根据使用用户的地域分布选择合适的IDC域名注册查询服务商,比如:网站主要用做国际贸易,网上下单,那就选择有国际带宽出口IDC服务商(香港、上海国际带宽充足)。

  服务器软件,服务器软件工作在客户端-服务器或浏览器-服务器的方式,有很多形式的服务器,常用的包括:文件服务器(FileServer)-如Novell的NetWare。数据库服务器(DatabaseServer)-如Oracle数据库服务器,MySQL,PostgreSQL,MicrosoftSQLServer等

  2.2应用环境

  网站服务器可根据网站应用的需要,部署搭建ASP/JSP/.NET/PHP等应用环境。流行两种环境一种是Linux+Apache(Nginx)+Mysql+Php也就是LAMP/LNMP环境;另一种是WINDOWS+IIS+ASP/.NET+MSSQL环境。

  LAMP为现在使用最广的服务器环境,它运行在Linux系统下,稳定、安全,Apache是最著名的开源网页服务器,Mysql也是最著名的一种开源关系型数据库,而PHP是一门流行的开源脚本语言,能处理用户的动态请求。[2]

  Windows+IIS+ASP/.NET+MSSQL凭借其极强的易用性,也赢得了许多站长的青睐,Windows是著名的可视化操作系统,而IIS是运行在Windows上的Web服务器,可使用ASP/.NET两种编程语言开发,现在应用最广的就是ASP.NET。

  2.2.1 浏览器求

  首先浏览器会解析域名对应的IP地址。

  浏览器会首先搜索浏览器自身的DNS缓存,如果浏览器自身缓存找不到则会查看系统的DNS缓存,如果找到且没有过期则停止搜索解析到此结束.

  而如果本机没有找到DNS缓存,则浏览器会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器发起域名解析请求(通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必须得提供给我们该域名的IP地址),运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。如果没有找到对应的条目,则有运营商的DNS代我们的浏览器发起迭代DNS解析请求,它首先是会找根域的DNS的IP地址(这个DNS服务器都内置13台根域的DNS的IP地址),找打根域的DNS地址,就会向其发起请求(请问www.linux178.com这个域名的IP地址是多少啊?),根域发现这是一个顶级域com域的一个域名,于是就告诉运营商的DNS我不知道这个域名的IP地址,但是我知道com域的IP地址,你去找它去,于是运营商的DNS就得到了com域的IP地址,又向com域的IP地址发起了请求(请问www.linux178.com这个域名的IP地址是多少?),com域这台服务器告诉运营商的DNS我不知道www.linux178.com这个域名的IP地址,但是我知道linux178.com这个域的DNS地址,你去找它去,于是运营商的DNS又向linux178.com这个域名的DNS地址(这个一般就是由域名注册商提供的,像万网,新网等)发起请求,这个时候linux178.com域的DNS服务器一查,诶,果真在我这里,于是就把找到的结果发送给运营商的DNS服务器,这个时候运营商的DNS服务器就拿到了www.linux178.com这个域名对应的IP地址,并返回给Windows系统内核,内核又把结果返回给浏览器,终于浏览器拿到了www.linux178.com对应的IP地址,该进行一步的动作了。

  发起TCP的3次握手拿到域名对应的IP地址之后,User-Agent(一般是指浏览器)会以一个随机端口(1024<端口<65535)向服务器的WEB程序(常用的有httpd,nginx等)80端口发起TCP的连接请求。这个连接请求(原始的http请求经过TCP/IP4层模型的层层封包)到达服务器端后(这中间通过各种路由设备,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别该连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终到达WEB程序(本文就以Nginx为例),最终建立了TCP/IP的连接。

  2.2.2服务器响应

  将单机连成网络,如将A与B连成网络,则可以使它们之间提供服务,如A向B提供服务。常见的服务是文件共享,FTP文件下载等。我们把提供(响应)服务的计算机称作服务器(Server),接受(请求)服务的计算机称作客户机(Client),也叫工作站(Workstations)。

  服务器和客户机的角色可以转换。一台计算机,可以对自己提供服务,这时它既是服务器,也是客户机。如,计算机A把自己的文件夹a共享,然后在网络上找到A,则可以下载a,即自己对自己提供了服务,自己请求并响应了服务。

  客户机/服务器的这种计算机间的协作方式,称为C/S方式,或C/S架构。

  C/S程序分为两部分:服务器端和客户机端,分别称为服务器端程序(或服务程序)和客户端程序(或客户程序)。对于客户端程序,对每一个客户机,也都要分别安装,这一点与单机程序的分发相同,也很麻烦。但是,安装好了客户端程序后,就可以通过通信线路与服务器交互,或通过服务器,与其他客户机通信。典型的例子是大家常用的聊天程序QQ。

  2.3HTML5的新特性

  2.3.1 新的文档类型(NewDoctype)

  HTML5简化了文档类型的声明方式,而之前的文档类型的声明方式是非常复杂,并且难以记忆的。

  2.3.2 脚本和链接无需type

  在HTML4或XHTML中,你需要用下面的几行代码来给你的网页添加CSS和JavaScript文件,而在HTML5中,你不再需要指定type属性。

  2.3.3 更加语义化的元素

  HTML5新增的一些更具有语义化的新标签来替代标签,但它们并不提供额外的功能。

  2.3.4 占位符(Placeholder)

  在HTML4或XHTML中,一般需要用JavaScript来给文本框添加占位符。比如:通过脚本设置,当用户开始输入时,文本框中的文字就消失。而在HTML5中,新增的“placeholder”功能可以很简单的解决这个问题。

  2.3.5 Audio和Video支持

  在HTML5之前,网页通常需要依靠第三方插件来渲染音频。而在HTML5中,元素被引进来后,我们可以使用audio元素来渲染音频。

  在HTML5中,不仅新增渲染音频的元素,同时也新增了支持视频的元素video。

  2.3.6 离线&存储

  IndexedDB是一个为了能够在客户端存储可观数量的结构化数据,并且在这些数据上使用索引进行高性能检索的API。虽然DOM存储对于存储少量数据是非常有用的,但是它对大量结构化数据的存储就显得力不从心了。IndexedDB则提供了这样的一个解决方案。

  2.3.7 HTML5canvas

  是HTML5新增的元素,可使用JavaScript脚本来绘制图形。例如:画图,合成照片,创建动画甚至实时视频处理与渲染。

  2.4.HTML5在公安工作中的应用现状

  在移动设备开发HTML5应用只有两种方法,要不就是全使用HTML5的语法,要不就是仅使用JavaScript引擎。JavaScript引擎的构建方法让制作手机网页游戏成为可能。由于界面层很复杂,已预订了一个UI工具包去使用。纯HTML5手机应用运行缓慢并错漏百出,但优化后的效果会好转。尽管不是很多人愿意去做这样的优化,但依然可以去尝试。HTML5手机应用的最大优势就是可以在网页上直接调试和修改。原生应用的开发人员可能需要花费非常大的力气才能达到HTML5的效果,不断地重复编码、调试和运行,这是首先得解决的一个问题。现在html5的应用已经相当广泛,未来移动互联网都需要用到html5开发应用,当前html5在各行各业中运用交为广泛,但是在公安系统中使用任然较少,所以本次设计为公安系统添加不少方便。

  2.5.一个HTML5警务知识查询系统

  当我们接受到毕业设计后,在项目运行的全过程中充满了不确定因素,只有有效的运用项目管理的科学和艺术,才有可能使项目取得成功。对以上方面要想达到有效的管理水平,必须有一套科学的管理方法,但是即使有了科学的管理方法,由于项目干系人之间的沟通、协作不到位,往往达不到预期的结果。鉴于这种情况我们开发一套项目管理协作支撑系统,旨在为项目干系人提供一个交流、协作以及项目的进度跟踪监控、项目的质量控制、项目相关资源的管理的软件平台,从而提高项目管理水平,实现了工作的协同化、提高了工作效率。

  二、系统的设计(UML图,模块、时序图,功能函数的表格)

  2.1.模块划分

  2.1.1用户管理

  菜单:系统管理--用户管理--警员管理

  描述:警员管理是将所有该系统的用户信息录入系统,包括警员编号(唯一,系统登录使用警员编号,密码默认为1,用户首次登录之后自行修改密码)、姓名、部门、所属辖区;

  2.1.2色管理

  菜单:系统管理--用户管理--角色管理

  描述:角色管理是创建角色、添加角色成员、修改角色权限;

  2.1.3础数据管理

  菜单:系统管理--基础数据

  描述:基础数据管理包括系统中需要的楼宇数据、社区数据、部门数据的录入修改;

  2.1.4限管理

  菜单:系统管理--权限管理

  描述:系统所有权限,暂时可不关系

  2.1.5备管理

  菜单:警务报备--报备管理

  描述:警务报备管理,系统主要功能之一,添加入口是菜单节点是“报备管理”;节点“报备明细”、“报备报表”是查询入口;入户管理等同;

  2.1.6管理

  菜单:入户管理--入户管理

  描述:入户管理,系统主要功能之一,添加入口是菜单节点是“入户录入”;节点“入户报表”是查询入口;

  2.2.用户界面的设计

  本页面用于用户登录,包含两个文本框,登录、注册按钮

  管理员:输入管理员用户名,用户名长度限制10-20位

  密码:密文

  用户点击登录,后台进行用户名和密码验证,

  正确:正常登录,并进入默认页面

  错误:弹窗提示用户:用户名或密码错误,请重新输入!

  2.3.系统功能设计

  用户:管理员。

  点击项目计划信息查看。

  进入后台界面后,点击人员系统下面的人员信息查看,可以进行相应的操作。

  三、系统的实现

  3.1.开发环境

  HTML5是用于取代1999年所制定的HTML4.01和XHTML1.0标准的HTML标准版本,现在仍处于发展阶段,但大部分浏览器已经支持某些HTML5技术。HTML5有两大特点:首先,强化了Web网页的表现性能。其次,追加了本地数据库等Web应用的功能。广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-basedrichinternetapplication,RIA),如AdobeFlash、MicrosoftSilverlight,与OracleJavaFX的需求,并且提供更多能有效增强网络应用的标准集。

  3.2.用户界面的实现

  实现这个界面非常简单,以前就学过静态网页的开发,虽然学的不精,但还是懂一些的。

  这次主要是实现对用户名,密码的验证,即验证用户名和密码是否为空

  3.3.脚本实现与主要代码

  functionloginClick(){

  varname=document.login.username.value;

  varpwd=document.login.password.value;

  if(name==null||name.length==0){

  alert("用户名不能为空!");

  return;

  }

  if(pwd==null||pwd.length==0){

  alert("密码不能为空!");

  return;

  }

  document.login.submit();

  }

  align="center">

  color="#196ed1">

  警务知识查询系统—用户登录

  src="./images/login_Page/loginPage_02.jpg"alt="此处显示登录图片"/>

  登录名:

  class="login_input"type="text"name="username">

  密码:

  type="password"name="password"class="login_input">

  版权所有

  3.4.测试(黑盒、白盒)

  软件测试(英语:SoftwareTesting),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试分为黑盒测试和白盒测试两种。

  3.4.1白盒测试

  白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

  采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。

  测试方法

  白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。

  白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:

  1.语句覆盖每条语句至少执行一次。

  2.判定覆盖每个判定的每个分支至少执行一次。

  3.条件覆盖每个判定的每个条件应取到各种可能的值。

  4.判定/条件覆盖同时满足判定覆盖条件覆盖。

  5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。

  6.路径覆盖使程序中每一条可能的路径至少执行一次。

  要求

  1.保证一个模块中的所有独立路径至少被使用一次。

  2.对所有逻辑值均需测试true和false。

  3.在上下边界及可操作范围内运行所有循环。

  4.检查内部数据结构以确保其有效性。

  目的

  通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

  特点

  依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。

  实施步骤

  1.测试计划阶段:根据需求说明书,制定测试进度。

  2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。

  3.测试执行阶段:输入测试用例,得到测试结果。

  4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

  优缺点

  优点

  1.迫使测试人员去仔细思考软件的实现

  2.可以检测代码中的每条分支和路径

  3.揭示隐藏在代码中的错误

  4.对代码的测试比较彻底

  5.最优化

  缺点

  1.昂贵

  2.无法检测代码中遗漏的路径和数据敏感性错误

  3.不验证规格的正确性

  局限

  但即使每条路径都测试了仍然可能有错误。可能出现的情况如下:

  穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。

  穷举路径测试不可能查出程序中因遗漏路径而出错。

  穷举路径测试可能发现不了一些与数据相关的错误。

  工具挑选

  白盒测试主要用在具有高可靠性要求的软件领域,例如:军工软件、航天航空软件、工业控制软件等等。白盒测试工具在选购时应当主要是对开发语言的支持、代码覆盖的深度、嵌入式软件的测试和测试的可视化等。

  语言支持

  白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。但是对于不同的开发语言,测试工具实现的方式和内容差别是较大的。测试工具主要支持的开发语言包括:标准C、C++、VisualC++、Java和VisualJ++等。

  覆盖深度

  从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖和修正判定条件覆盖。

  1.语句覆盖为了暴露程序中的错误,程序中的每条语句至少应该执行一次。因此语句覆盖(StatementCoverage)的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。语句覆盖是很弱的逻辑覆盖。

  2.判定覆盖比语句覆盖稍强的覆盖标准是判定覆盖(DecisionCoverage)。判定覆盖的含义是:设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少经历一次,因此判定覆盖又称为分支覆盖。

  3.条件覆盖在设计程序中,一个判定语句是由多个条件组合而成的复合判定。为了更彻底地实现逻辑覆盖,可以采用条件覆盖(ConditionCoverage)的标准。条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。

  4.多条件覆盖。多条件覆盖也称条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。

  5.修正条件判定覆盖。修正条件判定覆盖是由欧美的航空/航天制造厂商和使用单位联合制定的“航空运输和装备系统软件认证标准”,在国外的国防、航空航天领域应用广泛。这个覆盖度量需要足够的测试用例来确定各个条件能够影响到包含的判定的结果。它要求满足两个条件:首先,每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;其次,程序的判定被分解为通过逻辑操作符(and、or)连接的布尔条件,每个条件对于判定的结果值是独立的。

  不同的测试工具对于代码的覆盖能力也是不同的,通常能够支持修正条件判定覆盖的测试工具价格是极其昂贵的。

  嵌入式测试

  对于嵌入式软件的测试,我们还需要一方面进一步考虑测试工具对于嵌入式操作系统的支持能力,例如DOS、Vxworks、Neculeus、Linux和WindowsCE等;另一方面还需要考虑测试工具对于硬件平台的支持能力,包括是否支持所有64/32/16位CPU和MCU,是否可以支持PCI/VME/CPCI总线。

  可视化

  白盒测试是工作量巨大并且枯燥的工作,可视化的设计对于测试来说是十分重要的。在选购白盒测试工具时,应当考虑该款测试工具的可视化是否良好,例如:测试过程中是否可以显示覆盖率的函数分布图和上升趋势图,是否使用不同的颜色区分已执行和未执行的代码段显示分配内存情况实时图表等,这些对于测试效率和测试质量的提高是具有很大的作用的。

  测试方法

  白盒测试的测试方法中运用最为广泛的是基本路径测试法。

  基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。

  在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。包括以下4个步骤和一个工具方法:

  1.程序的控制流图:描述程序控制流的一种图示方法。

  2.程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。

  3.导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。

  4.准备测试用例:确保基本路径集中的每一条路径的执行。

  工具方法

  1.图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。

  2.程序的控制流图:描述程序控制流的一种图示方法。

  3.圆圈称为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句。

  流图只有二种图形符号:

  1.图中的每一个圆称为流图的结点,代表一条或多条语句。

  2.流图中的箭头称为边或连接,代表控制流,任何过程设计都要被翻译成控制流图。

  在将程序流程图简化成控制流图时,应注意:

  1.在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。

  2.边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。

  步骤

  基本路径测试法的步骤:

  第一步:画出控制流图

  流程图用来描述程序控制结构。可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。在流图中,每一个圆,称为流图的结点,代表一个或多个语句。一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:if-else-then结构)。由边和结点限定的范围称为区域。计算区域时应包括图外部的范围。

  第二步:计算圈复杂度

  圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。

  有以下三种方法计算圈复杂度:

  流图中区域的数量对应于环型的复杂性;

  给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;

  给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。

  第三步:导出测试用例根据上面的计算方法,可得出四个独立的路径。(一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。)

  路径1:4-14

  路径2:4-6-7-14

  路径3:4-6-8-10-13-4-14

  路径4:4-6-8-11-13-4-14

  根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。

  3.4.2黑盒测试

  黑盒测试概述

  黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

  白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

  “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:

  1.对程序模块的所有独立的执行路径至少测试一次;

  2.对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;

  3.在循环的边界和运行界限内执行循环体;

  4.测试内部数据结构的有效性,等。

  具体包含的逻辑覆盖有:–语句覆盖–判定覆盖–条件覆盖–判定-条件覆盖–条件组合覆盖–路径覆盖。

  白盒测试技术(WhiteBoxTesting):深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,在JAVA平台使用Xunit系列工具进行测试,Xunit测试工具是类一级的测试工具对每一个类和该类的方法进行测试。

  黑盒测试技术(BlackBoxTesting):黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑以下方面:

  1.正确性(Correctness):计算结果,命名等方面。

  2.可用性(Usability):是否可以满足软件的需求说明。

  3.边界条件(BoundaryCondition):输入部分的边界值,就是使用一般书中说的等价类划分,试试最大最小和非法数据等等。

  4.性能(Performance):正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间在可以接受范围内。J2EE技术实现的系统在性能方面更是需要照顾的,一般原则是3秒以下接受,3-5秒可以接受,5秒以上就影响易用性了。如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑到软件的性能问题

  5.压力测试(Stress):多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行。如果有负载平衡的话还要在服务器端打开监测工具,查看服务器CPU使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息。如果有必要的话必须进行性能优化(软硬件都可以)。这里的压力测试针对的是某几项功能。

  6.错误恢复(ErrorRecovery):错误处理,页面数据验证,包括突然间断电,输入脏数据等。

  7.安全性测试(Security):这个领域正在研究中,防火墙、补丁包、杀毒软件等的就不必说了,不过可以考虑。破坏性测试时任意看了一些资料后得知,这里面涉及到的知识、内容可以写本书了,不是一两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的web更是需要这方面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事件时的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容。

  8.兼容性(Compatibility):不同浏览器,不同应用程序版本在实现功能时的表现不同的上网方式,如果你测试的是一个公共网站的话。

  三步法

  1.根据代码的功能,人工设计测试用例进行基本功能测试;

  2.统计白盒覆盖率,为未覆盖的白盒单位设计测试用例,实现完整的白盒覆盖,比较理想的覆盖率是实现100%语句、条件、分支、路径覆盖;

  3.自动生成大量的测试用例,捕捉"程序员未处理某些特殊输入"形成的错误。

  第1步的测试用例通常是现成的,因为详细设计文档会规定程序的基本功能,没有文档的,程序员在编程时也要想清楚程序的功能,这些基本功能就是基本测试用例;

  第2步是在第1步的基础上,检查未覆盖的白盒单位,由于未覆盖的逻辑单位通常对应未测试的等价类,因此第2步可以找出第1步所遗漏的测试用例;

  第3步用自动动态测试弥补第2步的固有缺陷。

  "三步法"尽量避免重复工作,白盒方法和黑盒方法相结合,人工方法和自动方法相补充,如果第2步的覆盖率比较理想,那么基本上可以保证找出所有等价类。在开发过程允许的限度内,"三步法"已接近极限,当得起"彻底测试"四个字。

  四、总结与展望

  1.横向

  html5是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改。

  html5平常方面都可以应用,但是,大量应用于移动应用程序和游戏,因为用HTML5的优点主要在于,这个技术可以进行跨平台的使用。

  比如开发了一款HTML5的游戏,可以很轻易地移植到UC的开放平台、Opera的游戏中心、Fb应用平台,甚至可以通过封装的技术发放到AppStore或GooglePlay上,所以它的跨平台性非常强大,这也是大多数人对HTML5有兴趣的主要原因。

  2.纵向

  HTML5是网页开发语言,通过HTML5语言当然可以开发出适用于任何移动设备的酷炫网站页面,包括一些很炫的动画效果都是通过HTML5语言实现的,而且H5还不仅限于移动设备网页开发,同时也适用于PC端网页开发。所以,HTML5是未来的一个发展趋势。HTML5的其它功能,如表单和新标准还在快速演进,而随着标准化工作的进行,HTML5有可能变回HTML。HTML5开发领域的领军人物包括Sencha,Adobe,Appcelerator,appMobi及Facebook,亚马逊,Google三大巨头。

  不管你是想开发出新型视频应用的开发商如Brightcover还是想开发新型音频应用的开发商如Soundcloud,不论是桌面应用还是移动应用,HTML5都是创新的主旋律。

  3.公安意义

  公安承担公安机关的工作职责:预防、制止和侦查违法犯罪活动;防范、打击恐怖活动;维护社会治安秩序,制止危害社会治安秩序的行为;管理交通、消防、危险物品;管理户口、居民身份证、国籍、出入境事务和外国人在中国境内居留、旅行的有关事务;维护国(边)境地区的治安秩序;警卫国家规定的特定人员、守卫重要场所和设施;管理集会、游行和示威活动;监督管理公共信息网络安全监察工作;指导和监督国家机关、社会团体、企业事业组织和重点建设工程的治安保卫工作,指导治安保卫委员会等群众性治安保卫组织的治安防范工作。所以此次软件设计意义重大。


毕业论文:http://www.3lunwen.com/jsj/6179.html

上一篇:浅析电影海报设计中构图的对称与平衡

下一篇:没有了

     移动版:探讨HTML5警务知识查询系统的设计

本文标签:
最新论文