软件测试中如何保证软件质量
由此看来每一个阶段的质量都起着决定性的作用。
以上提及的四个阶段的质量将引出以下几个软件质量保证的关键要素。
完备的需求分析 需求分析的目的是让项目组明白要做什么,是决定所开发出来的软件应当是“长什么样的”,显然完备的需求分析是高质量软件的前提。
如果所开发出来的软件与用户所希望的并不一致,那不可能让用户说“这个软件的质量很好” 。
如果方向不对,软件开发得再“好”也没有意义。
需求分析失误所带来的开发成本是高昂的,这一点在《软件工程》这类书籍中都会提及,因此,整个行业对于需求分析的重要性都具有足够的认识。
当然,知道其重要性与如何获得完备的需求分析又是两回事,至于如何做好需求分析请读者参考相关书籍。
需求分析如果出现失误的话有一个特点—— 它一定会暴露!只不过存在是暴露在软件开发过程中还是在用户手中之别。
因此,需求分析所造成的问题尽管严重,但它能被发现进而能得到项目组的重视,从而也一定能被修复,只是不同阶段发现这类问题所花费的成本将有所不同。
设计 设计阶段是通过设计方法找出软件实现更好的方法,注意这里是“更好”两个字,而不是强调最好。
不良设计并不会象需求分析失误那样很容易暴露出其本质,相反,它所暴露出的更多是表象,比如逻辑复杂、维护时举步为艰等等。
如果参与者不具备一定的洞察力以发现隐藏在现象背后的不良设计本质,则很有可能身受其害却不能自拔,还以为“本来就有那么复杂”。
项目的开发是一个逐步演进的过程,项目组成员对于需求的理解也是逐步加深的,一开始合适的设计到后面看来很有可能就不够全面或显得力不从心,如果仍沿用以前的设计则自然将暴露出它的不足,进而会出现需要更高的维护成本。
重构思想的提出,就是用于帮助项目演进设计的,当然,在运用重构方法时,应尽可能保证项目有足够的单元测试用例,以预防重构时又引入新的缺陷。
重构不只是一个词,其核心应当是一个方法论,一个用于优化设计的方法论。
编程好习惯 设计阶段输出的结果就是蓝图,但好的蓝图并不能保证最后的质量一定就好。
拿造房子打个比方,图纸设计得再好,如果建造时用的材料不过关,那最终的房子一定好不了。
那软件开发中的“建筑材料”又是什么呢?就是程序员所编写的代码。
如何保证其质量呢?这需要通过良好的编程习惯去保证。
在现实的项目中,设计有可能与编码会有一定的揉合,即通过进行一定的编码来辅助设计。
这种实践方式并不影响这里将设计与编码分为两个质量保证关键要素。
验证 验证很容易让人想到质量保证的常用方法之一,即测试。
但验证应当包含更多的内涵,比如求证软件需求是用户所希望的就是其中的一种。
对于验证的理解仍需要拿房屋的建造作为一个比方,以便加深理解。
在房屋的建造过程中,当建筑材料到了工地以后,需要对其进行检验,以保证它的质量是合格的,否则不能用于建造。
对应于软件开发,这个阶段就是单元测试。
当软件工程师编写了代码以后如何保证代码的行为是其所希望的呢?那只能通过单元测试去验证。
房子建造好了以后,还得对房子进行整体的验收以确保其最终是合格的。
比如抽查墙壁所使用的水泥与沙的配比是合适的。
虽然水泥和沙在进入工地时都经过了质检且是合格的,但在建造的过程中需要按一定的比例混合它们以作建筑粘合剂,而混合比例将确定粘合强度。
在软件开发过程中,软件集成测试就如同房子在建造好了以后的验收。
从上面的比方能得出几个结论。
第一,在软件开发过程中单元测试是必不可少的。
它的缺少如同将没有检验过的建筑材料用于建造一样。
第二,单元测试应当在集成测试之前完成。
有的项目在一开始时并没有单元测试流程,但后来发现需要增加这个环节,于是出现了集成测试完成了以后,再进行单元测试这种情形。
这种情形还是有点怪怪的,这如同房子已造好了,再将墙打掉去检查里面的砖是否是好的一样。
“将墙打掉检查砖”这种行为的勇气虽然可佳,但是如果尽早地在项目中部署单元测试就能避免这种怪现象的发生。
集成(包括开发集成和系统集成)测试在软件行业被广泛采用以保证软件质量,但单元测试对于软件质量保证的重要性在整个行业还缺乏广泛的、深刻的认识,其更多地被当作是负担而不是一种有效的质量保证手段。
软件测试和软件质量保证有哪些区别与联系
测试只是质量保证工作中的一个环节。
软件测试和软件质量保证是软件质量工程的两个不同层面的工作。
质量保证(QA):质量保证的重要工作通过预防、检查与改进来保证软件质量。
所关注的是软件质量的检查与测量。
QA的工作是软件生命周期的管理以及验证软件是否满足规定的质量和用户的需求,因此主要着眼于软件开发活动中的过程、步骤和产物,而不是对软件进行剖析找出问题或评估。
软件测试:测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。
测试人员要“执行”软件,对过程中的产物——开发文档和源代码进行走查,运行软件,以找出问题,报告质量。
对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作,因此软件测试是保证软件质量的一个重要环节。
下面哪些属于保证软件测试质量的手段
概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。
具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。
影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。
可划分为三组,分别反应用户在使用软件产品时的三种观点。
正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。
软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。
软件质量保证的目的是使软件过程对于管理人员来说是可见的。
它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。
软件质量保证组在项目开始时就一起参与建立计划、标准和过程。
这些将使软件项目满足机构方针的要求。
关系:简要的理解,软件质量是一个名词,软件质量保证是一个动词,是一种技术方法,是为了实现优秀的软件质量的一个工作。
在某一层次上说,软件质量保证和软件测试异曲同工。
什么是分析测试的质量保证
软件开发是生产制造软件;软件测试是验证开发出来软件的质量。
类比传统加工制造企业,软件开发人员就是生产加工的工人,软件测试人员就是质检人员。
关系应该是:1、没有软件开发就没有测试,软件开发提供软件测试的对象。
2、软件开发和软件测试都是软件生命周期中的重要组成部分3、软件开发和软件测试都是软件过程中的重要活动。
4、软件测试是保证软件开发产物质量的重要手段。
软件质量保证贯穿于软件开发的什么过程
过程质量保证人员的技能要求达到第1层要求的PQA人员只需具备基本的技能和沟通能力达到第5层要求的PQA人员所需技能包括:1,CMMI、ITIL、PMBOK、Agile等等2,所服务领域的基本知识3,所在组织的各项规范4,项目管理、质量保证过程质量保证工作的成果展现归根结底并长时间而言,项目或产品真正的商业成果是过程质量保证工程的终极成果展现,与开发团队、测试团队都是一样的。
但商业成果的展现不是短时间可以判断的。
所以在短时间内PQA的成果展现主要依赖于PQA自身工作,典型的成果展现有:1,PQA工作发现得到及时沟通并解决2,分析不符合项,提供预防措施3,分析关键指标,提供优化建议4,结合项目实践,提出改进建议5,深入理解项目状态、风险和问题,提出建设性建议和意见6,将项目层没有及时解决的问题提升到更高管理层7,分析项目/团队趋势8,解决项目共性问题,优化相应规范
转载请注明出处51数据库 » 软件测试怎样保证质量