《the art of software testing》 (1-2)章
2024-08-28 22:45:50
软件测试的心理学,重点是要认清:
测试时为发现错误而执行程序的过程
- 成功的测试:如果在测试某段程序时发现了错误,而且这些错误是可以修复的,就将这次合理设计并得到有效执行的测试称作是“成功的”。如果本次测试可以最终确定再无其他可查出的错误,同样也被称作是“成功的”。
- 不成功的测试:所谓“不成功的”测试,仅指未能适当地对程序进行检查, 在大多数情况下, 未能找出错误的测试被认为是“不成功的”,这是因为认为软件中不包含错误的观点基本上是不切实际的。
能发现新错误的测试用例不太可能被认为是“不成功的”;相反,能发现错误就证明它是值得设计的。一个“不成功的”测试用例.会使程序输出正确的结果,但不能发现任何错误。
- 举例:
待测试软件——> 病人
测试人员——>医生
测试过程——>治疗过程
软件测试的经济学
黑盒测试
- 使用这种测试方法时,将程序视为一个黑盒子。测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的环境条件。
- 如果想用这种方法来发现程序的所有错误,判定的标准就是
穷举输入测试
,将所有可能的输入条件都作为测试用例。- 穷举输入测试是无法实现的,这有两方面的含义,一是我们无
法测试一个程序以确保它是无错的,二是软件测试中需要考虑的一个基本问题是软件测试的经济学。也就是说,由于穷举测试是不可能的,测试投人的目标在于通过有限的测试用例,最大限度地提高发现的问题的数量,以取得最好的测试效果。除了其他因素之外,要实现这个目标,还需要能够窥见软件的内部,对程序作些合理但非无懈可击的假设。
白盒测试
这种测试策略对程序的逻辑结构迸行检查,从中获取测试数据。
在这里我们的目标是针对达种测试策略,建立起与黑盒测试中穷举输入测试相似的测试方法。这种方法通常称为
穷举路径测试
穷举路径测试就如同穷举输入测试,非但不可能,也是不切实际的。
第一,即使是穷举路径测试也决不能保证程序符合其设计规范
第二,程序可能会因为缺少某些路径而存在问题。穷举路径测试当然不能发现缺少了哪些必需路径。
第三,穷举路径测试可能不会暴露数据敏感错误。
软件测试的重要原则
- 1 测试用例中一个必需部分是对预期输出或结果进行定义
- 2 程序员应避免测试自己编写的程序
- 3 编写软件的组织不应当测试自已编写的软件
- 4 应当彻底检查每个测试的执行结果
- 5 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据
无效
和未预料
到的输入情况 - 6 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程是否“做了其不应该做的”
- 7 应避免测试用例用后即弃,除非软件本身就是个一次性的软件
- 8 计划测试工作时不应默许假定不会发现错误
- 9 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成
正比
- 10 软件测试是一项极富创造性,极具智力的挑战性的工作
最新文章
- socket编程基础
- 在SQLSERVER2008中建立数据库复制碰到的问题
- easyui layout 布局title
- C++ Windows进程管理
- STM32 硬件I2C 到底是不是个坑?
- Linux netstat命令详解
- 【原】IOS中KVO模式的解析与应用
- 【转】Dubbo_与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 过滤字段中HTML标签
- 【Hadoop学习】HDFS中的集中化缓存管理
- Oracle数据库简介
- noi 04:网线主管
- 回归分析:非线性nlinfi
- Java I/O流-PipedInputStream、PipedOutputStream
- shell编辑crontab任务
- python各种运算优先级一览表
- nyoj44 子串和 线性DP
- Ubuntu 16.04 上安装 MySQL 5.7 教程
- Qt编写守护程序保证程序一直运行(开源)
- 使用Amanda ZRM备份远程MySQL数据库
热门文章
- loj 6085.「美团 CodeM 资格赛」优惠券
- C#:使用UPnP来穿透NAT使内网接口对外网可见
- ASP.NET MVC 缓存Outputcache (局部动态)
- POJ3104(二分搜索)
- 浅析TCP /UDP/ IP协议
- AngularJS:模块
- Mysql教程:[1]下载安装配置详细教程
- 2015.1.8 Left join 左连接
- java selenium webdriver第一讲 seleniumIDE
- Windows10更新后无限重启