在软件测试的面试中, 经常会碰到类似的问题。

比如:如何测试一个杯子, 或者如何测试一只笔。 要求你设计20个以上的test case.

这类的面试题目,是考察面试者是否熟悉各种软件测试方法,设计test case的能力, 以及test sense。

首先应该反问下面试官, 需求是什么样的,比如大概是个什么样的杯子。
我回答这类问题的思路, 从软件测试的各种不同方法来联想。

具体如下:

功能测试(Function test)

能否装水,
除了装水, 能否装其他液体。比如可乐,酒精
能装多少ML的水
杯子是否有刻度表
杯子能否泡茶,泡咖啡
杯子是否能放冰箱,做冰块
杯子的材质是什么(玻璃,塑料等)

界面测试(UI Test)

外观好不好看。
什么颜色
杯子的形状是怎么样的
杯子的重量是多少
杯子是否有异味
杯子的图案是否合理

性能测试(performance test)

能否装100度的开水 (泡茶)
能否装0度冰水
装满水,放几天后,是否会漏水
杯子内壁上的涂料是否容易脱落。
杯子上的颜色是否容易褪色或者脱落
是否容易碎

安全性测试(Security test)

制作杯子的材料,是否对人体有伤害
放微波炉里转的时候,是否会爆炸, 或者杯子是否会熔化
从桌子上掉到水泥地上是否会摔碎
杯子是否容易长细菌
杯子是否有缺口,会划坏嘴巴
杯子内壁上的材料,是否会溶解到水中
杯子破碎后,是否会对使用者造成伤害

可用性测试(Usability Test)

杯子是否容易烫手
杯子把手是否好端,好拿
杯子的水是否容易喝到
杯子是否有防滑措施