二八原则始于Pareto原则,Pareto原则中文翻译为帕累托原则,由意大利经济学家Villefredo
Pareto提出,他研究发现:社会财富的80%是掌握在20%的人手中,而余下的80%的人只占有20%的财富。延伸一下,就是“至关重要的少数,微不足道的多数”。二八原则告诉我们,做事要抓重点。在软件测试中,懂得二八原则可以帮助我们节省很多精力!
1.80%的错误是由20%的模块引起的
简单、容易的模块或功能是很少引入过多Bug的,而对于存在复杂逻辑的一些关键模块往往会引起系统80%的错误。只有关键模块稳定了,整个系统才可能真正的健壮和稳定。
这个原则对于测试来说就是站在用户角度(而不是研发实现的角度),正确地选择重要功能模块作为测试的重点,不偏离方向。
2.80%的测试成本花在20%的软件模块中
设计测试用例时,常会用日产多少条用例来衡量工程师的*。用例的多少与需求量有关,而影响软件架构设计的需求描述往往是比较少的。在这种情况下,设计测试用例时特别需要结合软件的概要设计、详细设计一起考虑。如果用例设计人员为了达到用例的数量,通过大量复制用例,修改个别字眼,而没有真正去设计高效的测试用例,那么用如此低效甚至更多的用例数量来对待复杂的20%的核心模块,在测试执行过程中必将导致一部分关键Bug找不出来。
3.80%的测试时间花在20%的软件模块中
对于复杂的模块,前期的测试设计和思考可能会耗费大量时间,而产出的用例量可能并不大。对于复杂的系统,特别是对于全新系统,必须舍得投入充足的时间来优先考虑设计,前期方案、用例设计的时间越短,后期的风险越大。
在项目进展到一定阶段后,增加人力并不一定能解决缩短时间的问题。例如,如果复杂且核心模块在项目的后期才开始执行测试,由于Bug较多,而项目又需要短时间把版本稳定下来,通常的做法是加人。然而加入的新兵需要一段时间的熟悉期,必要时还需要老兵来带,这本身又会影响到老兵的*。另外一些性能测试、自动化测试*也只有等版本稳定后才会有更好的效果。