1.实现讲解人
由开发同学负责讲解。
由测试同学提出需求,由开发同学讲解。
由测试同学提出需求,由团队中有Coding能力的测试同学(一般是测试开发工程师)进行代码调研,进而进行讲解。
2.实现讲解的准备
开发同学:将实现过程提取准备为电子版,以便在会议上快速讲解完成。
例如:搜狗浏览器页面静音代码实现流程图,其中的技术细节和测试重点由开发提前准备了电子版内容,在会议上进行讲解。
测试同学:
在沟通功能实现前,测试同学提前做一些背景知识的了解,例如上例中Hook技术、页面播放声音的常见写法。
提前准备好要沟通的问题列表,可以记在本子上或电子版,沟通时一个接一个地提问,免得现想问题浪费时间。
3.实现讲解中的注意事项。
a.测试同学提问的问题建议不要太过开放性。
在沟通实现时的第一个问题,如果是比较”大而泛”,沟通结果一般不会太理想,比如:“Cookie同步功能是怎么实现的?”
开发同学更喜欢回答一些具体的、技术性的、非开放性的问题。如果我们换个提问方式:
QA:浏览器不同进程之间是如何传递数据的?
DEV:通过发送消息的方式,使用FileMappming进行多进程传递。
QA:传递的时机是什么时候?
DEV:用户在浏览器中登录网站时,触发了Cookie的读写操作时。
QA:浏览器是怎么检测到用户产生了登录行为?
DEV:浏览器对网络返回值中的Set-Cookie字段进行了检测,一旦发现该字段,则会解析其内容并进行保存和同步操作。
……(借着以上问题继续展开沟通)
b.提问问题的方式很重要。
以前小编和一位开发大牛聊过测试和开发沟通实现的议题,开发大牛表示,他们更愿意测试同学是思考后带着一些想法来沟通的,即便这种想法是错的,也是乐意欢迎的。所以,我们可以准备一些自己对这个功能实现过程的猜测,然后用自己猜测的功能实现来进行提问。
例如:我们不知道Cookie数据如何进行多进程传递时,我们可以猜测Cookie数据是不是保存在数据库中,不同进程读取同一份数据库来进行数据的交互,然后带着这种猜测来进行发问:
QA:“多进程数据同步是不是用数据库进行数据交换的?”
DEV:“通过数据库进行数据交互可能存在这锁的问题,所以我们不是通过这种方法而是用FileMappming文件映射的方式……”
……(顺畅地交流起来)
c.纸上的交流比口头交流好。
在沟通过程中,简单的问题可以口头交流,但是复杂的问题建议在纸上画着流程图或者程序的框架图会更加容易交流沟通。所以,避免只停留在口头上的沟通。