鸣鸟不飞:乌云密布简介:
矢代从不会让别人看透他的内心。某天身边来了一名叫做百目*力的随从兼保镖。
xzh
所以,需要组建一个不少于3人不多于5人的项目团队,假设你们是某软件公司的软件测试团队,要去测试一个OA协同办公系统,你们应该划分出角色,确定项目的背景,确认工作的目标,明确系统的需求及其关键点,并再提交一份关于软件质量的测试报告,然后进行15分钟的阐述。提交文档的格式包括:团队的名字,写出项目的背景,列出工作目标,解释系统需求并谈一下对质量的解释。需要注意的是,随着软件工程的发展,软件的生命周期日渐明确,软件测试贯穿软件的整个生命周期,从项目启动的第一天,软件测试就介入其中,包括测试计划、测试设计、自动化测试、测试执行、测试分析总结。测试项目启动时,要抓住以下几点。①项目名称及背景描述。②项目业务需求描述。③项目发起的原因。④项目经理任命及职责范围界定。⑤主要项目干系人及其初步需求。1.1软件质量概述1.1.1软件及其特性第一个编写软件的人是ADA(AugustaAdaLovelace),在19世纪60年代他尝试为Babbage(CharlesBabbage)的机械式计算机写软件。尽管他的努力失败了,但他的名字永远载入了计算机发展的史册。在20世纪50年代,软件伴随着第一台电子计算机的问世诞生了。以编写软件为职业的人也开始出现,他们是经过训练的数学家和电子工程师。20世纪60年代美国大学里开始出现授予计算机专业的学位,专门教人们编写软件。20世纪中叶软件产业从零开始起步,在短短的50多年时间里迅速发展成为推动人类社会发展的龙头产业,并造就了一批百万、亿万富翁。随着信息产业的发展,软件对人类社会的发展越来越重要。那么,如何给软件定义?软件是什么?首先要说明的是,软件对于人类而言是一个全新的东西,其发展历史不过四五十年的时间。人们对软件的认识经历了一个由浅到深的过程。在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成了一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档。从20世纪60年代中期到70年代中期是计算机系统发展的第二个时期,在这一时期软件开始作为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求编写软件。这一软件开发的方法基础上仍然沿用早期的个体化软件开发方式,但软件的数量急剧膨胀,软件需求日益复杂,维护的难度越来越大,开发成本令人吃惊,而失败的软件开发项目却屡见不鲜。“软件危机”就这样开始了!“软件危机”使得人们开始对软件及其特性进行更深一步的研究,人们改变了早期对软件的不正确看法。早期那些认为是优秀的程序常常很难看懂,通篇充斥着程序技巧。现在人们普遍认为优秀的程序除了功能正确、性能优良之外,还应该容易看懂、容易使用、容易修改和扩充。现在,被普遍接受的软件的定义:软件(Software)是指计算机系统中与硬件(Hardware)相互依存的另一部分,它包括程序(Program)、相关数据(Data)及说明文档(Document)。其中,程序是按照事先设计的功能和性能要求执行的指令序列;数据是程序能正常操纵信息的数据结构;说明文档是与程序开发、维护和使用有关的各种图文资料。软件同传统的工业产品相比,有以下几个独特的特性。①软件是一种逻辑实体,具有抽象性。这个特点使它与其他工程对象有明显的差异。人们可以把它记录在纸上、内存和磁盘、光盘上,但却无法看到软件本身的形态,必须通过观察、分析、思考、判断,才能了解它的功能、性能等特性。②软件没有明显的制造过程。一旦研制开发成功,就可以大量复制同一内容的副本。所以对软件的质量控制,必须着重在软件开发方面下工夫。③软件在使用过程中,没有磨损、老化的问题。软件在生存周期后期不会因为磨损而老化,但会为了适应硬件、环境以及需求的变化而进行修改,而这些修改有不可避免的引入错误,导致软件失效率升高,从而使软件退化。当修改的成本变得难以接受时,软件就会被抛弃。④软件对硬件和环境有着不同程度的依赖性。这导致了软件移植的问题。⑤软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低。⑥软件是复杂的,而且以后会更加复杂。软件是人类有史以来生产的复杂度最高的工业产品。软件涉及人类社会的各种行业,软件开发常常涉及其他领域的专业知识,这对软件工程师提出了很高的要求。⑦软件的成本相当昂贵。软件需要投入大量、高强度的脑力劳动,成本非常高,风险也大。现在软件的开销已大大超过了硬件的开销。⑧软件工作牵涉很多社会因素。许多软件的开发运行涉及机构、体制和管理方式等问题,还会涉及人们的观念和心理。这些人的因素,常常成为软件开发的困难所在,直接影响到项目的成败。虽然早早就下定决心,绝不对不会对部下出手,但矢代不知为何,被百目*所深深吸引。彼此怀抱着自己的伤痛而活着的两人,他们的故事即将开始。
鸣鸟不飞:乌云密布下载:
xzh
词典对软件质量的定义包括如下几方面:①典型的或本质的特征;②事物固有的或区别于其他事物的特征或本质;③优良或出色的程度。CMM对软件质量的定义包括如下几方面:①一个系统、组件或过程符合特定需求的程度;②一个系统、组件或过程符合客户或用户的要求期望程度。概括地说,软件质量就是“软件与明确、隐含定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准,以及所有专业开发的软件都应具有隐含特征的程度。上述定义强调了以下三点:①软件需求是度量软件质量的基础,与需求不一致的就是质量不高。②指定的标准定义了一组指导软件开发的准则,如果没有遵守这些准则,极有可能导致质量不高。③通常,有一组没有显示描述的隐含需求(如期望软件是容易维护的)。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的。上述的定义很抽象,我们还是很迷茫。软件的质量不容易说清楚,下面列举说明,就以健康作类比吧。早先人们以为长得结实、饭量大就是健康,这显然是不科学的。现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等。如果上述因素都合格,那么表明这人是健康的。如果某个因素不合格,则表明此人在某个方面不健康,医生会对症下药。同理,我们也可以通过考察软件的质量属性来评价软件的质量,并给出提高软件质量的方法。1.1.4质量属性快速问答一提起软件的质量属性,人们首先想到的是“正确性”。“正确性”的确很重要,但运行正确的软件就是高质量的软件吗?答:不见得,因为这个软件也许运行速度很低,并且浪费内存,甚至代码写得一塌糊涂,除了开发者本人谁也看不懂,也不会使用,这也是质量的问题。可见正确性只是反映软件质量的一个因素而已。早在年,由Boehm等提出软件质量模型的分层方案。年,McCall等人改进Boehm质量模型又提出了一种软件质量模型。质量模型中的质量概念基于11个特性之上,而这11个特性分别面向软件产品的运行、修正、转移。它们与特性的关系如图1-1所示。McCall等认为,特性是软件质量的反映,软件质量可用做评价准则,定量化地度量软件属性克制软件质量的优劣,如表1-1所示。图1-1McCall软件质量模型表1-1McCall定义的质量特性McCall质量模型的质量属性很多,上述这些质量属性“你中有我,我中有他”,错综复杂。如果开发人员每天要面对那么多的质量属性咬文嚼字,是不现实的,因此我们有必要对质量属性做些分类和整合。质量属性可分为两大类:“功能性”与“非功能性”,后者有时也称为“能力”(Capability)。从实际角度出发,本部分将重点论述“10大”质量属性,如表1-2所示。表1-2“10大”软件质量属性其中,功能性质量属性有3个:正确性、健壮性和可靠性;非功能性质量属性有7个:性能、易用性、清晰性、安全性、可扩展性、兼容性和可移植性。为什么“10大”里面不包括可测试性、可维护性、灵活性呢?它们不也是很重要的吗?答:它们是很重要的,但不是软件产品的卖点,所以挤不进“10大”行列。我认为如果做好了前述“10大”质量属性,软件将会自然而然地具备良好的可测试性、可维护性。人们很少纯粹地去提高可测试性和可维护性,勿要颠倒因果。至于灵活性,它有益处也有坏处,该灵活的地方已经被其他属性覆盖,而不该灵活的地方就不要刻意去追求。根据经验,如果你想一股脑儿地把任何事情都做好,结果通常是什么都做不好,做事总是要分主次的。什么是重要的质量属性应当视具体产品的特征和应用环境而定,请读者不要受本书观点的限制。最简单的判别方式就是考察该质量属性是否被用户