① 如何保证软件的质量
软件质量保证(SQA)是一种应用于整个软件过程的活动,它包含:
⒈一种质量管理方法
⒉有效的软件工程技术(方法和工具)
⒊在整个软件过程中采用的正式技术评审
⒋一种多层次的测试策略
⒌对软件文档及其修改的控制
⒍保证软件遵从软件开发标准
⒎度量和报告机制
SQA与两种不同的参与者相关 —— 做技术工作的软件工程师和负责质量保证的计划、监督、记录、分析及报告工作的SQA小组。
软件工程师通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来考虑质量问题,并完成软件质量保证和质量控制活动。
SQA小组的职责是辅助软件工程小组得到高质量的最终产品。SQA小组完成:
⑴为项目准备SQA计划。该计划在制定项目规定项目计划时确定,由所有感兴趣的相关部门评审。
·需要进行的审计和评审;
·项目可采用的标准;
·错误报告和跟踪的规程;
·由SQA小组产生的文档;
·向软件项目组提供的反馈数量。
⑵参与开发项目的软件过程描述。评审过程描述以保证该过程与组织政策,内部软件标准,外界标准以及项目计划的其他部分相符。
⑶评审各项软件工程活动,对其是否符合定义好的软件过程进行核实。记录、跟踪与过程的偏差。
⑷审计指定的软件工作产品,对其是否符合事先定义好的需求进行核实。对产品进行评审,识别、记录和跟踪出现的偏差;对是否已经改正进行核实;定期将工作结果向项目管理者报告。
⑸确保软件工作及产品中的偏差已记录在案,并根据预定的规程进行处理。
⑹记录所有不符合的部分并报告给高级领导者。
② 如何做好软件的质量管理
在实际的项目质量管理中,质量管理总是围绕着质量保证(Quality?Assurance)过程和质量控制(Quality?Control)过程两方面。这两个过程相互作用,在实际应用中还可能会发生交叉。正如引言所述,关于软件的质量,很难下一个非常明确的定义。本文主要针对软件工程中的质量管理来进行讨论。
1、做软件“大餐”的工序
软件质量保证(Software?Quality?Assurance,以下简称SQA)的目的是验证在软件开发过程中是否遵循了合适的过程和标准。软件质量保证过程一般包含以下几项活动:
首先是建立SQA组;其次是选择和确定SQA活动,即选择SQA组所要进行的质量保证活动,这些SQA活动将作为SQA计划的输入;然后是制定和维护SQA计划,这个计划明确了SQA活动与整个软件开发生命周期中各个阶段的关系;还有执行SQA计划、对相关人员进行培训、选择与整个软件工程环境相适应的质量保证工具;最后是不断完善质量保证过程活动中存在的不足,改进项目的质量保证过程。
独立的SQA组是衡量软件开发活动优劣与否的尺度之一。SQA组的这一独立性,使其享有一项关键权利――“越级上报”。当SQA组发现产品质量出现危机时,它有权向项目组的上级机构直接报告这一危机。这无疑对项目组起到相当的“威慑”作用,也可以看成是促使项目组重视软件开发质量的一种激励。这一形式使许多问题在组内得以解决,提高了软件开发的质量和效率。
③ 软件测试中如何保证软件质量
软件在没有发布之前的开发过程主要分为需求分析、设计、编码和验证四个阶段,最终的软件质量与这四个阶段的各自质量之间的关系如果用C语言来表达的话应当是: 最终的软件质量 = 需求分析质量 && 设计质量 && 编码质量 && 验证质量 即,最终的质量来自于各阶段质量之“与”,只要其中一个环节质量是差,则产品的整体质量都将是差,千万不要认为是“或”的关系。由此看来每一个阶段的质量都起着决定性的作用。 以上提及的四个阶段的质量将引出以下几个软件质量保证的关键要素。 完备的需求分析 需求分析的目的是让项目组明白要做什么,是决定所开发出来的软件应当是“长什么样的”,显然完备的需求分析是高质量软件的前提。如果所开发出来的软件与用户所希望的并不一致,那不可能让用户说“这个软件的质量很好” 。如果方向不对,软件开发得再“好”也没有意义。需求分析失误所带来的开发成本是高昂的,这一点在《软件工程》这类书籍中都会提及,因此,整个行业对于需求分析的重要性都具有足够的认识。当然,知道其重要性与如何获得完备的需求分析又是两回事,至于如何做好需求分析请读者参考相关书籍。 需求分析如果出现失误的话有一个特点—— 它一定会暴露!只不过存在是暴露在软件开发过程中还是在用户手中之别。因此,需求分析所造成的问题尽管严重,但它能被发现进而能得到项目组的重视,从而也一定能被修复,只是不同阶段发现这类问题所花费的成本将有所不同。 设计 设计阶段是通过设计方法找出软件实现更好的方法,注意这里是“更好”两个字,而不是强调最好。 不良设计并不会象需求分析失误那样很容易暴露出其本质,相反,它所暴露出的更多是表象,比如逻辑复杂、维护时举步为艰等等。如果参与者不具备一定的洞察力以发现隐藏在现象背后的不良设计本质,则很有可能身受其害却不能自拔,还以为“本来就有那么复杂”。 项目的开发是一个逐步演进的过程,项目组成员对于需求的理解也是逐步加深的,一开始合适的设计到后面看来很有可能就不够全面或显得力不从心,如果仍沿用以前的设计则自然将暴露出它的不足,进而会出现需要更高的维护成本。重构思想的提出,就是用于帮助项目演进设计的,当然,在运用重构方法时,应尽可能保证项目有足够的单元测试用例,以预防重构时又引入新的缺陷。重构不只是一个词,其核心应当是一个方法论,一个用于优化设计的方法论。 编程好习惯 设计阶段输出的结果就是蓝图,但好的蓝图并不能保证最后的质量一定就好。拿造房子打个比方,图纸设计得再好,如果建造时用的材料不过关,那最终的房子一定好不了。那软件开发中的“建筑材料”又是什么呢?就是程序员所编写的代码。如何保证其质量呢?这需要通过良好的编程习惯去保证。 在现实的项目中,设计有可能与编码会有一定的揉合,即通过进行一定的编码来辅助设计。这种实践方式并不影响这里将设计与编码分为两个质量保证关键要素。 验证 验证很容易让人想到质量保证的常用方法之一,即测试。但验证应当包含更多的内涵,比如求证软件需求是用户所希望的就是其中的一种。 对于验证的理解仍需要拿房屋的建造作为一个比方,以便加深理解。在房屋的建造过程中,当建筑材料到了工地以后,需要对其进行检验,以保证它的质量是合格的,否则不能用于建造。对应于软件开发,这个阶段就是单元测试。当软件工程师编写了代码以后如何保证代码的行为是其所希望的呢?那只能通过单元测试去验证。房子建造好了以后,还得对房子进行整体的验收以确保其最终是合格的。比如抽查墙壁所使用的水泥与沙的配比是合适的。虽然水泥和沙在进入工地时都经过了质检且是合格的,但在建造的过程中需要按一定的比例混合它们以作建筑粘合剂,而混合比例将确定粘合强度。在软件开发过程中,软件集成测试就如同房子在建造好了以后的验收。 从上面的比方能得出几个结论。第一,在软件开发过程中单元测试是必不可少的。它的缺少如同将没有检验过的建筑材料用于建造一样。第二,单元测试应当在集成测试之前完成。有的项目在一开始时并没有单元测试流程,但后来发现需要增加这个环节,于是出现了集成测试完成了以后,再进行单元测试这种情形。这种情形还是有点怪怪的,这如同房子已造好了,再将墙打掉去检查里面的砖是否是好的一样。“将墙打掉检查砖”这种行为的勇气虽然可佳,但是如果尽早地在项目中部署单元测试就能避免这种怪现象的发生。 集成(包括开发集成和系统集成)测试在软件行业被广泛采用以保证软件质量,但单元测试对于软件质量保证的重要性在整个行业还缺乏广泛的、深刻的认识,其更多地被当作是负担而不是一种有效的质量保证手段。
④ 如何保证软件质量
国产软件在最近10年来发展迅速,从最早的应用软件开发,到现在拥有自己国产品牌的操作系统、数据库、中间件,以及自己的集成应用商,已经可以满足企业的一般办公需求。“可能在稳定性上或者兼容性上还存在一些问题,但是这并不影响它的日常使用和在一些领域的推广和应用。” 国家应用软件产品质量监督检验中心副主任左家平如是说。但她也强调,软件的正版化肯定是有利于自身行业的发展。“如果你做一个东西很快就被盗版,没有了价值,大家就都不去做了,行业也就乱了。”她说。 谈到测试,左家平给出了一个简单明了的解释:“系统测试其实起到一个连接作用。”即完成从操作系统到中间件,到数据库,到Office应用中所有相关接口、功能、性能等的一连串测试,以保证这个系统的可用性。从解决方案的角度来说,就是先要对单个软件产品进行测试,再把相关的软件集成起来进行测试,这样才能对整个解决方案是否可用进行评价。 软件的质量分三部分:内部质量、外部质量和使用质量。 内部质量是由厂商内部做的,就是厂商通过自己内部的测试方式来进行保证。每一个源代码要开放,然后看有没有死循环,有没有语法错误,有没有其他问题,是通过这种完全开放源代码的形式进行测试的。外部质量度量主要是通过测试用例的输入,来验证输出结果能不能达到预期要求,在测试工具应用、测试思路设计、测试重点选择和人才技能需求等方面都与内部质量度量有很大的差异。而使用质量,实际上也就是用户质量,是通过模拟用户使用来进行评价的。国家应用软件产品质量监督检验中心现有的人员和技术能够对软件的内部质量、外部质量,以及使用质量进行全面度量,因为只有这样才能把软件产品质量测试做成一条线,才能形成系统的质量评测方法,这也是国际标准中通常所采用的方法。 虽然叫做软件质量监督检验中心,但在左家平看来,中心更多的工作是在做服务,是从服务角度来推动软件产业的发展。按照国家《产品质量法》的相关要求,如果要开展对一种产品的监督抽查工作,就必须依据相应的标准、规范,因此监督抽查是要标准先行的。如果标准滞后,就会影响到抽查结果的判定和评价。对于软件产业中产品标准严重滞后的现象,中心更多的工作还是从服务需求方、开发方角度来做软件产品的质量监督。比如,通过软件质量测试服务告诉用户,产品中有什么样的问题,它技术瓶颈在哪里,然后再提出改进方案。
⑤ 浅析如何提升软件测试质量
摘要:随着软件测试受关注程度越来越高,如何采用技术手段有效提高软件测试质量就成了软件测试领域的一个重要课题。本文从软件测试的基本概念开始,对如何以软件测试性设计为中心、合理运用软件测试技术来提升软件测试质量提出了自己的看法。 关键词:软件测试;测试设计;测试质量 软件产品的质量取决于软件开发过程,软件测试作为软件生存期中的一个重要阶段,受重视程度越来越高。软件测试是保证软件质量和可靠性的关键步骤,也是用来验证软件是否能够完成所期望功能的唯一有效的方法。测试已不仅仅局限于软件开发中的一个阶段,它已开始贯穿整个软件开发过程,进行测试的时间越早,整个软件开发成本下降就越多。大量统计表明,软件测试的工作量往往占到软件开发总量的40%以上,在极端的情况下,甚至可能高达软件工程其它步骤成本总和的三至五倍,其目的是尽可能的提高软件产品的质量和可靠性。 1、软件测试相关概念 (1)软件测试:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用这些测试用例的运行结果来发现程序错误的过程。 (2)软件测试用例:测试用例实际上是对软件运行过程中所有可能存在的目标、运动、行动、环境和结果的描述。测试用例是测试组织的最小单位,指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并最终形成文档。 软件测试的核心是设计和执行测试用例。而测试用例的选择问题可以看作是从庞大的输入状态组合中,搜寻哪些可以发现错误的状态组合。因此需要用抽象的手段来尽量使测试更加有效。 (3)测试用例库:完整的单元测试很少只执行一个测试用例,开发人员通常都需要编写多个测试用例才能对某一软件功能进行比较完整的测试,这些相关的测试用例称为一个测试用例集。将大量的测试用例收集到测试用例库中,合理的分类后供测试人员选择使用,能够极大地提高软件问题的发现率。 2、提高测试质量的方法 2.1 采用测试性设计技术 软件测试是目前用来验证软件是否能够完成所期望的功能的唯一有效的方法。但是在测试的实施过程中,由于种种原因导致测试的难度相当大,甚至出现了无法测试的情形。为了提高软件的可测试性,我们在软件设计时应当遵循测试性设计原则,通过改变设计或代码、为软件增加专门测试结构等方法来提高软件的可测试性。 (1)测试驱动设计。这种设计就是直接把软件需求变成测试代码。在确定软件测试性能要求的基础上优先编写测试代码。先写验收测试,再写单元测试,并在开发过程中不断修正。 (2)每个操作对应一个方法,使方法小型化。使用小型化方法说明和重载带缺省方法参数的方法,使得测试中调用这些方法变的很容易。 (3)显示与控制分离。把代码移到GUI视图的外面,各种GUI动作就能成了模型上的简单方法调用。这样,在修改程序功能不会影响视图,同时通过方法调用测试功能也比间接地测试功能更容易。 (4)对于可能要作为参数的类,做一个接口。用接口说明外部程序组件或在需要时改变接口形成一个空类作为参数传入。 2.2 选择合适的测试管理模型 模型是系统功能的形式化或半角式化的表示,支持输入状态组合的系统枚举。基于模型的测试主要考虑系统的功能,可以认为是功能测试的一种。测试模型体现了被测试系统的最本质的功能关系。而且要比系统本身更易于开发和分析。一个可测试的模型要能提供足够的信息用来产生测试用例。所以可测试的模型必须满足以下要求: (1)必须是某种测试实现的完全准确的反映,模型必须表示要检查的所有特征; (2)是对细节的抽象; (3)可以表示所有事件和所有的动作;⑷可以表示系统的各种状态,以便由可知的方法来确定已达到或没有达到什么状态。
⑥ 软件项目管理中质量管理的三种主要手段,并分析其各自的特点
这个问题我遇到过,题目是有些困难,但是要细心,用心去寻找答案,相信你可以找到正确答案。
许多IT项目开发的系统应用在生死攸关的场合。例如,1981年,由计算机程序改变而导致的1/67的时间偏差,使航天飞机上的5台计算机不能同步运行,这个错误导致了航天飞机发射失败。1986年,1台Therac25机器泄露致命剂量的辐射,致使两名医院病人死亡。造成惨剧的原因是一个软件出现了问题,导致这台机器忽略了数据校验。这些惨痛的教训说明,在软件开发项目中认真抓好质量管理,并加强有关软件项目质量管理的研究是摆在我们面前的重要课题。
软件项目质量管理包括:质量计划编制、质量保证和质量控制三个过程域。质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。
九江学院A0813 集体签到:楼上几位的IP,IC,ID都已暴露
涛子,龙妹妹,女女,小付,海套等等成员均已签到
⑦ 软件开发中如何通过测试来提高软件的质量
软件质量靠测试的话基本就完了,我是做测试的,所以有些小感触,一旦开发人员觉得自己开发的东西反正还要测试,就不重视开发过程或流程了,那么软件质量就不可能提高,从根源上说,提高软件质量的途径就是控制开发流程,使各种软件活动都规范起来,虽然在国内这样做还比较难,但是一定要有这个意识,就说这么多,呵呵。
⑧ 软件测试与软件质量的关系
测试只是质量保证工作中的一个环节。软件测试和软件质量保证是软件质量工程的两个不同层面的工作。
质量保证(QA):质量保证的重要工作通过预防、检查与改进来保证软件质量。所关注的是软件质量的检查与测量。QA的工作是软件生命周期的管理以及验证软件是否满足规定的质量和用户的需求,因此主要着眼于软件开发活动中的过程、步骤和产物,而不是对软件进行剖析找出问题或评估。
软件测试:测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程中的产物——开发文档和源代码进行走查,运行软件,以找出问题,报告质量。对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作,因此软件测试是保证软件质量的一个重要环节。