西门子KTP1000控制面板
②事物固有的或区别于其他事物的特征或本质;③优良或出色的程度。
CMM对软件质量的定义包括如下几方面:①一个系统、组件或过程符合特定需求的程度;②一个系统、组件或过程符合客户或用户的要求期望程度。
软件质量就是“软件与明确、隐含定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准,以及所有专业开发的软件都应具有隐含特征的程度。上述定义强调了以下三点:
① 软件需求是度量软件质量的基础,与需求不一致的就是质量不高。
②指定的标准定义了一组指导软件开直到1957年,软件测试才开始与调试区别开来,作为一种发现软件缺陷的活动。由于一直存在着“为了让我们看到产品在工作,就得将测试工作往后推一点”的思想,潜意识里对测试的目的就理解为“使自己确信产品能工作”。测试活动始终落后于开发活动,测试通常被作为软件生命周期中*后一项活动而进行。当时也缺乏有效的测试方法,主要依靠“错误推测ErrorGuessing”来找寻软件中的缺陷。大量软件交付后,仍存在很多问题,软件产品的质量无法保证。
到了20世纪70年代,这个阶段开发的软件仍然不复杂,但人们已开始思考软件开发流程的问题,对“软件测试”的真正含义还缺乏共识,但这一词条已经频繁出现,一些软件测试的探索者们建议在软件生命周期的开始阶段就根据需求制订测试计划,这时也涌现一批软件测试的宗师,BillHetzel 博士就是其中的***。1972年,软件测试领域的
北卡罗米纳大学组织了历史上第一次正式的关于软件测试的会议。在1973年他给软件测试一个这样的定义:“就是建立一种信心,认为程序能够按预期的设想运行。Establishconfidence that a program does what it is supposed todo.”后来在1983年他又将定义修订为:“评价一个程序和系统的特性或能力,并确定它是否达到预期结果。软件测试就是以此为目的的任何行为。”在他的定义中的“设想”和“预期的结果”其实就是现在所说的用户需求或功能设计。他还把软件的质量定义为“符合要求”。他的思想的核心观点是:测试方法是试图验证软件是“工作的”,
求组递交的需求规格说明书在指导后面的工作的时候出现很明显的错误,我想拿高工资的需求分析师是无法向老板交差的。为了需求分析师的名誉,他们自己会对自己提交的内容进行审核,直到他们认为自己的工作成果足够好,才会将需求规格说明书提交给正式评审组。
正式评审组的成员一般由公司内经验*丰富、技术*牛的人(技术总监)来担任,当然参加评审的人中间还应该有项目经理、QA人员、测试人员、架构师,他们仔细阅读需求规格说明书,并针对自己将要开展的工作内容进行检查,并提出问题。
正式评审是*后一关,如果正式评审通过了,将进入系统设计阶段,如果在系统设计阶段再修改需求的话,所花费的代价将大大增加。正式评审将是一个“鸡蛋里挑骨头”的过程,只有所有的人都认为需求已经没有什么可挑剔,评审才能通过。
(2)需求测试需求定义是否包含了有关文件(指质量手册、质量计划以及其他有关文件)中所规定的需求定义所应该包含的所有内容,需求定义是否包含了有关功能、性能、限制、目标、质量等方面的所有需求,功能性需求是否覆盖了所有非正常情况的处理,是否已对各种操作模式(如正常、非正常、有干扰等)下的环境条件都作规定,是否识别出了所有与时间因素有关的功能,它们的时间准则是否都明了,时间准则的*大、*小执行时间是否都定义了,是否识别定义了在将来可能会变化
系统的输出,是否说明了系统输入、输出的类型,是否说明了系统输入、输出的值域、单位、格式等,是否说明了如何进行系统输入的合法性检查,是否定义了系统输入、输出的精度,在不同负载情况下系统的生产率如何,在不同的情况下系统的响应时间如何,是否充分定义了关于人机界面的需求,系统对软件、硬件或电源故障必须作什么样的反应?
(3)一致性
各个需求之间是否一致,是否有冲突和矛盾,所规定的模型、算法和数值方法是否相容,是否使用了标准术语和定义形式,需求是否与了必要的实现细节而不包含不必要的实现细节,是否过分细致了;需求定义是否足够清楚和明确使其已能够作为开发设计规约和功能性测试数据基础;需求定义的描述是否将对程序的需求和所提供的其他信息分离开来。
(10)易测试性和可验证性
需求是否可以验证,是否对每一个需求都指定了验证过程;数学函数的定义是否使用了**定义的语法和语法符号。
这些检查项的排列顺序有点混乱,缺乏逻辑,按理应该根据重要性排下来。有些检查项如果没有补充的说明。可能不太好操作,比如必要的实现细节和不必要的实现细节、细致程度的判断。还是很有参考价值,基本上覆盖了IEEE对需求规格说明的要求。
IEEE认为好的需求规格说明应该问题备注:可以使用Word批注方式,在出现问题的地方给出相关的备注。如果有的文档没有批注功能,可以采用使用的颜色、字体来说明。
(8)审查会议注意事项:审查会议的主要目的是尽可能发现需求
送满数据信息给对方。
在服务器和客户端启动过程中,分别向对方发送空信息、满信息。测试策略3——异常处理
模拟双向数据传输时,传输过程中不断发生传输中断和恢复,服务器和客户端不发生不合理的现象。
数据发送瞬间,接收端发生意外关闭、正常关闭或接收端重启,是否服务器和客户端不发生异常,接收端能正常接收完整的发送信息。
在对端软件未启动和传输通信不通时,如果数据发送失败,发送方进行合理处理。测试策略4——长时间工作
通过转换为自动化测试的方式,将测试策略1、测试策略2和测试策略3按先后顺序循环执行多次或10小时以上,寻找测试策略1、测试策略2和测试策略3所能覆盖的逻辑处理代码中是否有内存泄漏的情况。
到目前为止,我们已在*开始的测试设计基础上进行了很多的扩展。那么我们现在是否还可以有新的测试策略来提高测试用例的质量呢?测试策略5——模拟资源紧张情况下的测试
长时间(10小时以上)同步模拟服务器和客户端在各自接收端口和发送端口受到网络攻击,在有限的通信系统资源紧张的情况下是否还能进行正常的文本通信,而不出现异常。测试策略6——真实环境测试
将服务器和客户端挂在Internet上进行真实环境的测试,验证是否会有在真实环境应用中我们未想到的测试情形。测试用例设计的精益求精除了多创造测试方法外,还有另一个很重要的领域——在测试用例设计规范上追求精益求精。笔者曾见过不少测试用例由于写得过于草率和简单,导致执行测试的人在工作时压力非常大,