本科毕业设计(论文) 本科毕业设计(论文)文献综述的写作指导 为了促使学生熟悉更多的专业文献资料, 进一步强化学生搜集文献资料的能 力,提高对文献资料的归纳、分析、综合运用能力及独立开展科研活动的能力, 现对本科学生的毕业设计(论文)中文献综述的写作提出一些指导,供教员和学 生参考. 一、文献综述的概念文献综述是针对某一研究领域或专题搜集大量文献资料的基础上, 就国内外 在该领域或专题的主要研究成果、最新进展、研究动态、前沿问题等进行综合分 析而写成的, 能比较全面地反映相关领域或专题历史背景、 前人工作、 争论焦点、 研究现状和发展前景等内容的综述性文章,是高度浓缩的文献产品.“综”是要 求对文献资料进行综合分析、归纳整理,使材料更精练明确、更有逻辑层次; “述”就是要求对综合整理后的文献进行比较专门的、全面的、深入的、系统的 评述. 文献综述根据其涉及的内容范围不同, 综述可分为综合性综述和专题性综述 两种类型.所谓综合性综述是以一个学科或专业为对象的,而专题性综述则是以 一个论题为对象的.本科毕业设计(论文)文献综述主要为专题性综述. 二、撰写文献综述的基本要求文献综述主要用以介绍与主题有关的详细资料、动态、进展、展望以及对以 上方面的评述.除综述题目外,其内容一般包含前言、主题、总结、参考文献四 个部分,撰写文献综述时可按这四部分拟写提纲,再根据提纲进行撰写工作. 前言部分, 前言部分,主要说明写作的目的,介绍有关的概念、定义以及综述的范围, 扼要说明有关主题的现状或争论焦点, 使读者对全文要叙述的问题有一个初步的 轮廓. 主题部分, 主题部分,是综述的主体,其写法多样,没有固定的格式.可按年代顺序综 述,也可按不同的问题进行综述,还可按不同的观点进行比较综述,不管用那一 种格式综述,都要将所搜集到的文献资料进行归纳、整理和分析比较,阐明有关 主题的历史背景、现状、发展方向以及对这些问题的评述.主题部分应特别注意 代表性强、具有科学性和创造性文献的引用和评述. 总结部分, 提出自己的见解并对进一步的发展方 总结部分,将全文主题进行扼要总结, 向做出预测. \x0c参考文献, 而且也 参考文献,它不仅表示对被引用文献作者的尊重及引用文献的依据, 为评审者审查提供查找线索.参考文献的编排应条目清楚,查找方便,内容准确 无误.参考文献的书写格式与毕业设计(论文)相同. 三、撰写文献综述的基本注意事项 1.在文献综述时,应系统地查阅与自己的研究方向直接相关的国内外文献. 搜集文献应尽量全,尽量选自学术期刊或学术会议.掌握全面、大量的文献资料 是写好综述的前提. 2.文献综述的题目不宜过大、范围不宜过宽,这样撰写时易于归纳整理. 3.在引用文献时,应注意选用代表性、可靠性和科学性较好的文献. 4.在文献综述中,应说明自己研究方向的发展历史、前人的主要研究成果、 存在的问题及发展趋势等.文献综述在逻辑上要合理,即做到由远而近先引用关 系较远的文献,最后才是关联最密切的文献.要围绕主题对文献的各种观点作比 较分析, 不要教科书式地将有关的理论和学派观点简要地汇总陈述一遍. 评述(特 别是批评前人不足时)要引用原作者的原文,防止对原作者论点的误解. 5.文献综述要条理清晰,文字通顺简练.采用的文献中的观点和内容应注 明来源,模型、图表、数据应注明出处. 6.文献综述中要有自己的观点和见解.鼓励学生多发现问题、多提出问题, 并指出分析、解决问题的可能途径. 7.毕业设计(论文)的文献综述主要是为自己进行毕业设计(论文)提供 文献方面的帮助和指导,所以,只要把自己所作题目的相关文献找准、找全,然 后对这些文献中的观点、方法、原理、材料等进行归纳和总结,形成文字就可以 了.总之,一篇好的文献综述,应有较完整的文献资料,有评论分析,并能准确 地反映主题内容. 附件:毕业设计(论文)文献综述格式模板 \x0c装甲兵学院机电系 毕业设计(论文) 文献综述 设计(论文)题目: 专 学 指 生 导 姓 教 业: 名: 员: 学号: 20XX 年 XX 月 XX 日 \x0c一、前言 (前言部分,主要是说明写作的目的,介绍有关的概念及定义以及综述 的范围,扼要说明有关主题的现状或争论焦点,使读者对全文要叙述的问题 有一个初步的轮廓.前言部分要写清: (1)首先要说明写作的目的. (2)有关概念的定义. (3)规定综述的范围、包括:“专题涉及的学科范围”,综述范围切忌过宽、 过杂,“时间范围”,必须声明引用文献起止的年份. (4)扼要说明有关问题的现况或争论焦点,引出所写综述的核心主题,这 是广大读者最关心而又感兴趣的,也是写作综述的主线. ) 二、主体部分 (主题部分,是综述的主体,其写法多样,没有固定的格式.可按年代 顺序综述,也可按不同的问题进行综述,还可按不同的观点进行比较综述, 不管用那一种格式综述,都要将所搜集到的文献资料归纳、整理及分析比较, 阐明有关主题的历史背景、现状和发展方向,以及对这些问题的评述,主题 ) 部分应特别注意代表性强、具有科学性和创造性的文献引用和评述. 三、总结 (总结部分,与研究性论文的小结有些类似,将全文主题进行扼要总结, 对所综述的主题有研究的作者,最好能提出自己的见解. ) \x0c四、参考文献 (参考文献虽然放在文末,但却是文献综述的重要组成部分.因为它不 仅表示对被引用文献作者的尊重及引用文献的依据,而且为读者深入探讨有 关问题提供了文献查找线索.因此,应认真对待.参考文献的编排应条目清 楚,查找方便,内容准确无误. ) \x0c工 学 学 士 学 位 论 文 开 题 报 告 书 论文题目 专业名称 指导教员 入学年月 毕业年月 开题时间 报 告 人 物流信息网 计算机科学与技术 鲁娜 2008 年 9 月 2012 年 卢松 装 甲 兵 学 院 二○○ 年 月 \x0c装甲兵学院学士学位论文开题报告论文撰写的目的意义:随着物流行业的兴起,信息资源被看作是获得未来物流竞争优势的关键因素之一, 所以物流信息网的广泛兴起,一方面降低物质消耗,另一方面提高了劳动生产率,本文 就是在这种背景下主要以 Jsp,SQL2000,WEB 服务器 Apache Tomcat 6.0,Myeclipse 开 发了一个物流管理系统,实现了用户注册、登陆、注销、信息修改,信息管理等功能, 给现代物流企业的管理带来了很大的帮助. 近五年国(国)内外的研究现状和发展趋势:伴随着互联网技术的日趋成熟,信息在物流中的作用日渐突出,进入信息物流的 时代.作为一个物流系统,它的高效率的运作,或者是成功运作,必须要开始依托整个 信息系统,因为良好的信息系统能提供极好的物流服务,赢得客户的信赖.通过有效客 户信息反馈系统(ECR)和准时制生产系统(JIT) ,大型物流公司可以完全按照客户的 需要生产产品,并从零售商店很快得到销售的反馈信息,不仅实现了内部的信息网络化, 而且增加了配送货物的跟踪信息,提高了物流企业的服务水平,降低了成本,增强了竞 争力.而网络技术也正在改造着企业的经营方式和传统的商业模式.网络优化了物流, 它支撑、优化、改造、提升企业的物流实体和物流流程,整合企业的物流资源、物流线 \x0c路,在提高物流效率的同时降低物流成本,增加利润,使物流成为新的经济增长点. 供应链管理使物流服务趋向集成化.物流的最新发展正在于它的集成化、高级化,这 种集成的高级物流的重点体现在新的经营理念、新的经营方式、新的物流技术和新的管 理手段上,它并不是对传统物流的完全否定,而是基于电子信息技术之上的物流业务集 成和产业结构的升级.这种物流新体系的建立和实现,能够准确、有效、灵活、科学地 满足客户的物流需求.例如,第三方物流支持客户的供应链管理.供应链管理是在满足 服务水平需要的同时,为了使得系统成本最小而采用的把供应商、制造商、仓库和商店 有效地结合成一体来生产商品,并把正确数量的商品在正确的时间配送到正确地点的一 套方法.作为一种战略概念,供应链也是一种产品,而且是可增值的产品,其目的不仅 是降低成本,更重要的是提供超过客户期望的增值服务,使物流达到最优化.而在物流 业发达的国家和地区,第四方物流的概念也已出现.它的应运而生是为了对第三方物流 提供商、技术服务提供商和业务流程管理者的能力进行平衡,通过一个集中的接触点, 提供全面的供应链解决方案. 在我国,经营观念落后制约传统物流向现代物流的转变.现代的物流服务理念是调配 和管理组织自身的及具有互补性的服务提供商的资源、能力与技术,来提供全面的供应 链解决方案.虽然我国不少企业开始建立物流业务网络,但他们大多数只提供运输、仓 储服务,或是物流服务中某一局部的服务,而不能提供有关咨询、计划及全过程的物流 服务.在国内物流同行的竞争中,还经常出现无视服务的重要性而进行恶性价格竞争局 面,导致服务的不到位.这些使我国物流服务水平离世界先进的物流服务理念还有很大 差距. 条块分割的物流体制阻碍物流业整体发展水平的提高.目前,国际贸易与物流业呈现 出全球化发展的趋势,美欧物流企业正在掀起并购热潮——德国邮政公司收购美国物流 运输企业 AEI; 美国联邦快递公司将欧洲 38 个城市的陆空物流联为一体等等.而我国 的物流行业管理仍沿用着计划经济时期的部门分割体制.与物流相关的各部分分别由铁 道、交通、民航、内贸等不同政府部门进行管理,形成了自上而下的纵向隶属和管理格 局,严重制约着在全社会范围内经济合理地对物流进行统筹和规划,妨碍着物流的社会 化进程,制约着电子商务的进一步推广. 物流是涉及信息、运输、存货、仓储、物料搬运和包装等多项服务的集成.对于物流 企业来说,它需要进行物流方案策划、咨询、设计,将现有的资源加以重组.目前,我 国物流业所需的资源正处于供给不足且分布不均衡的状态.由于我国物流业缺乏大型物 \x0c流企业对全国性的信息流、商流与资金流进行有效支持,因此在一段时间内我国物流业 将不可避免地出现对现有资源的争夺与竞争.另外,我国在物流方面的教育比较滞后, 造成了物流人才资源的缺乏;同时由于缺乏有效的从业认证制度,物流从业人员的素质 也无法得到普遍提高. 研究设计的初步结果和预期方案(至少列至三级提纲) : (1)系统的需求分析 ①系统需求分析 1. 通过该题目的实施,使学生掌握设计与实现“物流信息网管理系统”的 全过程,达到检验学生对专业理论知识理解与掌握的程度以及综合运用所学知 识,分析问题、解决问题的能力. . 2. 开发一个功能齐全、具有实用价值的“物流信息网管理系统” ②功能需求分析 1、实现在线在途物流单跟踪功能以及配送成功物流单历史记录查询功能 2、对指定城市可实现按路段查询配送情况 3、后台信息管理功能 ③性能需求分析 1.具有实用性,界面美观,操作简便,条理清晰 2.具有可维护性和扩展性 3.安全性:应用软件与数据库系统的设计要做到安全可靠,防止非法用户 的入侵. (2)总体设计 ①系统的处理流程:用户登陆---主界面---选择各项功能. 系统的处理流程:用户登陆---主界面---选择各项功能. ---主界面-前台页面任何人可以进入查看,但是部分管理系统根据权限不同可以拒 绝未登录或权限不够的人查看.任何人可以进行相关. 后台管理页面必须先登录才能进入,超级管理员享有管理(添加、修改、 \x0c删除)订单、管理(添加、修改、删除)存货、管理(回复、修改回复、删 除)采购、管理(添加、修改、删除)管理员的权限.对于删除的订单、存 货、管理员等不会立即从数据库中删除,将留在垃圾箱中等待第二次确认删 除或恢复.对订单可进行权限认定,每个订单都有权限要求,默认为 public, 即任何人可见,也可设置其他权限,并可对订单进行分类管理. ②系统层次模块物流管理系统 物流管理系统 业 务 管 理 子 系 统 订 单 管 理 理 管 理 理 货 管 管 理 存 购 货 管 询 采 配 输 查 询 运 储 查 仓 订 单 查 询 分 析 子 系 统 客 户 查 询 询 查 辆 车 ③数据库设计(初步) 数据库设计(初步) 本系统采用微软的 SQL Server 2000 sp4 数据库,包括用户表、试题表、 统计表、等表.按照要实现的功能将实现若干视图和存储过程. (3)详细设计 框架的建立,即数据库的建立. 模块的建立,即表单的建立. 菜单的制造. 代码编写. 模块测试. 总体测试. (4)系统的编码 本系统将采用 JSP 语言作为后台管理语言, DIV+CSS 作为前台布局方式. 争取实现现代软件的模块化方向,实现各模块之间的松耦合. (5)软件测试 本系统将通过两周左右时间进行相关测试工作,尽量减少 BUG,对测试中 出现的问题将积极解决,尽可能完美地完成毕业设计,为将来工作积累经验. \x0c目前已做的工作: 收集好资料并完成需求分析;查阅相关资料,对物流信息网的发展有了 相当的了解.开发工具都已准备好,基本架构也已完成. 需突破的难点及措施: 对物流的概念不够了解,数据库的构建有点困难. 措施:多收集有关物流的资料,了解这方面的相关数据,方便构建数据 库 所需条件: 相关的开发工具及开发环境,物流方面的相关资料. \x0c论文撰写各阶段任务及完成时间: 导师意见: 指导教员(签字) :教研室意见: 教研室领导(签字) :开题导师组意见: \x0c开题导师组组长(签字) : \x0c附:应该如何撰写文献综述 一、什么是文献综述 1、文献综述的概念 文献综述是对某一学科、专业或专题的大量文献进行整理筛选、分析研究和 综合提炼而成的一种学术论文, 是高度浓缩的文献产品.根据其涉及的内容范 围不同,综述可分为综合性综述和专题性综述两种类型.所谓综合性综述是以一 个学科或专业为对象,而专题性综述则是以一个论题为对象的. 文献综述反映当前某一领域中某分支学科或重要专题的历史现状、最新进 展、学术见解和建议,它往往能反映出有关问题的新动态、新趋势、新水平、新 原理和新技术等等. 文献综述是针对某一研究领域分析和描述前人已经做了哪些 工作,进展到何程度,要求对国内外相关研究的动态、前沿性问题做出较详细的 综述,并提供参考文献.作者一般不在其中发表个人见解和建议,也不做任何评 论,只是客观概括地反映事实. 2、文献综述的作用 文献综述在于高度浓缩了几十篇甚至上百篇散乱无序的同类文献之成果与 存在问题或争论焦点, 对其进行了归纳整理, 使之达到了条理化和系统化的程度. 它不仅为科研工作者完成科研工作的前期劳动节省了用于查阅分折文献的大量 宝贵时间,而且还非常有助于科研人员借鉴他人成果、把握主攻方向以及领导者 进行科学决策. 3、要求同学们学写综述的意义 1) 通过搜集文献资料过程,可进一步熟悉文献的查找方法和资料的积累 方法,在查找的过程中同时也扩大了知识面; 2) 查找文献资料、写文献综述是科研选题的第一步,因此学习文献综述 的撰写也是为今后科研活动打基础的过程; 3) 通过综述的写作过程,能提高归纳、分析、综合能力,有利于独立工 作能力和科研能力的提高. 二、文献综述的选题与文献资料的搜集 (一)选题原则 1.结合所学知识选自己专长的或有基础的题目,否则难以写出水平较高的 综述. 2.根据所占有文献资料的质和量选题. 3.选题一定要能反映出新的学科矛盾的焦点、新成果、新动向. 4.题目不宜过大、范围不宜过宽.这样查阅文献的数量相对较小,撰写时 易于归纳整理,否则,题目选得过大,查阅文献花费的时间太多,影响实习,而 且归纳整理困难,最后写出的综述大题小作或是文不对题. (二)文献资料的搜集 1、文献资料的搜集途径 \x0c(1)利用有关的检索工具(包括目录、文摘和索引等)搜集文献资料. (2)利用国际联机检索系统搜集文献资料. (3)利用原始文献(包括专业期刊、科技报告、专利文献、学位论文、会 议文献、专著和标准等)搜集文献资料. (4)利用三次文献(包括综述、述评、百科全书、年鉴和手册等)搜集文 献资料. (5)通过 Interent 网和光盘数据库搜集文献资料. 2、文献资料的搜集方法 将文献资料储存在大脑中或其他载体上形成不时取用的“资料库”的过程称 作文献资料搜集法.它包括阅读法、剪报法、笔记法和现代化技术存贮法(如复 印、电脑存贮、光盘存贮等) . 三、格式与写法 文献综述的格式与一般研究性论文的格式有所不同. 这是因为研究性的论文 注重研究的方法和结果,而文献综述要求向读者介绍与主题有关的详细资料、动 态、进展、展望以及对以上方面的评述.因此文献综述的格式相对多样,但总的 来说,一般都包含以下部分具体格式:前言、主题部分、总结部分及参考文献. 撰写文献综述时可按这四部分拟写提纲,再根据提纲进行撰写工. (一) 前言部分 前言部分, 主要是说明写作的目的, 介绍有关的概念及定义以及综述的范围, 扼要说明有关主题的现状或争论焦点, 使读者对全文要叙述的问题有一个初步的 轮廓.前言部分要写清: (1)首先要说明写作的目的. (2)有关概念的定义. (3)规定综述的范围、包括:“专题涉及的学科范围”,综述范围切忌过宽、 过杂,“时间范围”,必须声明引用文献起止的年份. (4)扼要说明有关问题的现况或争论焦点,引出所写综述的核心主题,这是 广大读者最关心而又感兴趣的,也是写作综述的主线. (二) 主题部分 主题部分,是综述的主体,其写法多样,没有固定的格式.可按年代顺序综 述,也可按不同的问题进行综述,还可按不同的观点进行比较综述,不管用那一 种格式综述,都要将所搜集到的文献资料归纳、整理及分析比较,阐明有关主题 的历史背景、现状和发展方向,以及对这些问题的评述,主题部分应特别注意代 表性强、具有科学性和创造性的文献引用和评述. (三) 总结部分 总结部分,与研究性论文的小结有些类似,将全文主题进行扼要总结,对所 综述的主题有研究的作者,最好能提出自己的见解. (四) 参考文献 参考文献虽然放在文末,但却是文献综述的重要组成部分.因为它不仅表示 \x0c对被引用文献作者的尊重及引用文献的依据, 而且为读者深入探讨有关问题提供 了文献查找线索.因此,应认真对待.参考文献的编排应条目清楚,查找方便, 内容准确无误. 四、注意事项 由于文献综述的特点,致使它的写作既不同于“读书笔记”“读书报告”,也不 同于一般的科研论文.因此,在撰写文献综述时应注意以下问题: 1. 搜集文献应尽量全.掌握全面、大量的文献资料是写好综述的前提,否 则,随便搜集一点资料就动手撰写是不可能写出好多综述的,甚至写出的文章根 本不成为综述. 2. 注意引用文献的代表性、可靠性和科学性.在搜集到的文献中可能出现 观点雷同,有的文献在可靠性及科学性方面存在着差异,因此在引用文献时应注 意选用代表性、可靠性和科学性较好的文献. 3. 要围绕主题对文献的各种观点作比较分析,不要教科书式地将有关的理 论和学派观点简要地汇总陈述一遍. 4. 文献综述在逻辑上要合理,即做到由远而近先引用关系较远的文献,最 后才是关联最密切的文献. 5. 评述(特别是批评前人不足时)要引用原作者的原文(防止对原作者论点的 误解),不要贬低别人抬高自己,不能从二手材料来判定原作者的“错误”. 6. 文献综述结果要说清前人工作的不足,衬托出作进一步研究的必要性和 理论价值. 7. 采用了文献中的观点和内容应注明来源,模型、图表、数据应注明出处, 不要含糊不清. 8. 文献综述最后要有简要总结,表明前人为该领域研究打下的工作基础. 9. 所有提到的参考文献都应和所研究问题直接相关. 10. 文献综述所用的文献,应主要选自学术期刊或学术会议 11. 所引用的文献应是亲自读过的原著全文,不可只根据摘要即加以引用, 更不能引用由文献引用的内容而并末见到被引用的原文, 因为这往往是造成误解 或曲解原意的重要原因,有时可给综述的科学价值造成不可弥补的损失. 总之,一篇好的文献综述,应有较完整的文献资料,有评论分析,并能准确 地反映主题内容.
软件测试基础一、软件测试概述软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。 软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确(Doing the right things right at the right time.)。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。四、质量也代表着它符合客户的需要(Quality also means “meet customer needs”.)。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。测试人员在软件开发过程中的任务:1、寻找Bug;2、避免软件开发过程中的缺陷;3、衡量软件的品质;4、关注用户的需求。总的目标是:确保软件的质量。二、常用的软件测试方法1. 黑盒测试黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。黑盒测试的优点有:1)比较简单,不需要了解程序内部的代码及实现;2)与软件的内部实现无关;3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;5)在做软件自动化测试时较为方便。黑盒测试的缺点有:1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;2)自动化测试的复用性较低。2. 白盒测试白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。如下例程序代码:HRESULT Play( char* pszFileName ){if ( NULL == pszFileName ) return;if ( STATE_OPENED == currentState ){PlayTheFile();}return;}读了代码之后可以知道,先要检查一个字符串是否为空,然后再根据播放器当前的状态来执行相应的动作。可以这样设计一些测试用例:比如字符串(文件)为空的话会出现什么情况;如果此时播放器的状态是文件刚打开,会是什么情况;如果文件已经在播放,再调用这个函数会是什么情况。也就是说,根据播放器内部状态的不同,可以设计很多不同的测试用例。这些是在纯粹做黑盒测试时不一定能做到的事情。白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。白盒测试的缺点有:1)程序运行会有很多不同的路径,不可能测试所有的运行路径;2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可 能会漏掉一些功能需求;3)系统庞大时,测试开销会非常大。3. 基于风险的测试基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。有如下一个图,横轴代表影响,竖轴代表概率,根据一个软件的特点来确定:如果一个功能出了问题,它对整个产品的影响有多大,这个功能出问题的概率有多大?如果出问题的概率很大,出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那么如果时间比较紧的话,就可以考虑不测试。 基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,出问题的概率有多大。其它一些影响因素还有复杂性、可用性、依赖性、可修改性等。测试人员主要根据事情的轻重缓急来决定测试工作的重点。4. 基于模型的测试模型实际上就是用语言把一个系统的行为描述出来,定义出它可能的各种状态,以及它们之间的转换关系,即状态转换图。模型是系统的抽象。基于模型的测试是利用模型来生成相应的测试用例,然后根据实际结果和原先预想的结果的差异来测试系统,过程如下图所示。三、软件测试的类型常见的软件测试类型有:BVT (Build Verification Test)BVT是在所有开发工程师都已经检入自己的代码,项目组编译生成当天的版本之后进行,主要目的是验证最新生成的软件版本在功能上是否完整,主要的软件特性是否正确。如无大的问题,就可以进行相应的功能测试。BVT优点是时间短,验证了软件的基本功能。缺点是该种测试的覆盖率很低。因为运行时间短,不可能把所有的情况都测试到。Scenario Tests(基于用户实际应用场景的测试)在做BVT、功能测试的时候,可能测试主要集中在某个模块,或比较分离的功能上。当用户来使用这个应用程序的时候,各个模块是作为一个整体来使用的,那么在做测试的时候,就需要模仿用户这样一个真实的使用环境,即用户会有哪些用法,会用这个应用程序做哪些事情,操作会是一个怎样的流程。加了这些测试用例后,再与BVT、功能测试配合,就能使软件整体都能符合用户使用的要求。Scenario Tests优点是关注了用户的需求,缺点是有时候难以真正模仿用户真实的使用情况。Smoke Test在测试中发现问题,找到了一个Bug,然后开发人员会来修复这个Bug。这时想知道这次修复是否真的解决了程序的Bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为Smoke Test。在很多情况下,做Smoke Test是开发人员在试图解决一个问题的时候,造成了其它功能模块一系列的连锁反应,原因可能是只集中考虑了一开始的那个问题,而忽略其它的问题,这就可能引起了新的Bug。Smoke Test优点是节省测试时间,防止build失败。缺点是覆盖率还是比较低。 此外,Application Compatibility Test(兼容性测试),主要目的是为了兼容第三方软件,确保第三方软件能正常运行,用户不受影响。Accessibility Test(软件适用性测试),是确保软件对于某些有残疾的人士也能正常的使用,但优先级比较低。其它的测试还有Functional Test(功能测试)、Security Test(安全性测试)、Stress Test(压力测试)、Performance Test(性能测试)、Regression Test(回归测试)、Setup/Upgrade Test(安装升级测试)等。四、微软的软件测试工作1. 基本情况测试在微软公司是一项非常重要的工作,微软公司在此方面的投入是非常巨大的。微软对测试的重视表现在工程开发队伍的人员构成上,微软的项目经理、软件开发人员和测试人员的比例基本是1:3:3或1:4:4,可以看出开发人员与测试人员的比例是1:1。对于测试的重视还表现在最后产品要发布的时候,此产品的所有相关部门都必须签字,而测试人员则具有绝对的否决权。 测试人员中分成两种职位,Software Development Engineer in Test(测试组的软件开发工程师)实际上还是属于开发人员,他们具备编写代码的能力和开发工具软件的经验,侧重于开发自动化测试工具和测试脚本,实现测试的自动化。Software Test Engineer(软件测试工程师)具体负责测试软件产品,主要完成一些手工测试以及安装配置测试。2. 测试计划测试计划是测试人员管理测试项目,在软件中寻找Bug的一种有效的工具。测试计划主要有两个作用,一是评判团队的测试覆盖率以及效率,让测试工作很有条理的逐步展开。二是有利于与项目经理、开发人员进行沟通。有了测试计划之后,他们就能够知道你是如何开展测试工作的,他们也会从中提出很多有益的意见,确保测试工作顺利进行。总之,有了测试计划可以更好的完成测试工作,确保用户的满意度。测试人员在编写测试计划之前,应获得以下文档:1)程序经理编写的产品功能说明书或产品开发计划;2)程序经理或开发人员提供的开发进度表。 根据产品的特性及开发进度安排,测试人员制定具体的测试计划。测试计划通常包括以下内容:1)测试目标和发布条件:a. 给出清晰的测试目标描述;b. 定义产品的发布条件,即在达到何种测试目标的前提下才可以发布产品的某个特 定版本。2)待测产品范围:a. 软件主要特性/功能说明,即待测软件主要特性的列表;b. 特性/功能测试一览,应涵盖所有特性、对话框、菜单和错误信息等待测内容,并列举每个测试范围内要重点考虑的关键功能。3)测试方法描述:a. 定义测试软件产品时使用的测试方法;b. 描述每一种特定的测试方法可以覆盖哪些测试范围。4)测试进度表:a. 定义测试里程碑;b. 定义当前里程碑的详细测试进度。5)测试资源和相关的程序经理/开发工程师:a. 定义参与测试的人员;b. 描述每位测试人员的职责范围;c. 给出与测试有关的程序经理/开发工程师的相关信息。6)配置范围和测试工具:a. 给出测试时使用的所有计算机平台列表;b. 描述测试覆盖了哪些硬件设备;c. 测试时使用的主要测试工具。此外,还应列出测试中可能会面临的风险及测试的依赖性,即测试是否依赖于某个产品或某个团队。比如此项测试依赖性WindowsCE这个操作系统,而这个系统要明年2月份才能做好,那么此项测试就可能只有在明年5月份才能完成,这样就存在着依赖关系。如果那个团队的开发计划往后推,则此项测试也会被推迟。3. 测试用例开发一个好的测试用例就是有一个合理的概率来找到Bug,不要冗余,要有针对性,一个测试只针对一件事情。特别是功能测试的时候,如果一个测试是测了两项功能,那么如果测试结果失败的话,就不知道到底是哪项功能出了问题。 测试用例开发中主要使用的技术有等价类划分,边界值的分析,Error Guessing Testing。 等价类划分是根据输入输出条件,以及自身的一些特性分成两个或更多个子集,来减少所需要测试的用例个数,并且能用很少的测试用例来覆盖很多的情况,减少测试用例的冗余度。在等价类划分中,最基本的划分是一个为合法的类,一个为不合法的类。 边界值的分析是利用了一个规律,即程序最容易发生错误的地方就是在边界值的附近,它取决于变量的类型,以及变量的取值范围。一般对于有n个变量时,会有6n+1个测试用例,取值分别是min-1, min, min+1, normal, max-1, max,max+1的组合。边界值的分析的缺点,是对逻辑变量和布尔型变量不起作用,还有可能会忽略掉某些输入的组合。 Error Guessing Testing完全靠的是经验,所设计的测试用例就是常说的猜测。感觉到软件在某个地方可能出错,就去设计相应的测试用例,这主要是靠实际工作中所积累的经验和知识。其优点是速度快,只要想得到,就能很快设计出测试用例。缺点就是没有系统性,无法知道覆盖率会有多少,很可能会遗漏一些测试领域。 实际上在微软是采用一些专门的软件或工具负责测试用例的管理,有一些测试信息可以被记录下来,比如测试用例的简单描述,在哪些平台执行,是手工测试还是自动测试,运行的频率是每天运行一次,还是每周运行一次。此外还有清晰的测试通过或失败的标准,以及详细记录测试的每个步骤。4. Bug跟踪过程在软件开发项目中,测试人员的一项最重要使命就是对所有已知Bug进行有效的跟踪和管理,保证产品中出现的所有问题都可以得到有效的解决。一般地,项目组发现、定位、处理和最终解决一个Bug的过程包括Bug报告、Bug评估和分配、Bug处理、Bug关闭等四个阶段: 1)测试工程师在测试过程中发现新的Bug后,应向项目组报告该Bug的位置、表现、当前状态等信息。项目组在Bug数据库中添加该Bug的记录。 2)开发经理对已发现的Bug进行集中讨论,根据Bug对软件产品的影响来评估Bug的优先级,制定Bug的修正策略。按照Bug的优先级顺序和开发人员的工作安排,开发经理将所有需要立即处理的Bug分配给相应的开发工程师。 3)开发工程师根据安排对特定的Bug进行处理,找出代码中的错误原因,修改代码,重新生成产品版本。 4)开发工程师处理了Bug之后,测试人员需要对处理后的结果进行验证,经过验证确认已正确处理的Bug被标记为关闭(Close)状态。测试工程师既需要验证Bug是否已经被修正,也需要确定开发人员有没有在修改代码的同时引入新的Bug。5. Bug的不同处理方式在某些情况下,Bug已处理并不意味着Bug已经被修正。开发工程师可以推迟Bug的修正时间,也可以在分析之后告知测试工程师这实际上不是一个真正的Bug。也就是说,某特定的Bug经开发工程师处理之后,该Bug可能包括以下几种状态。已修正:开发工程师已经修正了相应的程序代码,该Bug不会出现了。可推迟:该Bug的重要程度较低,不会影响当前应提交版本的主要功能,可安排在 下一版本中再行处理。设计问题:该Bug与程序实现无关,其所表现出来的行为完全符合设计要求,对此应提交给程序经理处理。无需修正:该Bug的重要程度非常低,根本不会影响程序的功能,项目组没有必要在这些Bug上浪费时间。五、成为优秀测试工程师的要求要成为一名优秀的测试工程师,首先对计算机的基本知识要有很好的了解,精通一门或多门的编程语言,具备一定的程序调试技能,掌握测试工具的开发和使用技术。同时要比较细心,会按照任务的轻重缓急来安排自己的工作,要有很好的沟通能力。此外,还要善于用非常规的方式思考问题,尽可能多的参加软件测试项目,在实践中学习技能,积累经验,不断分析和总结软件开发过程中可能出错的环节。这样,一名优秀的测试工程师就从软件测试的实践中脱颖而出了。 结束语:微软的软件开发经验积淀深厚,微软工程师们的授课生动溢彩,其中有些内容是结合编程代码所作的详细讲解,较难用介绍性文字加以概括提炼,加之笔者受能力和精力所限,只能撷取部分精华内容整理成文以飨读者,因此难免是挂一漏万,甚至会有失误之处,敬请对本系列文章的关注者谅解及指正。最后对微软老师们的辛勤付出再表由衷谢意!
你们都是哪班的?李才子我记下了 晚上上课再找你们算账 都不想过了是不是?
359 浏览 6 回答
300 浏览 2 回答
345 浏览 2 回答
195 浏览 3 回答
231 浏览 5 回答
330 浏览 2 回答
145 浏览 2 回答
243 浏览 2 回答
319 浏览 5 回答
293 浏览 2 回答
118 浏览 5 回答
292 浏览 3 回答
285 浏览 5 回答
178 浏览 3 回答
195 浏览 2 回答