软件测试与改错——掌握有效测试的方法与技术林锐博士内容摘要:

的部分 ( 见下表 ) , 其它次要部分可以忽略或将来再测试。 Page 13 4. 企业的测试策略  “ 偷工减料 ” 方法的测试优先级: – 哪些功能是软件的特色。 – 哪些功能是用户最常用的。 – 如果系统可以分块卖的话,哪些功能块在销售时最昂贵。 – 哪些功能出错将导致用户不满或索赔。 – 哪些程序是最复杂、最容易出错的。 – 哪些程序是相对独立,应当提前测试的。 – 哪些程序最容易扩散错误。 – 哪些程序是全系统的性能瓶颈所在。 – 哪些程序是开发者最没有信心的。 测试何时结束  基于测试用例的规则  基于 “ 测试期缺陷密度 ” 的规则  基于 “ 运行期缺陷密度 ” 的规则 测试奖励机制  根据缺陷的危害程度 , 把奖金分等级。 每个新缺陷对应一份奖金 , 把奖金发给第一个发现该缺陷的人。 奖金额要适当 , 太低了人们不感兴趣 , 太高了会让项目破产的。 Page 14 5. 测试规范 测试流程  第一步:制定测试计划。 该计划被批准后转向第二步。  第二步:设计测试用例。 该用例被批准后转向第三步。  第三步:如果满足 “ 启动准则 ” , 那么执行测试。  第四步:撰写测试报告。  第五步:消除软件缺陷。 如果满足 “ 完成准则 ” , 那么正常结束测试。 制定测试计划 设计测试用例 执行测试 撰写测试报告 消除软件缺陷 审批 审批 回归测试 完成 测试 完成准则 启动准则 Page 15 5. 测试规范 测试启动准则  同时满足以下条件 , 允许开始测试: – ( 1) 测试计划已经制定并且通过了审批; – ( 2) 测试用例已经设计并且通过了审批; – ( 3)被测试对象已经开发完毕并等待测试。 测试完成准则  对于非严格系统可以采用 “ 基于测试用例 ” 的准则。 同时满足以下条件允许结束测试: – ( 1) 功能性测试用例通过率达到 100% ; – ( 2) 非功能性测试用例通过率达到 90% 时。  对于严格系统 , 应当补充 “ 基于测试期缺陷密度 ” 的规则: – ( 3)相邻 n个 CPU小时内 “ 测试期缺陷密度 ” 全部低于某个值 m。 例如 n大于 10, m小于等于 1。 测试文档模板  测试计划参考模板  测试用例参考模板  测试报告参考模板 Page 16 测试 计划的参考模板 Page 17 测试 用例 Page 18 测试 报告的参考模板 Page 19 6. 软件系统的主要测试内容及技术 接口与路径测试 功能测试 健壮性测试 性能测试 用户界面测试 信息安全测试 压力测试 可靠性测试 安装 /反安装测试 Page 20 6. 软件系统的主要测试内容及技术 接口与路径测试  数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。 每个接口可能有多个输入参数,每个参数有 “ 典型值 ” 、 “ 边界值 ” 、 “ 异常值 ” 之分,所以输入的组合数可能并不少。 根据接口的定义,可以推断某种输入应当产生什么样的输出。 输出包括函数的返回值和输出参数。 如果实际输出与期望的输出不一致,那么说明程序有错误。 白盒方式的接口测试和黑盒方式的功能测试,其方法十分相似。  一个函数体内的语句可能只有十几条,但逻辑路径可能有成千上万条。 想遍历测试几乎是不可能的,不测试或者胡乱找几条路径测试却又不行。  对于非严格系统而言,在分析路径方面化费很多精力是不值得的。 我认为在构造接口测试的同时已经建立了测试路径。 因为每一种输入将产生唯一的输出,输入与输出之间的路径也是唯一的。 由于接口测试中的输入是有代表性的,因此相应的路径也具有代表性,不用得着费煞苦心地去找测试路径。  路径测试的检查表 – 数据类型、变量值、逻辑判断、循环、内存管理、文件 I/O、 错误处理  由于接口测试是枚举的 , 有可能漏掉某些状况 , 导致一些重要的路径没有被测试。 预防措施有: – 观察是否有程序语句从来没有被执行过。 如果发生在这种情况 , 要么是程序有错误 , 存在无用的代码;要么是接口测试不充分 , 漏掉了一些路径。 – 要特别留意函数体内的错误处理程序块(如果存在的话),这是最易被人疏忽的路径,隐患最多。 Page 21 6. 软件系统的主要测试内容及技术  接口与路径测试用例的参考模板 Page 22 6. 软件系统的主要测试内容及技术 功能测试  功能测试的基本方法是构造一些合理输入(在需求范围之内),检查输出是否与期望的相同。 如果两者不一致,即表明功能有误。 也有例外的情况,如《需求规格说明书》中的某个功能写错了,而实际上软件的功能却是正确的,这时要更改的是《需求规格说明书》。  功能测试看起来比较简单,只要看得懂《需求规格说明书》,谁都会做。 难点在于如何构造有效的输入。 由于输入空间通常是无限的,穷举测试显然行不通。 那么随便输入一些东西,碰运气行不行。  功能测试有两种比较好的测试方法:等价划分法和边界值分析法。 – 等价划分是指把输入空间划分为几个 “ 等价区间 ” ,在每个 “ 等价区间 ” 中只需要测试一个典型值就可以了。 等价划分法来源于人们的直觉与经验,可令测试事半功倍。 – “ 缺陷遗漏在角落里。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。