做白盒测试调研走查代码时,往往会涉及下面两点:
·算法太复杂
·一堆设计模式,看着费劲,不明所以
正如singleton里,代码基础不好又没接触过单例模式的,就很有可能就把那个static给忽略了,还会埋怨开发闲的蛋疼搞这么个东西。
所以,在TestBird一个优秀的测试要具有一定的开发经验。最好是你能知道产品代码这么设计、算法这么搞,会有哪些隐患问题。
当然现状下这些难度有点大,所以退而求其次应该能看懂,至少开发给你讲后能听懂,代码里的各种算法和设计模式。
下面就简单介绍一下这方面的测试经验:
·让算法的实现者给你讲解一遍这个算法,最好能对着代码讲,要是讲不清楚那代码质量可想而知,讲清楚了往往就能发现一两个Bug;
·借鉴一些已有的数据,用来测试你的算法(比如以前测试URL时,找网址导航、淘宝之类网站抓几百个URL测试下,至少能保证大部分情况是OK的)
·用随机算法生成一些测试用例(这个是以前做算法比赛得出的经验,代码不正确,随机生成几百几千条Case看看,一般都能找到错误)
还需要了解23种常见的设计模式:
创建型
1.Factory Method(工厂方法)
2.Abstract Factory(抽象工厂)
3.Builder(建造者)
4.Prototype(原型)
5.Singleton(单例)
结构型
6.Adapter Class/Object(适配器)
7.Bridge(桥接)
8.Composite(组合)
9.Decorator(装饰)
10.Facade(外观)
11.Flyweight(享元)
12.Proxy(代理)
行为型
13.Interpreter(解释器)
14.Template Method(模板方法)
15.Chain of Responsibility(责任链)
16.Command(命令)
17.Iterator(迭代器)
18.Mediator(中介者)
19.Memento(备忘录)
20.Observer(观察者)
21.State(状态)
22.Strategy(策略)
23.Visitor(访问者)
内容大概就是这些了,所以大家按需要或者兴趣去学习吧,APP测试等,建议广度上都要了解一点,深度上可以有所取舍。