测试是为发现错误而执行程序的过程。 软件测试一个破坏性的过程,甚至是一个施虐的过程,也就是第一天说的“找茬”游戏。 当一个输入框让我输入手机号码时,我偏不,我要输入非手机号码,甚至不填。 当界面提示让我点击第一个按钮时,我偏不,我要点第二个,第三个。 这和开发是一个截然相反的工作,开发的思路是创造,把功能做出来,正常运行; 而测试的工作是找茬,故意让程序不正常运行,生活中经常挑别人的毛病的人,也许更适合做测试。
如果通过设计一条用例,成功的让程序触发某种异常和错误,那就可以让团队趁早发现这个问题,从而在产品正式发布之前,让软件有一个更好的质量。 测试人员是靠 bug 来提升话语权的,如果有开发宣传“我写的代码没有bug", 那我们反驳的最好方式是多找几个 bug 出来。 黑盒测试是一种重要的测试策略,所有刚入行的测试首先就是把黑盒测试玩得非常顺手。使用这种测试方法时,将程序视为一个黑盒子。测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的环境条件。 而白盒测试是测试程序的内部机制和结构,能够看到具体的代码,对测试人员的要求更高。
黑盒测试又称为数据驱动的测试或输入/输出驱动的测试。 因为关注不到具体的代码逻辑,所以只能控制盒子外面的数据(输入和输出)。 穷举法是把所有可能的输入条件作为测试用例,但是一个功能的输入基本上都是无限的,使用穷举法意味着要对每个单一功能设计无限个测试用例,这当然是不可能做到的。 比如说用户界面中需要你输入一个手机号用来登录,去测试的时候不仅需要输入正确的手机号,而且还需要测试输入的不是手机号时,程序如何反应。 不是手机号的数据你永远都举不完。 穷举法不会用在实战当中的第二个原因是它不经济。 就算我们可以把所有的数据都列举出来,也没有足够的时间和精力对每个数据去执行测试。 在测试一个软件时,一定要制定好策略。 如果所有的测试人员都不精通代码,那么最好以黑盒测试为主,白盒测试会花费大量的人员培养成本。 在设计用例的时候要根据具体的业务对测试进行划分,灵活使用各类用例设计方法。什么是软件测试
黑盒测试要精通
穷举法没用
好的测试策略是经济高效的