论软件质量保证的方法和策略(精选多篇)

时间:2019-05-14 01:05:16下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《论软件质量保证的方法和策略》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《论软件质量保证的方法和策略》。

第一篇:论软件质量保证的方法和策略

论软件质量保证的方法和策略

【摘要】

本文讨论某省环保厅重点污染源在线监测系统的质量保证方法和策略。该系统的目标是全天候在线监控重点污染源企业污染物排放情况及污染处理设施运行情况,包括污染源自动监控及污染源报警,主要实现污染源远程监测、现场数据采集、自动判断是否超标、超标报警等功能,满足全省环境监察人员对重点污染源企业监测数据的查询分析、报表打印、远程自动采样等需求。污染源在线监测系统对质量要求较高,系统自交付运行以来,用户反馈表明质量特征上很好的满足了在线监测的需求。在软件开发的过程中我们采取了全过程的质量管理,围绕软件的6个质量特征因子,形成了软件开发团队的约束文件,针对不同角色制定了不同的质量主题,做到了软件质量的可控性。在该项目中我担任了项目经理,参与了系统的分析与设计工作。

【正文】

近年来,随着社会经济的发展,环境污染负荷逐渐增加,环境问题已经成为关系到国家和民族生存的重大问题。为有效加强污染源监管,提高环境监察执法信息化应用能力工作迫在眉睫。2008年3月份某省环保厅委托我所在的公司承担污染源在线监测系统的开发。本系统主要实现对企业排污、污染治理设备及监测、监控设备进行实时监测。当发生排污超标、治理设施停运等异常事件时,现场适配器自动识别事件类型,报送环境监察部门,并告知事件内容。该项目整个项目历时7个月,在2008年10月份交付使用。系统使用一年多来该省环保厅环境监测和执法能力有了很大提高,得到了用户的一致好评。

一、需求分析阶段,通过结对分析与需求评审保证需求分析的质量

需求分析的质量是否优良,决定着后继各工作环节能否按既定方向进行。由于客户环境监察工作较为繁忙,计算机应用水平不高等因素,与中层管理人员、基层操作人员的交流有很大困难,参与项目的时间与精力得不到保障,因此,我们制订了结对分析的策略,以提高需求分析的效率与质量。

结对是敏捷软件开发一个最佳编程实践,我们创造性地将其引入到需求分析阶段。需求分析各个环节(包括需求获取、分析,与用户沟通)均由两个开发人员来共同完成,能取得较高的需求分析质量。例如,这一策略在企业信息管理这一关键环节的需求分析上发挥了重要作用。企业信息管理人员年纪较长,对计算机概念模糊,沟通上存在很大障碍,通过两个需求分析人员共同来完成该项工作,做到了分析人员的优势互补。通过结对分析不仅得到较高的需求分析质量,并且节省了用户的时间,对用户也有一定的推动。只有两个分析人员达成一致,才将相应需求嵌入基线库中,保证了需求的科学性。这样做虽然增加了人力成本,但提高了需求分析效率。

强化需求评审。需求评审分为三个层次:①全局评审。参与人员主要是用户方核心管理层、业务领域专家、分析人员。主要任务是评审需求与公司目标、高层想法是否一致。这一评审至关重要,它把握了软件系统实施方向的正确性。②局部评审。参与人员主要是用户方业务中层及一线操作人员、业务领域开发工程师。主要任务是就业务层相关业务流程进行再次确认。因为需求过程中相应部门的业务人员站在自己的角度看待问题,对于整个流程关心不够,需要纠正各部门用户需求不一致的问题。③内部评审。全体开发人员、分析人员参与。分析人员建立初步的UML用例图,工作流程图,活动图等供全体讨论。任务是澄清一部分模糊的需求。

在需求阶段,还采取了其它措施来保证需求分析的质量,如强调需求分析工具的使用等。

二、系统设计、编码阶段,强调纪律与规范

设计与编程质量对于软件产品的质量有着直接的作用。在这一阶段,我们的主要采取的措施是强调纪律与规范,制订相应的约束规范文件,要求设计有可追溯性,强调设计、开发过程标准化。另一主要措施选择适合的工具。我们选择的开发平台为,NET,开发工具为Visual Sutdio 2005,后台数据库为SQL Server 2005,使用数据库智能感知小工具SQL Prompt,代码生成工具CodeSmith生成代码,NDoc来生成设计文档,使用微软企业库。企业库是微软针对共性内容发布的经过实践检验的高质量产品。

我们制订了NET编码规范,目的是保证不同开发人员的代码风格基本一致,降低开发人员流动可能导致的项目风险;强调代码的可理解性与“设计先行与强化注释”;制订了SQL书写规范。这一系列规范标准的制订从源头上保证了软件设计的质量。

编码人员分成两类角色:业务领域工程师和核心代码工程师。业务领域工程师针对具体的业务功能进行编码。在设计时我们要求业务领域工程师要有这样的意识:变更不可避免,在设计时尽可能考虑到将来变更的可能性,尽可能做到模块之间的松耦合,模块内部的高内聚。核心代码工程师完成公共代码的实现与维护。核心代码质量在系统中至关重要。对核心代码工程师加以分组,每组两位工程师实行结对编程。以克服思维局限,共同完成设计、UML图、实现,保证代码质量。实践证明,采取这些办法后,在用户提出相应功能变更时,软件修改相对较轻松,能较好地适应业务变化。

三、强调软件实现与测试同步,强化缺陷管理

测试是保证软件质量较为重要的一个环节。针对开发团队部分成员测试意识不强,项目

组有针对性地进行培训;强调测试与设计同步,测试用例与功能代码的编制同步;及时进行单元测试,统一用VS2005 for Tester作为测试工具;缺陷管理统一存放在服务器中,严格控制缺陷的开启与关闭,并把缺陷数据作为工程师考核依据之一,指派兼职文员进行缺陷管理。

所有测试中出现的问题,经整理后在项目团队例会上进行总结;在团队内部交流并在平台WSS中建立一个专门的警示网站,发布已经暴露的缺陷解决方案,让项目团队共享,避免问题重复出现;构建项目团队自有知识库,作为公司设计重用的一个重要资源。

除了高度重视实现阶段的测试,同时也积极主动地去发现质量问题。团队使用VS2005自带工具进行性能优化分析,找出使用频度高与关键代码进行性能优化。利用VS2005压力测试工具,找出性能瓶颈,制订相应策略进行优化。

系统自交付以来,用户反馈系统运行稳定。实践证明,我们的一系列质量保证策略与实践取得了很大成功。只有在需求分析、设计、开发等各个环节实施质量保证措施,才能保证软件产品的质量。软件项目要做到“有法可依,执法必严”,并要高度重视各个环节辅助工具的使用,这样才能较好地保证最终软件产品的质量。

第二篇:浅谈软件质量保证

浅谈软件质量保证

摘要:

Software Quality Assurance软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用

前言:

SQA的由来:随着第一个正式的质量保证和控制方案在1916年贝尔实验室的出现,整个制造业都认可了这一方案,时至今日每个公司都有其保证其产品质量的机制,公司对质量的保证也渐渐成为其核心的市场策略。对于软件开发来说,一个项目的主要内容是:成本、进度、质量。软件本身作为一种无形产品,其质量指的是:“系统,部件或者过程满足顾客或者用户需要或期望的程度”。在20世纪五六十年代,质量保证曾经只由程序员承担。而正规的软件质量保证标准首先在20世纪70年代初军方的软件合同中出现,此后迅速传遍整个商业世界。提出而随着市场化发展的成型,任何软件公司对自己产品的质量问题越来越关注,测试所花费的成本越来越多。在起初国外很多的大软件公司公司比如IBM、CA等,SQA的职责就是测试(主要是系统测试)。后来,由于缺乏有效的项目计划和项目管理,留给系统测试的时间很少。另外由于软件最终使用者的不专业性,需求变化太快,没有完整的需求文档,测试人员就只能根据自己的想象来测试。这样一来,测试就很难保障产品的质量,促进了事先预防的SQA职能的产生。随后随着软件开发模型的不断演化和发展CMM模型的出现,它引入了“全面质量管理”的思想,至此许多公司将SQA人员独立于项目组,以保证评价的客观性。专业的SQA人员应运而生。

简介:

软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。其根本目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。

SQA的基本目标:

1: 软件质量保证工作是有计划进行的。

2: 客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。3: 将软件质量保证工作及结果通知给相关组别和个人。

4: 高级管理层接触到在项目内部不能解决的不符合类问题。

具体分析:

1:软件质量所包含的因素及软件质量评价标准:

软件质量包含的因素:正确性,可靠性,效率,完整性,可用性可维护

性,灵活性,可测试性,可移植性,可复用性,互操作性等等。

软件质量评价标准:质量需求准则,着眼点是是否满足用户的要求;质量设计准则,开发者在设计实现时是否按软件需求保证了质量。质量度量准则,为质量度量规定了一些检查项目。

从事专业SQA的人员所应具备的基本素质,工作中的基本职能及与其他相似职能的区别:

SQA人员所应具备的基本素质:

按照软件界已经达成的共识:影响软件项目进度、成本、质量的因素主要是 “人、过程、技术”。首先要明确的是这三个因素中,人是第一位的。SQA小组的成员首先应当时刻以客户的观点看待软件。从事SQA工作由于要按照相应的标准对专业的行为加以监管,深刻了解企业的工程,并具有一定的过程管理理论知识 对开发工作的基本情况了解,能够理解项目的活动,因此首先应具备较高的关于软件开发方面的知识;在工作中过程为中心:应当站在过程的角度来考虑问题,只要保证了过程,QA就尽到了责任;还应具有服务精神即为项目组服务,帮助项目组确保正确执行过程;另外应善于沟通,能够营造良好的气氛,避免其工作本身成为一种找茬活动。我所在的小组在课程实践过程中就出现过负责设计的同学对编码阶段的同学出现质疑,最终出现不愉快的事情。

工作中的基本职能以及于其他相似职能的区别:

要做好SQA工作首先应该明确SQA人员的职能以及与QC、SEPG的区别。QC:检验产品的质量,保证产品符合客户的需求;是产品质量检查者; SEPG:制定过程,实施过程改进;

而SQA人员的主要工作为审计过程的质量,是过程质量审计者,其基本职能为确保过程被正确执行。其本身并不参与过程的制定,A的职责就是确保过程的有效执行,监督项目按照过程进行项目活动;它不负责监管产品的质量,不负责向管理层提供项目的情况,不负责代表管理层进行管理,只是代表管理层来保证过程的执行。

3:SQA活动:

软件质量保证由各种任务构成,这些任务分别与两种不同的参与者有关:做设计工作的软件工程师和SQA小组成员。

软件工程师通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来考虑质量问题(并完成软件质量保证和质量控制活动)

SQA小组成员的职责为辅助软件工程小组得到高质量的最终产品。其主要工作如下:

为项目准备SQA计划。该计划在制定项目计划实制定,由所以感兴趣的相关部门评审。该计划将控制由项目组和SQA小组执行的质量保证活动。在计划中应标识一下几点:需要进行的评价;需要进行的审计和评审;项目可用的标准;错误报告和跟踪的规程;由SQA小组产生的文档;为软件项目提供的反馈数量。另外还需明确最终审计的结果报告给谁。

参与开发该项目的软件过程描述。软件工程小组为要进行的工作选择一个过程。SQA将评审过程描述以保证该过程与组织政策,内部软件标准,外界所订标准(如ISO9001)以及软件项目计划的其他部分相符。

评审各项软件工程活动,对其是否符合定义好的软件过程进行核实。SQA小组识别记录和跟踪与过量的偏差,并对是否已经改正进行核实。

审计指定的软件工作产品,对其是否符合定义好的软件过程中的相应部分进行核实。SQA小组对选出的产品进行评审;识别,记录和跟踪出现的偏差;对是否已经改正进行核实;定期将工作结果向项目管理者报告。在审计过程中。注意审计一定要有项目组人员陪同,双方要开诚布公,坦诚相对。审计的内容主要包括:是否按照过程要求执行了相应活动,是否按照过程要求产生了相应产品。

确保软件工作及工作产品中的偏差已被记录在案并根据预定规程进行处理。偏差可能出现在项目计划,过程描述,采用的标准或技术工作产品中。

记录所有不符合的部分并报告给高级管理者。对不符合的部分进行跟踪直至问题得到解决。

4:软件评审:软件评审是软件工程过程中的过滤器。评审被用于软件开发过程的多个不同的点上,起到发现错误和缺陷节日引发排错活动的作用。软件评审起到的作用是净化分析,设计和编码的软件工程活动。在课程实践过程中由于初始需求分析的不明确以及后来概要设计过程中关键点的遗漏所引发的错误曾经导致我们小组代码的两次大部分返工,现在看来在课程实践过程中没有进行软件评审所致

5:正式技术评审(FTR)

正式技术评审是一种由软件工程师和其他人进行的软件质量保障活动。

正式技术评审的目标是:发现功能、逻辑或实现的错误;证实经过评审的软件的确满足需求;保证软件的表示符合预定义的标准;得到一种一致的方式开发的软件;使项目更易管理。

评审会议一般由3-5人参加,不超过2小时,由评审主席、评审者和生产者参加,必须做出下列决定中的一个:工作产品可不可以不经修改而被接受;由于严重错误而否决工作产品;暂时接受工作产品。

评审总结报告和记录保存:评审会议结束时,生成一份评审问题列表,完成一份包括“评审什么?由谁评审?结论是什么?”的评审总结报告。

评审总结报告是项目历史记录的一部分,标识产品中存在问题的区域,作为行政条目检查表以指导生产者进行改正。

评审指导原则:评审产品,而不是评审生产者。注意客气地指出错误,气氛轻松;制定日程并且遵守日程;不要离题,限制争论和辩驳。有异议的问题不要争论但要记录在案;对各个问题都发表见解。问题解决应该放到评审会议之后进行;做书面笔记;限制参与者的人数并坚持事先做准备;为每个要评审的工作产品建立一个检查表。应为分析、设计、编码、测试文档都建立检查表。;为了让评审有效,为FTR分配资源和时间;为了提高效益对所有评审进行有意义的培训;评审以前所做的评审。

6结合课程实践浅谈自己的感受

下面我将结合课程的实践讲一讲个人对于软件质量保证的一些感受,首先说一说每个人所扮演的角色,负责编码的同学相当于软件工程师的角色,而负责需求分析及概要设计的同学责同时兼任了SQA小组成员的角色。在具体实现过程中,在需求分析阶段,通过需求调研我们小组大体明确了客户即TA对机动车违章管理系统的需求,但由于没有把需求调研的工作做到位,在完成需求分析的过程中,我们小组出现了一些问题,主要是对TA要求的理解出现了分歧。此时承担SQA小组责任的同学并没有严格要求自己进一步与TA沟通,解决理解上的分歧,而是个人主观的认为自己的理解就是对的。致使在具体实现时与初始需求出现了一些偏差。这个问题的发生,主要是因为承担需求分析的同学同时兼任SQA小组工作的原因,致使监督的客观性方面出现了问题。在概要设计阶段由于考虑到后期一些功能在后期具体实现中的困难,没有严格按照获取的需求进行设计,主要是出于实现难度的考虑草率的对本已获得的需求进行了一些修改致使本就出现变差的需求进一步打了折扣。在编码阶段针对出现问题时,更是仅仅是就问题而谈问题,把原始的计划放到了一边。回顾整个课程的过程:从在初始人员定位时并没有认识到SQA小组的重要性,因此并没有严格指定专人负责,只是在出现问题时才想到,而在明确两人兼任SQA小组工作后,也没有严格制定明确的计划,也没有正式的评审各项软件工程活动,仅仅是想到什么就说什么,不但造成了小组成员间的冲突,更是对问题的解决没有多大的帮助。而“软件工程师”即从事编码的同学虽然对软件本身进行了一些测试,修正了一些错误,改进了一些BUG,但这一切都是通过想当然去做的,并没有参考设计文档。结论:

无论何种软件只有在保证其质量的前提下才能体现出它的价值。软件质量保证则是保证软件质量的基石。而在软件质量保证的过程中,首先应该明确自己的定位,而后严格按照上面提出的步骤与方法去实现才能更好的完成SQA工作。这一切,都需要我们在今后的学习、工作中积极地去实践。

参考文献:

软件工程实践者的研究方法 Roger S.Pressman

软件质量保证 Schulmeyer,G.G

第三篇:软件质量保证管理

1、V模型:V模型是在RAD模型的基础上演变而来的,由于开发过程构造成一个V字形而得名。V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。V模型具有面向客户、效率高、质量防范意识等特点。

左边是设计和分析,是软件设计实现的过程,同时伴随着质量保证活动---审核过程,也就是静态的测试过程;右边是对左边结果的验证,是动态的过程,即对设计和分析的结果进行测试,以确认是否满足用户的需求。V模型避免了瀑布模型所带来的误区-----软件测试是在代码完成之后进行的。p302、什么是变更控制?(P111)

软件开发过程中都会产生许多变更,如配置项,配置,基线,构建的版本,发布的版本的变更,对于这些变更,都要有一个控制机构,以保证所有的变更都是可控的,可跟踪的,可重现的。这样的一类机构对变更的管理,就是变更控制。

3、软件可靠性概念?(P176)

软件可靠性是指在给定时间内,特定环境下软件无错运行的概率,软件可靠性包含了以下三个要素:规定的时间,规定的环境条件,规定的功能。

4、CMM(P195)

CMM:能力成熟度模型,用来衡量组织软件过程成熟度和评价其软件过程能力。能力成熟度是指一个特定过程被明确定义,管理,测量,控制并且是有效的程度。分为五个等级: 初始级 软件过程的特点是无序的,甚至是混乱的。几乎没有什么过程是进过定义的。可重复级 关键过程区域集中关注软件项目所关心的,与建立基本项目管理控制有关的事情。

已定义级 将软件生命周期的各个阶段严格的划分出来,从组织这个层次来保证过程质量该进

已管理级 软件产品的质量目标被量化管理,它遵循了全面质量管理活动的科学程序,关键过程域的关注焦点是建立起对软件过程和正在构造的软件工作产品的定量了解。

优化级 关键过程域包括那些为了实施连续不断的和可测的软件过程改进,组织和项目都必须解决的问题。

5、TQM的实施步骤(P265)

(1)建立质量小组,负责过程改进,流程完善,不断发现质量问题提出并实施解决方案。

(2)进行TQM思想的教育,通过教育,要让每个员工深刻认识到“满足顾客的需求是第一的”的思想,理解“什么是顾客需求”,如何让顾客满意等内容。

(3)了解市场,明确顾客需求,了解目前研发的软件产品的市场,包括竞争对手,客户群等,让员工明白什么是质量好的软件产品或软件服务,认真对待质量要求,开发出合格的产品。

(4)建立明确的质量基准和质量评估机制,以便和实际质量水平进行对比,识别质量的目标和工作的重点区域,采取相应措施。

(5)建立相对完善的奖励机制,在认可和给予奖励的过程中,应力求公正,真实,选择恰当的时间,恰当的场合,恰当的方式。

2、版本控制的目的:是在于对软件开发过程中文件或目录的发展过程提供有效的追踪手段,保证在需要时找到旧的版本,避免文件的丢失,修改文件的丢失和相互覆盖,通过对版本库的访问控制避免未经授权访问和修改。另外软件的控制是实现团队开发,提高效率的基础。

3、PDCA包括4个部分:计划、执行、检查、行动描述总结

(1)计划计划:就是分析当前状况,发现问题,找出原因和主要原因,制定质量方针、质量

目标、质量计划书和管理原则。管理原则有:过程方法、管理的系统方法、持续改进

(2)执行:执行时计划的履行和实现,主要按计划实施地去做,去落实具体对策,并实施过

程的监控,使活动按预期设想前进,最终达到计划设定的目标。

(3)检查:是对执行后效果的评估。检查是伴随着实施过程自始至终的,不断收集数据、信

息获取的过程,并通过数据分析、结果度量来完成检查。

行动:重点在于检查完结果,要采取措施,即总结成功的经验,吸取失败的教训,实施标准化,以后依据标准执行。

4、阶段性开发模型:增量模型和迭代模型

(1)增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分的,先开发主要

功能或用户最需要的功能,然后随着时间的推进,不断增 加新的辅助功能或次要功能,最终开发出一个功能完善的,稳定的产品。

(2)迭代模型描述软件产品的不同阶段是按产品深度或细化程度来划分,先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需要的全部功能。然后随着时间推进,不断细化已具有的功能或完善已具有的功能,这个过程是一个迭代的过程

6、零缺陷质量管理的实施步骤:(P268)

(1)建立推行零缺陷质量管理的组织事情的推行都需要组织的保证,通过建立组织,可以动员和组织全体职工积极的投入零缺陷管理,提高他们参与管理的自觉性也可以对每个人的合理化建议进行统计分析,不断进行经验交流,公司的最高管理者要亲自参加,表明决心,做出表率,要任命相应的领导人,建立相应的制度,要教育和训练员工

(2)确定零缺陷管理的目标,确定零缺陷小组在一定时期内所要达到的具体要求,包括确定目标项目,评价标准和目标值

(3)进行绩效评价,(4)建立相应的提案机制

(5)建立表彰制度

SQA组织的责任是审计软件经理和软件工程组的质量活动中出现的偏差。

7、SQA计划(P283)

SQA在项目早期要根据项目计划制定与其相应的SQA计划,定义各阶段的检查点。标识出检查审计的工作产品对象,以及在每个阶段SQA的输出产品。具体实施步骤如下:

(1)了解项目的需求,明确项目SQA计划的要求和范围

(2)选择SQA任务

(3)估计SQA的工作量和资源

(4)安排SQA任务和日程

(5)形成SQA计划

(6)协商,评审SQA计划

(7)批准SQA计划

(8)执行SQA计划

SQA计划包含以下内容:

(1)目的,SQA计划的目的和范围(2)参考文件,该SQA计划参考的文件列表(3)管理,组织,任务,责任(4)文档,列出所有的相关文档,如程序员手册,测试计划,配置管理计划等(5)标准定义,文档标准,逻辑结构标准,代码编写标准,注释标准等(6)评审/审核(7)配置管理,配置定义,配置控制,配置评审(8)问题报告和处理(9)工具,技术,方法(10)代码控制(11)事故/灾难控制,包括火灾,水灾,紧急情况等。

8、评审和审核的区别?(P285)

评审:过程进行时,SQA对过程的检查,SQA的角色在于确保当执行工程活动时,各项计划所规定的过程得到遵循,评审通常通过评委会的的方式进行,是对工作流程的评审

审核:在软件工作产品生成时,SQA对工作产品进行的检查,SQA的角色在于确保开发工作产品中各项计划所规定的过程得到遵循,审核通常通过对工作产品的审查来执行。侧重于产品本身。

SQA报告应遵循三条原则SQA和高级管理者之间应有的沟通渠道,SQA报告必须发布给软件工程组织但不必发布给项目管理人员,在可能的情况下向关心软件质量的人发布。

SQA度量是记录花费在SQA活动时间人力数据。涉及以下三方面:软件产品评估度量、软件产品质量度量、软件过程审核度量。

SQA的评估任务是软件开发前期对目标的软件和硬件资源进行评估,以确保其充分性和适合性。

9、白盒测试、黑盒测试(P390)

白盒测试将被测试程序看做一个盒子,测试者能够看到被测程序,可以分析被测程序的内部结构。

白盒测试可以用来对代码结构进行全面测试,常用的有语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖,循环测试

黑盒测试常用来验证软件或模块功能是否得到实现,主要运用单元的性能和功能方面的测试除了测试其功能外,还需确保代码在结构上可靠,健全并能够有良好的响应。黑盒测试主要运用于单元的功能和性能方面的测试。功能测试包括用户界面测试各种操作的测试不同的数据输入逻辑思路,数据输出和存储的测试。

区别:关键区别应该就是测试对象不一样,白盒测试主要针对的是程序代码逻辑,黑盒测试主要针对的是程序所展现给用户的功能,简单的说就是前者测试后台程序后者测试前台展示功能

10、测试的原则概括为10项:

(1)所有测试的标准都是建立在用户需求之上2软件测试必须基于“质量第一”的思想去开展各项工作3实现定义好产品的质量标准4软件项目一启动。软件测试也就是开始5穷举测试是不可能的6第三方进行测试会更客观,更有效7软件测试计划是做好软件测试工作的前提8测试用例的设计出来的,不是写出来的9不可将测试用例置之度外,排除随意性10对发现错误较多的程序段,应进行更深入的测试

39、功能测试的概念:是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否能正常使用、是否实现了产品规格说明书要求、是否能适当地接收输入数据而产生正确的输出结果等。

5、风险管理法:SEI(软件工程研究所)风险控制一般分5个步骤:P80

(1)风险识别:试图系统化的方法来确定威胁项目计划的因素。识别方法包括:风险检

测表、头脑风暴会议、流程图分析、与项目人员面谈。

(2)风险分析:可以分为定性风险分析和定量风险分析。定性风险分析是评估已经识别

风险的影响和可能性的过程。定量风险分析是量化分析每一风险的概率及其对项目目标造成的后果,同时也要分析项目总体风险的程度。

(3)风险计划:制定风险行动计划,应考虑以下部分:责任、资源、时间、活动、应对

措施、结果、负责人。

(4)风险控制:方法:风险避免、风险弱化、风险承担、风险转移。

(5)风险跟踪:监视风险的状况,检查风险的对策是否有效、跟踪机制是否在运行,不

断识别新的风险并制定对策。

6、评审的内容:分为管理评审、技术评审、文档评审、过程评审(P217简答)

(1)管理评审是以实施质量方针和目标的质量体系的适应性和有效性为评论基准,对体系文

件的适应性和质量活动的有效性进行评价。目标:按规定的时间间隔对质量体系进行评审,确保持续的适宜性和有效性,以满足本标准要求和提供的质量方针和目标。输入:体系审核的结果。输出:《管理评审报表》

(2)技术评审是对产品以及各阶段的输出内容进行评估。目的:确保需求说明、设计说明书

与最初的说明书保持一致,并按照计划对软件进行了正确的开发。输入:需求文档、源代码、测试用例、评审检查单、其它文档。输出:技术评审报告

(3)文档评审分为格式评审和内容评审。

(4)过程评审是对软件开发过程的评审,其主要任务是通过对流程的监控,保证SQA组织

定义的软件过程在项目中得到了遵循,同时保证质量方针能得到更快更好的执行。

40.朱兰三部曲:

质量策划:为建立有能力满足质量标准化的工作程序,质量策划是必要的质量控制:为了掌握何时采取必要措施纠正质量问题就必须实施质量控制

质量改进:质量改进有助于发现更好的管理工作方式

40、从软件开发的各阶段论述如何提高软件产品的质量?

1、需求

我们知道人与人的交流总是会存在一些误会,同样一句话,心情不好与心情好的时候听起来的感觉可能会截然相反,正是因为人们之间存在着理解上的偏差,在描述需求的语言上就应该注意尽量避免歧义的产生。如果对UML比较熟悉的话,需求分析可以利用UML工具进行,这样可以减少一些自然语言引起的歧义,但是UML可能与用户沟通起来有一些障碍,因为并不是所有的用户都了解UML各种图形的意思。除了工具之外,我们可以从以下几个方面来保证需求描述的质量。

1、看句子和段落是否简短,一个很长的句子,看起来会非常困难,因此无法弄懂真正的需求,另外过长的句子和段落容易让人忽视一些需求,所以如果一个句子不能完全描述清楚需求,应该将其拆分成多个小句子。

2、句子是否有语法错误,还要注意标点符号,有时,标点符号点错了,就完全成了另外一个意思了。

3、是否存在模糊不清的需求,出现类似于可能,大概,或者等词汇表述的需求。

4、另外注意引用的术语和词汇是否前后一致。

5、是否存在一些形容词、比较性词语,比如:容易的、快速的、方便的、有效的、许多、很少、简单、复杂、最新的,界面友好的,减少、扩大,不小于等等,需要将描述性词语进行量化,并且给出具体值或者范围,要不然不同的人根据不同的理解就会得出不同的结果,最终可能跟用户最初的要求有偏差,那“炒回锅肉”的事情就不可避免地会发生。

另外保证需求质量的一个很重要的因素就是需求是否细化,如果需求不细化也会很容易造成代码的返工,于是就出现了我们的程序员尽管总是加班加点却总是不能如期的完成任务的情景。那么我们怎样才能判断需求细化的程度呢?需求细化程度确实很难把握,什么样的需求可以算是比较细了,不用再进行细化了呢?哪些需求又太粗了呢?答案是需求是否可以写出相应的测试用例,如果写不出来,就说明需求还不是很细,还需要再进行细化。

2、设计

软件架构设计在软件产品开发周期中占有很重要的位置,我们开发出来的软件产品在开发伊始到产品发布会涉及到方方面面的角色,例如:用户、项目管理人员、程序员、测试员、维护人员等等。不同的角色对架构设计的要求也不相同。例如用户关心的是需求,因此我们的设计对需求的覆盖率是多少?对于程序员来说模块是否清晰,类的功能是否单一等等,对于测试人员来说系统的是系统的可测试性。对于维护人员来讲系统的扩展性、可维护性如何?一个高质量的软件架构,应该最大限度的考虑并满足不同角色的不同要求。正

是因为有这些要求,我们在进行软件设计的时候,应该进行全面的考虑。一般用来衡量软件设计质量的标准可以从以下几个方面来考虑:

1)、功能性:包括完全性、正确性、安全性、兼容性、互用性。完全性包括功能点覆盖率,重点功能点覆盖率,优先功能覆盖率。正确性包括需求一致度。安全性根据软件需求的不同有不同的安全性要求。

2)、效率:包括产品运行的时间效率和利用的硬件资源两方面来考虑。

3)维护性:包括架构的可改正性,可扩充性以及可测试性。如果用户的一个很小的需求变更会引起架构设计很大的变化,那么这样的架构设计的可改正性和可扩充性就比较差。

4)可移植性:包括硬件的独立性、软件独立性、可安装性、可重用性。软件设计是否模块化、每个模块的可复用性如何都是应该考虑的因素。

5)可靠性:包括缺陷数量、容错性、可用性。

6)使用性:包括可理解性、易学习性、可操作性、易沟通性。我们软件的最终目的是让用户来使用的,如果易用性不好,可操作性不好都会影响用户对软件的接纳程度。因此在软件的可使用性也是非常重要的。

3、编码

代码质量的一个很重要的标准就是代码的可读性及规范性,可读性不一定是简单的代码,而是容易理解的代码,因为过于复杂的代码难以测试和维护,同时出错的几率也会更高。如果一个方法内部的代码很长,而且使用了很多令人难以理解的数据集,这样就会带来代码维护的困难,因为很少有人能够有效地分析它们,因此也就是最容易出现缺陷和错误的地方。类之间的耦合度会造成类与类之间的相互关联,当一个类发生改变时会使其他的类发生意想不到的变化,一般从导入类的个数判断类之间的耦合度,如果导入类的个数很多,每一个导入类发生变化都会影响到该类本身,另外如果该类的public方法太多也会导致类之间的高耦合性增加。

也许有的程序员会认为写出可读、规范的代码会影响工作进度。的确,对于程序员个体短时间来说为代码写上注释是要花费些时间,但如今软件开发是多人协作

周期很长的过程,写过程序的人都知道,如果自己写了不规范的代码,随着自己所写的代码越来越多,到后来需要修改某个前期写的模块时都不知道自己当初是怎么想的了,读自己的代码也需要花很长时间才读懂。况且如果随着人员的调动等其他原因,往往维护代码的程序员已不是当初写代码的人,很多情况就是读懂了一段糟糕的代码还比重新写出一段代码花费的时间还长,严重影响工作效率(有些时候还影响维护人员的心情),反过来,如果大家都讲究把代码写成规范可读的,无疑对于整个组织来说提高总体工作效率是非常有用的。

代码质量另一个非常重要的衡量手段就是测试,通过统计测试代码所产生的缺陷情况,如严重等级分布、缺陷曲线的变化等可以从一个方面来简单地评估代码质量。

4、测试

测试人员在测试过程中,需要站在不同的利益相关者的角度,对测试对象的质量进行检查和验证,例如:测试人员除了关注需求文档中明确描述的需求条目之外,还应该关注隐现的需求,比如:竞争对手的产品特征、用户的群体特征和使用习惯等。因此,在测试过程中,测试人员除了关注测试对象的功能测试之外,还需要针对其他非功能特性进行测试。

为了在测试过程中尽量多的覆盖质量特性,测试人员需要清楚的了解产品有哪些质量特性是客户最关注的因此,测试人员在进行具体的测试用例设计和执行之前,需要定义该产品应该满足的质量特性集。

第四篇:论软件测试在质量保证中的作用

论软件测试在软件质量中的作用

论软件质量保证与测试

一:我对软件测试的认识:

软件测试是为了发现程序中的错误而执行程序的过程。具体的说,软件测试是根据然间开发个阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,依法向程序错误的过程。

软件测试的目的和意义在于发现程序中的错误,有效定义和实现软件成分由低到高的组装过程,验证软件是否满足任务书和系统定义文档所规定的技术要求,为软件质量模型的建立提供依据,具体说来如下:1确认软件的质量。一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件;2提供信息。比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;3软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第3个目的是保证整个软件开发过程是高质量的。

作为软件测试人员,在软件开发过程中的任务就是寻找bug,避免软件开发过程中的缺陷,衡量软件的品质,关注用户的需求,而其最终目标就是:确保软件的质量。

软件测试在软件生命周期中占据重要的地位,在传统的瀑布模布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户1

论软件测试在软件质量中的作用

使用之前保证软件质量的重要手段。近年来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的演示扩散常常会导致最后成品测试的的最大困难。

软件开发过程可分为:需求,实际,实现和测试4个阶段在开发大型软件系统的漫长过程中,面对纷繁复杂的各种现实情况,人的主观认识和客观现实是之间往往存在差距,开发过程中各类人员之间的交流和配合也往往并不是尽善尽美,所以,在软件生存周期的各个阶段都有可能产生差错。软件测试时对软件规格说明,设计和编码的最后复审,是软件质量保证的关键步骤,因此我们一定要重视软件测试工作。

测试是所有工程学院的基本组成单元,是软件开发的重要部分。自由层序时记得那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%左右。而在软件开发的总成本中,用在测试上的开销要占30%-50%。如果把维护阶段也考虑在内,讨论整个软件生存周期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有更多的测试工作。

作为软件测试这个行业,最重要的一件事就是从客户的需求出发,系统的问题越早发现,改正的成本越低,破坏性越小,所以,在系统发布前,要尽量多的把系统的问题找出来,其手段就是有计划,有组2

论软件测试在软件质量中的作用

织的进行充分的测试。系统投产后发想的问题,其危害性被成倍的放大,直接损坏了客户的利益和声誉,同时客户将毫不留情的将板子打在开发商身上,这是开发商费钱费力也可能难以挽回失去的市场。软件测试是软件质量保证的重要手段。二,软件测试的具体方法与测试模型

1、V模型

在软件测试方面,V模型是最广为人知的模型。V模型已存在了很长时间,和瀑布开发模型有着一些共同的特性。V模型中的过程从左到右,描述了基本的开发 过程和测试行为。

V模型优点:在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。

局限性: 把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现.2、W模型

V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试” 的原则。在V模型中增加软件各开发阶段应同步进行的测试,演化为W 模型(如下图)。

W模型由Evolutif公司提出,相对于V模型,W模型更科学。

论软件测试在软件质量中的作用

优点:W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。

缺点:W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。

3、X模型

X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。

X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执 行程序进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。

优点:X模型定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。

论软件测试在软件质量中的作用

缺点:可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。

4、H模型

H模型中, 软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行。

这个示意图演示了在整个生产周期中某个层次上的一次测试“微循环”。图中标注的其它流程可以是任意的开发流程,例如设计流程或者编码流程。也就是说, 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。

H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。H模型指出软件测试要尽早准备, 尽早执行。不同的测试活动可以是按照某个次序先

论软件测试在软件质量中的作用

后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。

三.软件测试的重要性及存在的误区

软件测试很重要。

在很多情况下,软件开发人员同用户的思路是完全不同的。开发人员由于接近硬件底层,更多的是从机器的“思维”来考虑问题,而用户只是为了使用。很多软件开发人员抱有这样的思维,认为用户很笨,“你这样用就不会出现错误了!”但事实上,作为一种产品,必须要能够考虑到用户使用的方方面面,并考虑进行各种容错处理。为了记录下用户使用软件的习惯用来提供软件的易用性和发现潜在的问题,微软和国外的很多大型软件开发公司甚至会采用专门的测试房间,用仪器记录用户的使用过程来加以改善使用的界面和出现的问题。

软件测试是软件质量保证的重要手段。有些研究数据显示,国外软件开发机构40%的工作量花在软件测试上,软件测试费用占软件开6

论软件测试在软件质量中的作用

发总费用的30%至50%。对于一些要求高可靠、高安全的软件,测试费用可能相当于整个软件项目开发所有费用的3至5倍。由此可见,要成功开发出高质量的软件产品,必须重视并加强软件测试工作。

国内很多企业还处在探索阶段,小企业的运作方式造成主要精力是要尽快完成初始资本积累。有些企业也了解软件测试的重要性,很努力、很认真地学,但因为很多原因而学不到精髓,不知道如何去做。于是只能局限于书本上学来的简单测试方法而已。即便有些人知道有压力测试和性能测试等测试方法,但如何针对产品实施并不清楚。

软件测试存在的误区:

(1)误区之一:软件开发完成后进行软件测试

人们一般认为,软件项目要经过以下几个阶段:需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。据此,认为软件测试只是软件编码后的一个过程。这是不了解软件测试周期的错误认识。软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。因此,软件测试贯穿于软件项目的整个生命过程。在软件项目的每一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开发与软件测试应该是交互进行的,例如,单元编码需要单元测试,模块组合阶段需要集成测试。如果等到软件编码结束后才进行测试,那么,测试的时间将会很短,测试的覆盖面将很不全面,测试的效果也将大打折扣。更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,如果要修复该类错误,将会耗费大量的时间和人力。

(2)误区之二:软件发布后如果发现质量问题,那是软件测试人员的错

这种认识很打击软件测试人员的积极性。软件中的错误可能来自软件项目中的各个过程,软件测试只能确认软件存在错误,不能保证软件没有错误,因为从根本上讲,软件测试不可能发现全部的错误。从软件开发的角度看,软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程中设计出来的。出现软件错误,不能简单地归结为某一个人的责任,有些错误的产生可能不是技术原因,可能来自于混乱的项目管理。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。

论软件测试在软件质量中的作用

(3)误区之三:软件测试要求不高,随便找个人做都行

很多人都认为软件测试就是安装和运行程序,点点鼠标,按按键盘的工作。这是由于不了解软件测试的具体技术和方法造成的。随之软件工程学的发展和软件项目管理经验的提高,软件测试已经形成了一个独立的技术学科,演变成一个具有巨大市场需求的行业。软件测试技术不断更新和完善,新工具,新流程,新测试设计方法都在不断更新,需要掌握和学习很多测试知识。所以,具有编程经验的程序员不一定是一名优秀的测试工程师。软件测试包括测试技术和管理两个方面,完全掌握这两个方面的内容,需要很多测试实践经验和不断学习精神。

(4)误区之四:软件测试是测试人员的事情,与程序员无关开发和测试是相辅相成的过程

需要软件测试人员、程序员和系统分析师等保持密切的联系,需要更多的交流和协调,以便提高测试效率。另外,对于单元测试主要应该由程序员完成,必要时测试人员可以帮助设计测试样例。对于测试中发现的软件错误,很多需要程序员通过修改编码才能修复。程序员可以通过有目的的分析软件错误的类型、数量,找出产生错误的位置和原因,以便在今后的编程中避免同样的错误,积累编程经验,提高编程能力。

(5)误区之五:项目进度吃紧时少做些测试,时间富裕时多做测试

这是不重视软件测试的表现,也是软件项目过程管理混乱的表现,必然会降低软件测试的质量。一个软件项目的顺利实现需要有合理的项目进度计划,其中包括合理的测试计划,对项目实施过程中的任何问题,都要有风险分析和相应的对策,不要因为开发进度的延期而简单的缩短测试时间、人力和资源。因为缩短测试时间带来的测试不完整,对项目质量的下降引起的潜在风险,往往造成更大的浪费。克服这种现象的最好办法是加强软件过程的计划和控制,包括软件测试计划、测试设计、测试执行、测试度量和测试控制。

(6)误区之六:软件测试是没有前途的工作,只有程序员才是软件高手

由于我国软件整体开发能力比较低,软件过程很不规范,很多软件项目的开发都还停留在“作坊式”和“垒鸡窝”阶段。项目的成功往往靠个别全能程序员决定,他们负责总体设计和程序详细设计,认为软件开发就是编写代码,给人的印象往往是程序员是真正的牛人,具有很高的地位和待遇。因此,在这种环境下,软件测试很不受重视,软件测试人员的地位和待遇自然就很低了,甚至软件测试变得可有可无。随着市场对软件质量的不断提高,软件测试将变得越来越重要,相应的软件测试人员的地位和待遇将会逐渐提高。在微软等软件过程比较规范的大公司,软件测试人员的数量和待遇与程序员没有多大差别,优秀测试人员的待遇甚至比程序员还要高。软件测试将会成为一个具有很大发展前景的行业,软件测试大有8

论软件测试在软件质量中的作用

前途,市场需要更多具有丰富测试技术和管理经验的测试人员,他们同样是软件专家。这两年来国内软件测试人员的需求不断增大,越来越多的IT企业认识到了软件测试的重要性。

四,软件质量保证与测试课程对我的帮助

经过一个学期的学习,使我对软件质量保证与测试的方法和重要性及他的理论依据有了一定的认识。这是一门崭新的学科,目前在国内的发展仍处于“婴儿”阶段,特别感谢葛老师这个学期以来的辛勤教导,使我明白的了不仅要会编程,而且还需要学会软件质量测试,它是软件正确性的保证。只有掌握软件质量测试的方法,彻底学会应用这些测试方法和测试理念才能够在以后的编程学习和工作中 保证软件的质量,使自己的能力更上一层楼。

第五篇:论局域网软件防范策略

一、引言

网络用户为了能很容易在浩如烟海的网页中搜索到自己想要的网址、文档、程序等,频繁地使用搜索软件。搜索软件(Robot或称Spider)作为一个程序,可以运行在Unix、Solaris、Windows、NT、OS2和MAC等平台上,其核心技术为机器程序抓取网页。这种软件自动搜集和索引系统,由软件程序自动在Internet上搜寻www、gopher和ftp等站点资源,返回相应数据并对它建立索引,产生一个数据库。

搜索软件有渗透到Internet每一个角落的趋势,甚至是一些配置不当的数据库、网站里的私人信息,例如Google的桌面搜索工具Desktop Search存在一个信息泄漏的漏洞,入侵者能通过脚本程序欺骗Desktop Search提供用户信息,最常见的就是泄漏磁盘数据。利用这个漏洞提供的信息,入侵者可以伪造相关信件并建立欺骗性的电子商务网站,让用户误以为是大公司发给自己的信函而受欺骗。同时因为Robot一般都运行在速度快、带宽高的主机上,如果它快速访问一个速度比较慢的目标站点,就有可能会导致该站点出现阻塞甚至停机,更为严重的是搜索软件对网络资源的搜索已逐渐成为病毒和黑客窥视的焦点,对网站、局域网安全构成严重的威胁。

值得注意的是:搜索软件对网络的访问在主观上并非都是恶意的,有些甚至是被允许的。

二、搜索软件主要的安全漏洞

1.搜索软件被作为匿名代理。像A1taVista、HotBot等搜索软件能无意识地响应使用者的命令,把一些合乎搜索条件的网页传递给使用者,一般黑客就是利用这一点,利用嵌套技术,层层使用网络代理,通过搜索软件搜索有缺陷的网站并入侵。同时,网络上存在大量的诸如*等网站专门提供匿名代理服务,这极大地方便了黑客,他们只需要几行简单的网页查询语句就能得到一些装有微软信息服务器((IIS)3.0和4.0但配置不当的电脑上的boot.in:文件。

2.搜索软件被作为病毒查找攻击对象的工具。例如,Santy蠕虫病毒的爆发最初发生在一周前,这一蠕虫病毒能够删除BBS论坛上的内容,在上面“涂鸦”它自己的内容。据安全公司表示,该病毒攻击的对象是运行phpBB软件的论坛网站,而且就是利用Google查找攻击目标。在Google公司采取措施对Santy蠕虫病毒对存在有漏洞的BBS论坛网站的查找进行查杀之后,Santy蠕虫病毒的变种正在利用Google、AOL和雅虎等搜索软件进行大肆传播。

3.Google批量黑客搜索攻击技术。事实证明使用Google搜索软件可以让普通人做一次黑客,其原理很简单,很多有特定漏洞的网站都有类似的标志页面,而这些页面如果被Google索引到,我们就可以通过搜索指定的单词来找到某些有指定漏洞的网站。例如Frontpage Extensions是微软IIS上的一个产品,但是其Netscape版本中的口令文件的访问权限设置有错误,黑客取得这些口令文件后,使用暴力破解工具就有可能获取一些弱用户账号口令。利用搜索软件搜索一下这个ext:pwd inurl:(service | authors | administrators | users):“#-Frontpage-”,可以发现有128个口令文件可供下载。

4.搜索软件被利用查找有缺陷的系统。一般黑客入侵的标准程序是首先寻找易受攻击的目标,接着再收集一些目标的信息,最后发起攻击。一般来说,新开通网络服务的主机容易成为攻击目标,因为这些主机最有可能没有很好的防范措施,如安全补丁、安装及时更新的防火墙等。那么搜索软件是怎么成为黑客人侵的工具的呢了?一般来说,装有网络服务的操作系统如Linux和windows通常把管理帮助文件和HTML配置文件放在网络服务的一些标准目录。当搜索软件搜索到这些文件时就会列出来,于是黑客知道这个系统可能是没有很好防范的系统而把它当作攻击目标。比如某个流行的网络产品有漏洞,那么就搜索这个产品的相同的字符串,比如某天phpBB论坛系统出现一个漏洞,那么我们就使用Google搜索“powered by phpBB”,就可以搜索出几乎所有使用phpBB系统的论坛。

5.搜索软件能用来搜索秘密文件。搜索软件中的FTp搜索软件,与HTTp搜索软件相比,存在着更大的网络漏洞。诸如LycosFTp的搜索软件,它产生的成千上万的网络链接能够探测到一些配置不当的FTp服务器上的敏感信息。任何网络使用者,稍懂网络知识,使用这种搜索软件,都可以链接到一些保密的数据和信息,更不用说一些资深的黑客了。并且,一些随意的FIp设置很容易暴露CUTEftp的smdata.dat文件和Netscape Enterprise Server的admpw文件,这些文件都是一些很容易被破译的加密器加密了的密码文件。若用FTp搜索软件搜索出smdata.dat或admpw文件,那么,登陆该ETp服务器的用户名和密码就唾手可得了。至于窃取FTp服务器上放置的保密文件对于黑客来说就更是如探囊取物了。

6.黑客利用桌面搜索攻击个人计算机。近来金山公司发现一种名为“Google DeskTop”的工具能够让使用者很轻易地找到机器当中的私人信息。同时,这个搜索工具还可以搜出系统隐藏的文件,如果利用这个搜索工具就能轻易地修改掉系统文件,而在隐藏文件暴露的情况下,非常容易受到攻击,而且病毒会利用操作系统漏洞进行攻击。所以用户在QQ、MSN聊天时,或者利用电子邮件收发时,个人信息会存在缓存当中,利用这一搜索会轻易搜索到网页的记录。如果有用户在公共场合通过web方式接收邮件,个人隐私会存留在缓存中,通过使用这个工具,输入了某些关键字,会造成使用者轻易搜到相关信息。专家提醒广大用户,不要在公共场所使用这个工具,特别是在网吧,以免造成信息泄露。

三、局域网的信息安全

如果企业内部网络,甚至个人电脑的硬盘都在可搜索之列,那么如何保证信息的安全呢?由于缺乏自主技术支撑,CpU芯片、操作系统和数据库、网关软件大多依赖进口,使我国计算机网络的安全性能大大降低。尤其是企业内部网的信息安全将成为问题的焦点。

影响局域网信息安全的因素主要有:非授权访问、冒充合法用户、破坏数据的完整性、干扰系统正常运行、病毒与恶意攻击、线路窃听等等。

1.常规策略:访问控制。访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和非常访问。它也是维护网络系统安全、保护网络资源的重要手段,是保证网络安全最重要的核心策略之一。

(1)入网访问控制。它是第一层访问控制,控制哪些用户能够登录到服务器并获取网络资源,控制准许用户入网的时间和准许他们在哪台工作站入网。这样的访问控制可分为三个步骤:用户名的识别与验证、用户口令的识别与验证、用户账号的缺省限制检查。

(2)网络的权限控制。这是针对网络非法操作所提出的一种安全保护措施。控制用户和用户组可以访问哪些目录、子目录、文件和其他资源,可以指定用户对这些文件、目录、设备能够执行哪些操作。受托者指派和继承权限屏蔽(IRM)可作为其两种实现方式。

(3)目录级安全控制。控制用户对目录、文件、设备的访问,或可进一步指定对目录下的子目录和文件的权限。

(4)属性安全控制。应给文件、目录等指定访问属性。属性安全控制可以将给定的属性与网络服务器的文件、目录和网络设备联系起来。

(5)网络服务器安全控制。包括可以设置口令锁定服务器控制台,以防止非法用户修改、删除重要信息或破坏数据;可以设定服务器登录时间限制、非法访问者检测和关闭的时间间隔。

(6)网络监测和锁定控制。服务器应记录用户对网络资源的访问,对非法的网络访问,服务器应有一定的报警方式。同时应能自动记录企图尝试进入网络的对象和次数,并设置阈值以自动锁定和驱逐非法访问的账户。

(7)网络端口和节点的安全控制。网络中服务器的端口往往使用自动回呼设备、静默调制解调器加以保护,并以加密的形式来识别节点的身份。自动回呼设备用于防止假冒合法用户,静默调制解调器用以防范黑客的自动拨号程序对计算机进行攻击。网络还常对服务器端和用户端采取控制,用户必须携带证实身份的验证器(如智能卡、磁卡、安全密码发生器)。

2.非常规却有时更有效的安全策略和技术

(1)屏蔽Cookie程序。Cookie是Web服务器发送到电脑里的数据文件,它记录了诸如用户名、口令和关于用户兴趣取向的信息,因此有可能被入侵者利用,造成安全隐患,因此,我们可以在浏览器中做一些必要的设置,要求浏览器在接受Cookie之前提醒您,或者干脆拒绝它们。通常来说,Cookie会在浏览器被关闭时自动从计算机中删除,可是,有许多Cookie会一反常态,始终存储在硬盘中收集用户的相关信息。

(2)屏蔽ActiveX控件。由于ActiveX控件可以被嵌入到HTML页面中,并下载到浏览器端加以执行,因此会给浏览器端造成一定程度的安全威胁。目前已有证据表明,在客户端的浏览器中,如IE中插入某些ActiveX控件,也将直接对服务器端造成意想不到的安全威胁。同时,一些其他技术,如内嵌于IE的VB Script语言,用这种语言生成的客户端可执行的程序模块,也同 Java小程序一样,有可能给客户端带来安全性能上的漏洞。此外,还有一些新技术,如ASp(Active server pages)技术,由于用户可以为ASp的输出随意增加客户脚本、ActiveX控件和动态HTML,因此在ASp脚本中同样也都存在着一定的安全隐患。

(3)定期清除缓存、历史记录,以及临时文件夹中的内容。我们在上网浏览信息时,浏览器会把我们在上网过程中浏览的信息保存在浏览器的相关设置中,这样下次再访问同样信息时可以很快地达到目的地,从而提高了我们的浏览效率。但是浏览器的缓存、历史记录,以及临时文件夹中的内容保留了我们太多的上网的记录,这些记录一旦被那些无聊的人得到,他们就有可能从这些记录中寻找到有关个人信息的蛛丝马迹。

(4)内部网络系统的密码要定期修改。由于许多入侵者利用穷举法来破解密码,像john这一类的密码破解程序可从因特网上免费下载,只要加上一个足够大的字典在足够快的机器上没日没夜地运行,就可以获得需要的账号及密码,因此,经常修改密码对付这种盗用就显得十分奏效。

(5)不要使用“MyDocuments”文件夹存放Word、Excel文件。Word、Excel默认的文件存放路径是根目录下的“MyDocuments”文件夹,在特洛伊木马把用户硬盘变成共享硬盘后,入侵者从这个目录中的文件名一眼就能看出这个用户是干什么的,这个目录几乎就是用户的特征标识,所以为安全起见应把工作路径改成别的目录,并且层次越深越好,比如:c:abcdefghijkl。

下载论软件质量保证的方法和策略(精选多篇)word格式文档
下载论软件质量保证的方法和策略(精选多篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    软件专利申请方法与保护策略

    软件专利申请方法与保护策略 (2012-10-31 16:55:24) 本文来自2011年南山区科技创业服务中心举办的讲座活动。 时间:2011年4月15日14:30—18:35 地点:南山数字文化产业基地一......

    软件质量保证工程师职责

    软件质量工程师的职责 随着科学技术的不断发展进步,企业之间的竞争越来越激烈。软件企业要想在竞争中发展生存,提高软件产品质量已成为必要条件。在一些高能力成熟度软件企业......

    软件项目质量保证措施

    1.1质量保障措施质量保障措施包括项目质量管理保障措施和软件开发质量保障措施两方面。1.1.1项目质量管理保障措施1、资深的质量经理与质保组针对本项目,将派遣资深的质量经......

    软件质量保证承诺书(精)

    软件质量保证承诺书 如果我公司在贵单位组织的项目名称:长沙市地方税务局机关及稽查局大院安全技术防范设备采购项目招标中获取中标,应项目投标的有关要求,我方对该项目做出......

    软件质量保证报告(最终版)

    软件质量保证报告 现在越来越多的公司都开始真正重视起软件质量问题,要做到高质量的软件应该满足软件需求定义的功能和性能。 文档符合事先确定的软件开发标准软件的特点和属......

    《软件测试与质量保证》读书报告

    学生课程读书报告 姓名 某某某 学号_0000000_专业_ 软件工程__ 班级_**级软件*班读书报告题目××××××××××××× 指导教师及职称 XXX 开课学期 2011 至_ 2012 学年_1......

    软件测试与质量保证实验指导

    实验一 .NET软件调试及测试计划 一、实验目的 通过本实验,熟悉.NET软件调试环境与技巧及测试计划的内容,并掌握测试计划的制定过程,能够针对具体项目完成测试策略的制定、测试......

    软件质量保证与测试课程教学大纲

    《软件质量保证与测试》课程教学大纲 一、课程基本信息 中文名称:软件质量保证与测试 英文名称:Software Quality Assurance and Testing 开课学院:计算机科学学院 课程编码:S08......