1、黑盒测试与白盒测试各有哪些优缺点,应该如何结合才能解决漏洞和冗余问题? 答:黑盒测试与软件如何实现无关,测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间,但测试用例之间可能存在严重的冗余,还会有未测试的软件漏洞。白盒测试局限于已经完成的代码行为当中,离代码太近。如果黑盒测试结合白盒测试的覆盖率指标执行,冗余和漏洞问题都会被发现并解决。如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用例中存在漏洞。
2、简单描述一下软件测试工程师一般会承担的一些具体工作。 答:(1)检视代码、评审开发文档(静态测试方法)
(2)进行测试设计、写作测试文档(测试计划、测试方案、测试用例等) (3)执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正 (4)通过测试度量软件的质量
3、程序员应避免检查自己的程序,为什么? 答:(1) 程序员从来不会承认自己写的程序有错误
(2)程序员的测试思路有明显的局限性
(3)多数程序员没有经过严格正规的职业训练,常忽视测试
(4)程序员无良好的BUG跟踪和回归测试的习惯
4、增量式集成测试的策略分为自顶向下、自底向上和混合式三种,请简述自底向上与自顶向下集成测试的优缺点?
答:(1)自顶向下增量式测试:
—主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到系统的框架。 —主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示测试数据有一定困难。
(2)自底向上增量式测试: —优点在于,由于驱动模块模拟了所有调用参数,即使数据流并未构成有向的非环状图,生成测试数据也无困难。
—主要缺点在于,直到最后一个模块被加进去之后才能看到整个程序(系统)的框架。5、如果软件执行了动态测试,静态测试就是毫无意义的,这句话是否正确?为什么? 答:这种说法是不正确的。静态测试和动态测试之间并不存在哪种方式更加有效的问题.,两者的关注点不同,能够发现问题的程度也不同。静态测试一般关注的是程序结构、逻辑以及代码的风格,而动态测试更多关注结果与预期的比较。这二者不能够完全一个替代另外一个。针对不同的软件和不同的潜在问题,有可能是静态测试容易发现,也有可能是动态测试更加容易发现.例如,诸如代码结构方面的问题,在动态测试中就难以发现,而在静态测试中就一目了然.