记录和领导的一次谈话:一名15年经验的QA专家对测试的理解
测试的核心:
- 对业务的快速及准确理解,以及testcase的设计能力。测试的主要工作就是质量保障,所以非常考验testcase的深度和广度是否合理
bug lifecycle:
- 测试左移,在需求阶段就找到bug,修复成本最低。那么如果在需求同步的时候,就可以根据需求开始写测试用例了。这样开发在开发完成后,也可以用QA写的测试用例自测一次,一般unittest由开发来完成。
测试用例书写:
- 测试用例有很多注意点,比如作为新人,测试的设计能力可能稍弱,那么就要详细一些,将测过什么功能以及什么点详细列出来,这样别人才能知道你测试了哪些地方,有哪些地方是没有考虑到的
测试用例颗粒度:
- 测试用例的颗粒度也需要把握,比如一个页面一开始被开发出来,所有人对这个页面都不了解,那么肯定需要全面的测试一次;如果到了后面的版本,只需要regress basic function,保证基本功能能够正常使用即可。
- 再比如说有一些公共组件,如果别人或者自己之前已经测试过了,那么就不需要测试的太细,只需要保证基本功能正常使用即可
测试需要做到的:
- 测试要能够将被测试的东西背后的实现原理有清晰的了解,以及要能清楚的说出自己测试了哪些地方,是怎么测试的。如果连这个都不能清楚的说出来,那么别人会怀疑你是否真的进行了完整的测试。
资深测试和普通测试的区别:
- 资深级别的测试可以在客户出现bug的时候,跳过开发直接跟客户对接,并检查出哪些地方出现了问题;并且资深测试可以根据自身的经验进行探索性测试,但一般探索性测试不会写进testcase中
测试的一些技术:
- 安全测试,专业度较高
- 性能测试,这一块需要的知识非常难而且广,比如测试多线程,就需要准备海量的测试数据,否则无法测试出一些问题,比如死锁之类的东西
- 自动化测试,这一块可以分为UI端和server端
- UI端可以看selenium之类
- server端有http,qtp之类的东西
- 但是测试的核心依然是testcase的设计能力,毕竟自动化测试无法取代手工测试,只能说是一种节省时间和成本的技术