第1页,共32页序号是否不适用1○2○3○4○1○2○3○4○5○6○7○8○9○1○2○3○4○1○2○3○1○2○1○2○3○4○1○2○3○4○5○6○7○1○2○3○1○2○3○需求检查单是否记录了所有可能的错误条件所产生的系统行为?是否定义了防止故障或错误探查策略?是否合理地定义了性能目标?是否合理地确定了所有性能需求?如预期处理时间,数据传输速度等。可靠性是否描述了所有软件故障的原因和结果?是否对用户界面进行了说明?是否对硬件接口进行了说明?是否对软件接口进行了说明?是否对通讯接口进行了说明?是否对接口的设计约束进行了说明?接口是否对接口的可维护性需求进行了说明?是否包括了所有客户代表或系统的需求?在需求中是否未遗漏必要的信息?是否每个需求都具有唯一性并且可以正确地被识别?是否所有的需求都可向前追踪到一个需求特性?是否每个需求都在项目的范围内?与商业目标一致?需求是否不与一些业务限制、政策或规约相冲突?是否识别了设计约束?与组织机构或政策问题相关的需求是否不与系统的商业目标相冲突?是否没有冗余的信息?检查项对需求的描述是否易于理解?是否不存在有二义性的需求?是否定义了术语表,对特定含义的术语给予了定义?可修改性是否每个需求都是可测试的?清晰性组织和完整性一致性可追踪性需求描述是否足够详细?最终产品的每个特征是用唯一的术语描述的吗?可检验性对同一对象的术语定义是否不存在矛盾?对同一对象的特征描述是否不存在矛盾?是否每个需求都没有内容上和语法上的错误?需求是否能为设计提供足够的基础?需求是否不会相互冲突?需求是否具有明确的来源,从而它可能被跟踪?质量、性能属性组织结构是否合理、可接受?是否对假设条件进行了说明?所有需求的编写在细节上是否都一致?是否所有的需求都能实现?每个需求描述是否清晰、符合逻辑?是否合理地确定了安全与保密方面的需求?是否对接口的安全性需求进行了说明?第2页,共32页序号是否不适用需求检查单检查项4○1○2○3○4○5○1○2○3○4○5○6○7○8○1○2○是否给出了最佳网络性能需求?是否给出了最大网络性能需求?是否所有需求都是名副其实的需求而不是设计实现方案?是否确定了对时间要求很高的功能并且定义了它们的时间标准?是否说明了要求的网络容量?是否给出了要求的或估计的网络吞吐率?是否给出了估计的网络连接数?是否给出了最小网络性能需求?特殊问题(可以根据项目情况调整)是否说明了要求的网络协议?通讯是否说明了需要购买的软件?是否给出了要求的或估计的网络吞吐率?是否描述了将要使用的第三方软件、中间件的应用及其批准?是否对目标网络情况进行了说明?是否定义了修正策略?是否指明了硬件需求如内存、硬盘空间等?是否对要求的软件环境/操作系统进行了说明?得分=是的项数/(总项数-不适用的项数)×100软硬件98第3页,共32页注释需求检查单可靠性接口可修改性清晰性组织和完整性一致性可追踪性可检验性质量、性能属性第4页,共32页注释需求检查单特殊问题(可以根据项目情况调整)通讯软硬件98第5页,共32页序号是否不适用1○2○3○4○1○2○3○4○5○6○7○8○9○10○11○1○2○3○4○1○2○3○4○5○6○1○2○3○4○5○6○是否对子模块的所有对象、关联合参数进行了说明?此设计是否能为详细设计提供充分的基础?在整个设计中,是否对数据元素、程序、功能的命名保持一致?是否考虑了异常情况?所有的错误情况/代码/信息描述的是否完整、准确?设计是否满足系统完整性要求?操作接口的设计是否考虑了用户?信息是否有隐蔽性?设计是否模块化?模块具有高内聚度低偶合度吗?设计中是否提供了对错误的检测、恢复和预防的方法?是否所有接口都提供了要求的类型、数量和质量信息?是否对接口的数量和复杂度进行了权衡,使接口的数量少并且复杂程度可以接受?设计是否反应了真实的运行环境,包括软件和硬件?对模块的说明是否与软件需求文档中的功能要求相一致?是否识别并分析了关键执行路径?各模块之间的关系是否描述的清楚?文档结构是否清晰没有二义性?组织是否合理?文档结构是否易于理解?便于维护和修改?所选的设计或算法是否满足模块的需求?是否有一些必要的数据结构没有定义?或定义了一些不必要的数据结构?是否清晰地描述了数据流程、控制流程和用户界面、接口?概要设计检查单一致性及可追溯性检查项是否对性能参数进行了说明(如如实现时间、内存大小、速度要求、磁盘容量等)?设计是否实现了规格说明书和需求分析所包含的内容?设计在进度、预算和技术上是否可行?是否对数据元素包括重要的性能参数进行了充分的描述?说明了有效的数据范围?是否对共享和存储数据的管理和使用进行了明确的描述?所有的单元的逻辑性能是否正确、完整?得分=是的项数/(总项数-不适用的项数)×100100清晰性完整性、正确性用户界面、接口可维护性、可靠性是否所有的设计元素都可追溯回需求?是否对用户界面、接口的功能特征进行了设计?用户界面、接口是否产生问题?或便于问题的解决?是否所有的接口间相互一致,并和其他模块及需求相一致?第6页,共32页注释概要设计检查单一致性及可追溯性100清晰性完整性、正确性用户界面、接口可维护性、可靠性第7页,共32页序号是否不适用1○2○3○4○5○6○7○8○9○10○11○12○13○14○数据库设计检查单是否考虑了数据库的所有与权限?实体-关系图是否定义清晰,实体最小定义?数据库是否清晰、完全反映了需求信息的逻辑法则,避免罗列?程序设计人员是否便于理解和使用?是否能够用良好的用户界面和操作过程实现模型功能?是否定义了外键,保证相关完整性?数据库是否定义的完善的索引?100检查项是否符合数据库第三范式要求?是否使用了专用设计工具得分=是的项数/(总项数-不适用的项数)×100是否合理的使用存储过程、触发器和视图,保证数据库的功能分配和优化?数据库是否具备足够的灵活性,适应性?所有数据字段是否定义完全满足数据格式与存储要求,消除冗余?每个实体表是否定义了主键,主键是否合理?是否定义清晰必要的约束?第8页,共32页注释数据库设计检查单100第9页,共32页序号是否不适用1○2○3○4○5○6○7○8○9○10○11○12○1○2○3○4○5○6○1○2○3○4○5○6○7○8○9○1○2○3○4○5○1○2○3○4○5○6○7○8○是否充分考虑了意外情况?信息是否有隐性使用?设计是否模块化?是否有因为设计而涉及到项目设计标准的危险发生(如标题是否满足项目标准、异常情况是否被考虑(如关键数据的更改或逻辑颠倒、是否有备份、对数据和重起程序的测试确认)?是否对输入、输出、接口和结果进行了错误检查?所有的界面是否彼此协调并和其他系统或需求一致?参数的数量、类型和顺序是否匹配?是否正确的定义了输入输出数据?是否清晰的描述了传递参数的顺序?是否列出了出错情况和解决方法(如执行输出检查等)?是否对错误情况/代码给出了有意义的信息提示?详细运算法则是否在每个层次模块/子单元有清晰说明?贯穿于整个设计中被使用和命名的数据元素、程序和函数是否一致和相容?是否识别了传递参数的机制?设计单元是否具有高内聚度低偶合度?(即该单元的变化不会对本单元造成不可预料的影响,对其他单元的影响达到最小)是否存在逻辑上的问题?是否对各种情况都进行了处理?(如大于、等于、小于0,switch/case情况)是否定义了所有要求的模块属性?是否为开发和维护代码提供了充分的基础?所有的设计单元都可追溯回需求吗?得分=是的项数/(总项数-不适用的项数)×100100所有必须的单元模块属性是否被详细说明?所有关于该模块已定义的设想是否被证明?能被需求反推测试或检查?包含在测试中的目标测试点是否被设计?设计的内容再增加时(可扩展)是否能被再次综合和测试?是否采用要求的方法或工具进行设计的?数据元素、程序和函数和外部接口是否一致?执行下一阶段的设计是否被充分描述?是否对约束进行了说明,比如处理时间?可维护性、可靠性逻辑及数据可用性详细设计描述是否与需求规格说明书、概要设计说明书的要求一致?文档结构是否清晰、组织是否合理?是否便于维护和修改?是否清晰的描述了单元设计信息,包括数据流程、控制流程、接口、界面等?详细设计能实现用户的特定需求和目标吗?设计文档中代码的扩充率是否小于10:1?是否可以追踪到代码?所有可能产生决定作用的问题陈述是否被解决?所有单元模块内部逻辑结构设计是完整?有没有遗漏或不全?是否正确且易于理解?详细设计检查单检查项清晰性、完整性一致性、正确性界面和接口所有逻辑性能是否可以被测量?是否所有的变量和常量被定义和初始化?且被正确的使用?是否列出了所有的调用?所有在程序中被修改的数据模块是否能让其他程序知道该模块的使用方法?是否设定了正确的初始化缺省值?且被正确使用?第10页,共32页注释100可维护性、可靠性逻辑及数据可用性清晰性、完整性一致性、正确性界面和接口第11页,共32页序号是否不适用1○2○3○4○5○6○1○2○3○4○5○6○7○8○9○10○11○1○2○3○4○5○6○7○8○9○10○11○循环计数器的变量名称是有意义的吗(而不是I、j、k)?代码的编写格式是否有助于代码的可读性?代码的编写格式是否有助于代码的维护?定义的程序名是否有意义?注释风格是否易于注释的维护?注释风格是否一致?每行最多只包含一条语句吗?变量命名适当吗?程序接口清晰明确吗?注释是否都有用?注释是否清晰正确?注释是否是最新的?所有定义的数据都使用了吗?是否用定义的常量代替实际的数据或字符串?是否对数据类型、常量、本地变量、实例变量、全局变量的有不同的命名规则?得分=是的项数/(总项数-不适用的项数)×100100版面风格代码注释代码的编写格式是否一致?是否记录了作者名?是否描述了文件目的?声明全局变量时,是否给以了注释?是否对代码含义进行了注释?检查项所有参数都定义了,或者计算了,或者从外部来源获得了吗?是否对输入数据、输出数据、入口参数进行了说明?是否说明了每个子程序的目的?代码检查单注释是否解释了代码的目的,或总结了代码所要完成的工作?注释是否有助于他人对代码的理解?所有定义的子程序都使用了吗?所有引用的子程序都定义了吗?数据类型和数据声明是合理正确的吗?第12页,共32页注释100版面风格代码注释代码检查单第13页,共32页序号是否不适用1○2○3○4○5○6○7○8○9○10○11○12○13○14○15○测试用例检查单得分=是的项数/(总项数-不适用的项数)×100100检查项文档结构是否清晰、组织是否合理?是否程序中的每个需求都有对应的测试用例?是否在测试用例中列举了一些过去常存在的错误?是否对简单的临界值进行了测试?如最大、最小值?即组合输入数据可能导致某计算变量过大或过小?是否能提供充分的可行度、包括已被测试的功能在确定环境运行正确?是否可演示程序中所有的错误路径?在测试程序中执行目标状态是否明确?是否程序中的每个设计元素都有对应的测试用例?被批准的测试用例是否可以追溯到需求规格说明书、设计说明书等文档中?是否分别设计了手工测试和自动测试用例?是否测试了典型的中间值?是否包含了足够的不合理和有冲突的输入组合?即默认输入值的使用方法是否合理?测试用例是否使得手工检查很容易?测试用例是否检查了错误数据,如在一个薪水程序中的雇员数是负数?为了支持软件可靠性的估计而被收集和验证的测试数据是否充分?第14页,共32页注释测试用例检查单100第15页,共32页序号是否不适用1○2○3○4○5○6○7○8○9○10○1○2○3○4○5○6○7○8○1○2○3○4○1○2○3○4○5○6○7○8○9○10○11○12○1○2○3○4○开发计划检查单计划中的进度和估算结果是否被审核并批准?是否对项目软件风险进行了正确的识别?项目风险识别是否对识别出的软件风险分析了其发生的可能性和影响值?执行工作的组和个人是否参与计划和估算过程?若采用delphi方法进行工作量估计,是否有delphi估计过程及结果数据?被识别风险的可能产生影