2017.4.7------软件测试的艺术+整理以前的摘记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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------软件测试的艺术+整理以前的摘记的主要内容,如果未能解决你的问题,请参考以下文章
《前端内参》,有关于JavaScript、编程范式、设计模式、软件开发的艺术等大前端范畴内的知识分享,旨在帮助前端工程师们夯实技术基础以通过一线互联网企业技术面试。