西门子PLC主机CPU224CN
一阶段的文档查找到需求定义中的相应内容;需求定义是否明确地表明前阶段中提出的有关需求的设计限制都已经被覆盖,如使用覆盖矩阵或交叉引用表;需求定义是否便于向后继开发阶段查找信息。
(9)易理解性
是否每一个需求都只有一种解释;功能性需求是不是以模块方式描述的,是否明确地标示出其功能;是否使用了形式化或半形式化的语言,语言是否有歧义;需求定义是否只包含
可以认为需求评审也西门子需求测试范围,但是这里提的需求测试和评审不同,它是测试部门来测试需求是否符合用户的要求。显然这是有难度的,传统的测试工作都是从单元测试开始,编码之前全部做的都是计划性工作。测试人员对需求分析进行测试?那么前提条件是测试人员必须熟悉需求分析,这对测试人员的要求提高了。将需求测试人员作为测试人员中的特殊种类来培养,能够对需求是否正确进行检查,这样就能够在需求阶段就引入测试。当然需求测试人员可以是经过培训的需求分析人员,但是他必须脱离需求组,加入测试部门,这样才能保证测试不是自己测自己的程序,以保证测试的效果。
需求测试不等同于后面阶段集成测试或者系统测试,后面的测试都是软件已经编写完成的条件下,判断软件是否会出错。而需求测试,只是验证需求是否真的是用户期望的。对于需求的功能测试,可以用RAD工具建立界面原型,用户通过原型的操作来确定是否需求跟他的期望相同。对于
理的需求,测试人员要能够分辨出来,并跟用户进行核对,确定用户的真实需求。可以说需求测试是需求测试人员和用户共同来执行的。
之所以将需求测试和需求评审并行进行,是因为需求评审是项目的各方干系人共同进行的检查工作,评审工作关注的焦点是分散的,很难将偏离用户的需求检查出来,并且涉及的人很多,因此不可能耗费太长时间。而需求测试执行的时间可以比评审时间长,有专门的关注方面,能够检查出不合理的需求分析,在项目前期进行错误纠正,往往比实现后纠正要节约几百甚至几千倍的成本。2.需求定义的评审标准
需求评审也称为需求的静态测试,对需求定义的测试着重于测试对用户需求的描述的解释是否完整、准确。下面是根据有关标准整理而成的对需求定义进行静态测试的对照条例。我们把这些条例按照所测试的软件质量因素分成以下10组。
(1)兼容性
界面需求是否使软件系统具有兼容性。
需求工程师取得用户的显性需求后,要仔细地分析用户到底要求软件实现什么功能,用户的表达和需求工程师的理解有时并不会一致,这样会导致用户所想的和说明书上描述的有偏差。并且需求工程师取得用户的需求后必须做仔细透彻地分析,有时用户的需求并不一定正确,可能是用户突然的想法,并不可行。如果需求工程师不能对用户提出的需求进行判断的话,可能辛辛苦苦地实现了用户的需求,结果被用户自己否掉了。用户绝不会将责任揽到自己身上,他们只会说“你们是专家,怎么能怪我呢?”。网络上有一幅漫画形象地描述了信息在产地过程中产生的误差有进入评审的初步条件。
需求评审的规程和其他重要产品(如系统设计文件、原始码)的评审规程非常相似,主要差别在于评审人员的组成不同。前者由研发方和客户方的代表一起组成,而后者通常来源于研发方内部。
有人问:需求评审研究评审什么?要细到什么程度?怎样进行?
严格地讲,应当检查需求文件中的每一个需求,每一行文字,每一张图表。评判需求优劣的主要指标有正确性、清晰性、无二义性、一致性、必要性、完整性、可实现性、可验证性、可测试性。如果有可能,**能制定评审的检查表。
需求评审面临的困难及对策如下。
需求评审的一个通病是“虎头蛇尾”。需求评审的确乏味,也比
脑子。刚开始评审时,大家都比较认真,越到后头越马虎。当需求文件非常长时,几乎没有人能坚持到*后。会议主持人事先要强调需求评审的重要性:认真评审一小时可能会避免将来数十天的“返工”,让大家足够重视。评审组长还要设法避免大家在昏昏沉沉中评审。如果评审时间比较长,建议每隔两小时休息一次。另外,如果系统比较大,也能细分成不同的部分分别进行,严格控制每一次评审的文件规模及持续时间。
需求评审设计的人员可能比较多,有些时候让那么多人聚在一起花费比较长的时间开会并不容易(如有些人可能出差在外,有些人可能事务缠身)。没有必要把所有时间挤在一块做,需求研发是循序渐进的过程,需求评审也能分段进行。这样每次评审的时间比较短,参加评审的人员也少一些,组织会议就比较容易。对于需求的工作产品《需求规格说明书》,我们能标明几种文件状态,如草稿状态、评审状态、初始状态等。只有进入评审状态时,我们才用不同的方式来对文件进行评审。但当其评审状态转化为初始状态时,需要进行正式的同行评审。
开评审会议经常会“跑题”,导致评审效率非常低。有时话匣子一打开后关不上,大家越扯越远,结果评审会议变成了聊天会议。主持人应当控制话题,避免大家讨论和主题无关的东西。对于自主研发的产品,由于需求评审人员大部分是研发人员,大家会不知不觉地讨论软件“怎么做”。由于需求是否“可实现、可验证、可测试”本来就西门子需求评审的范畴,所以强制大家:“只谈做什么,不谈怎么做”几乎是不可能的。那么,在需求的评审会
关于瀑布模式有以下三点需要强调。
① 瀑布模式非常强调产品的定义,注意开发或者代码编制阶段只是其中
确所有细节。缺点是,在这个变化迅速、在互联网上开发产品的时代,当软件产品还在细细考虑和定义时,当初制造它的理由都可能会改变了。
从测试的角度来看,瀑布模式比上述模式更有优势。瀑布模式所有一切都有完整细致的说明。当软件提交到测试小组时,所有细节都已确定并有文档记录,而且实现在软件之中。由此,测试小组得以制订**的计划和进度。测试对象非常明确,在分辨是功能还是缺陷上也没有一点问题。
然而,这个优点也带来一个巨大的缺点。因为测试仅在*后进行,所以一些根本性问题可能出现在早期,但是直到准备发布产品时才可能发现。好,但总有时间完成。”这是该模式的真实写照。采用这种方式的小组通常*初只有粗略的想法,接着进行一些简单的设计,然后开始漫长的来回编写、测试和修改缺陷的过程。等到觉得足够了,就发布产品。
由于开头几乎没有计划和文档编制,项目小组能较迅速地展现成果。因此,边写边改模式极其适合意在快速制作而且用完就扔的小项目,如原型范例和演示程序。即便如此,许多**的软件仍然采用了边写边改模式。如果文字处理或者电子表格软件存在大量软件缺陷,或者功能似乎不完备,就可能是在边写边改模式下制造出来的。
与大爆炸模式类似,测试在边写边改模式中未特别强调,但是在编写代码和修复缺陷过程中举足轻重。
作为边写边改的项目的软件测试员,需要和程序员一样清醒地认识到自己