首页 > 代码库 > 2017.4.7------软件测试的艺术+整理以前的摘记
2017.4.7------软件测试的艺术+整理以前的摘记
2017.4.17
以下内容来自《软件测试的艺术》 第1页——20页。供自己学习使用。
第一章
软件测试:就是一个过程或一个系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。
第二章
测试人员需要有正确的态度。每当测试一个程序时,应当想到的是为程序增加一些价值。通过测试来增加程序的价值,是指测试提高了程序的可靠性或质量,提高程序可靠性,是指找出并最终修改了程序的错误。
1.有人把没发现错误的测试用例称为一次“成功的测试”,而将发现了某个新错误 的测试称为“不成功的测试”。这是本末倒置了。在测试中如果在测试的某段程序时发现了错误,并且错误可以被修复,这将这次的测试称为是“成功”,如果本次测试可以最终确定再无其他的可查出的错误,也可称为是“成功”。所谓的“不成功”测试,仅指未能适当的对程序进行检查,在大多数情况下,未能找出错误的测试被认为是”不成功的“。
2.“软件测试就是证明软件不存在错误的过程”这个定义会带来问题。对于几乎所有的程序而言,甚至是非常小的程序,这个目标也是无法达到的。文中的这句话” 将软件测试定义为发现程序错误的过程,使得测试是个可以完成的任务,从而克服了这个心理障碍。”很好的诠释了软件测试。
3.“软件测试就是证明‘ 软件做了其应该做的‘的过程”这一类的定义也会带来问题。程序即使能够完成预定的功能,也仍然可能隐藏错误,换句话说,当程序没有实现预期功能的时候,错误的清晰的显现出来,如果程序做了其不应该做的,这同样也是一个错误。
总结一下,软件测试更加适宜被视为视图发现程序中错误(假设其存在)的破坏性的过程。一个成功的测试用例,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进
黑盒测试和白盒测试 是两种最普遍的策略。
黑盒测试:(数据驱动的测试或输入/输出驱动的测试)
程序是一个黑盒子,能够确定此条语句存在的唯一方法就是试验所有的输入情况。(穷举输入测试)。随着程序的变大,需要创建无限的测试用例,基本上是不可能的。 如果程序要使用数据存储如操作系统等,问题会变得很困难,所以,不仅要测试所有有效的和无效的事务处理,还要测试所有可能的事务处理顺序。
白盒测试:(逻辑驱动的测试)
穷举路径测试:即将程序中的每条语句至少执行一次。
存在的问题:1.程序中的不同逻辑的数量可能会达到天文数字。
2. 虽然我们测试到程序中的所有路径 ,程序也可能存在着错误,原因:
(1)即使是穷举路径测试,也不能保证程序符合其设计规范。
(2)程序可能会缺少某些路径而存在的问题。
(3)穷举路径测试可能不会暴露数据敏感问题。
软件测试的原则:
1.测试用例中一个必需部分是对预期输出或结果进行定义
2.程序员应当避免测试自己编写的代码
3.编写软件的组织不应当测试自己编写的软件
4.应当彻底检查每个测试的执行结果
5.测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料的输入情况
6.检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
7.应避免测试用例用后即弃,除非软件本身就是一次性的软件
8.计划测试工作时不应默认假定不会发现错误
9.程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
10.软件测试是一项极富创造性、机具智力挑战性的工作。
2.4小结:
软件测试是为发现错误而执行程序的过程
尽量避免编码人员测试自己的程序
好的测试用例能够未发现的错误高度敏感
成功的测试用例能够发现未知的错误
成功的测试需要仔细定义输出输入的期望值
成功的测试需要仔细研究分析测试结果
2017.4.7------软件测试的艺术+整理以前的摘记