会做的人不一定会教。
1.软件诫律
1)汝应使用大量输入反复锤炼汝之应用程序
虽然前面尽量使用合适的输入集合来面对无穷输入,但总会有遗漏。因此可使用大规模的随机测试,通过自动化的方式,进行健全性检查。
2)汝应贪图汝之邻居的应用程序
这里的邻居是指其它的应用程序或操作系统,你应该不希望你的应用程序做了某些事导致别的程序失效。
3)汝应亲自寻找睿智的预言家
尽量将测试基准自动化,测试基准(预言家)了解在给定特定输入和环境条件组合的情况下,应用程序应有的行为。
4)汝不应崇拜无法重现的失效
这条诫律的意义在于:第一,尽最大的努力注意并记住对软件采取的动作次序,同时记住应用程序的响应;第二,考虑使用调试器之类能追踪动作和软件状态的工具。
5)汝应尊重汝之模型和自动化测试
智能的随机测试和自动化测试合二为一,其结果就是基于模型的测试。测试模型是关于应用程序做些什么和怎么去做的点滴智慧的结晶。
6)汝应利用开发人员的过错与他们作对
理解开发人员的错误模式,从而避免那些错误。如果某个特定的开发人员倾向于写死循环,那么我们需要保证在该开发人员编写的每个模块中都测试这类错误。
7)汝应醉心于应用程序谋杀
这条诫律的教育意义在于每一个好缺陷背后,都可能隐藏着一个更好的缺陷。在你确实了解缺陷的影响程度和破坏力之前永远不要停止探索。
8)汝应保持安息日(指产品发布时刻)的圣洁
什么时候将应用程序发布给用户,除了质量之外还有许多因素需要考虑。我们不应该抱怨发布日期,而是应该提前警告后果。
9)汝应贪图开发人员的源代码
应该像一个测试人员而不是像开发人员那样利用源代码。阅读源代码时,我工作列表上的第一项就是寻找错误处理代码和能为我们指明错误代码正在执行的对话框。从用户界面上最难见到或得到的代码就是错误处理代码。
2.测试错误代码
一般开发人员写两种代码:功能代码和错误代码。软件应合理地回应错误的输入,我试图区分三种不同的错误处理程序:
a)输入过滤器(Input Filter):可以用于防止错误的输入进入被测试的软件。
b)输入检查(Input checking):用于保证软件不会使用错误的输入。每当有输入进入系统时,开发人员就插入一个IF语句在处理输入前保证该输入是合法的。
c)异常处理程序(Exception handler):用于清理软件因为处理错误输入而导致的失效。
在执行测试时必须考虑输入的如下属性:
a)输入类型:如果要求输入为整数,则可尝试输入一个字符。
b)输入长度:输入过多的字符
c)边界值
3.真正的职业测试人员,请上前一步
经常听到测试人员抱怨地位低,得不到应有的尊重。但发现在技术领域,只有当一样东西值得尊重时,才能被尊重。
1)被尊重的团队的共同特性:不断超越自我,质量至上(对产品的贡献最大化)、持续教育、为测试职位聘请有学位的工程师
2)建议总结:命运掌握在自己手中,力争自我超越,认识到自己对一个项目的重要性。
附录2的上篇到此为止,主要包含软件诫律、测试错误代码和真正的测试人员如何获得尊重,总结成一点就是自我超越。