测试工程师日常工作中,经常会与其他团队角色进行沟通,这其中难免会出现一些沟通的问题,这些问题需要更多地沟通技巧来解决。本次小编想跟大家分享一下:如何与开发沟通功能实现。
  某测试同学为了测试一个功能,需要了解功能的实现逻辑,所以她满脸笑容地找到开发同学后说道:”你给讲讲Cookie同步是怎么实现的吧!”
  开发同学不耐烦道:“说了你也不懂。”
  以上情景相信不少同学遇到过吧,小编分享下自己在与开发沟通功能实现方面的技巧:
  一、沟通的时机很重要。
  小编以前做开发的时候,大的感受是来自于实现功能的压力巨大,特别是项目比较紧急的时候,所以当开发同学正在赶一个需求时,需要注意力高度集中,特别是遇到棘手的问题。此时,如果测试同学去沟通实现,很有可能碰一鼻子灰。
  建议:在对方有空的时候或者精神相对不紧张的时候,沟通一般会比较顺畅。
  二、提前准备很重要。
  小编见过有些测试同学在沟通实现前,没有对要沟通的功能做一丝的准备和思考,直接找到开发同学说你给我讲讲这个功能如何实现的,这个时候开发同学可能要花大量的时间先做基本的背景知识普及和讲解,而本身应该沟通的功能实现却被忽略了,而且测试同学后续产生的提问也是有边没边地乱冒一通,自然是效率低下。
  建议:
  1.在沟通功能实现前,测试同学提前做一些背景知识的了解,例如:在上例中,我们要了解下Cookie字段有哪些;Cookie一般在网站的登录中使用;Cookie分为文件Cookie和内存Cookie等等。
  (以上图示是测试同学在进行DNS劫持测试前,对DNS劫持的了解画成了图例)
  2.提前准备好要沟通的问题列表,可以记在本子上或电子版,沟通时一个接一个地提问,免得现想问题浪费时间。

  (以上图示是测试同学在沟通前准备的问题列表,黄色底色为问题,绿色底色为问题答案)
  三、第一个问题很重要。
  在沟通实现时的第一个问题,如果是比较”大而泛”,沟通结果一般不会太理想,比如:“Cookie同步功能是怎么实现的?”
  开发同学更喜欢回答一些具体的、技术性的、非开放性的问题。上例中如果我们换个提问方式:
  QA:浏览器不同进程之间是如何传递数据的?
  DEV:通过发送消息的方式,使用FileMappming进行多进程传递。
  QA:传递的时机是什么时候?
  DEV:用户在浏览器中登录网站时,触发了Cookie的读写操作时。
  QA:浏览器是怎么检测到用户产生了登录行为?
  DEV:浏览器对网络返回值中的Set-Cookie字段进行了检测,一旦发现该字段,则会解析其内容并进行保存和同步操作。
  ……(借着以上问题继续展开沟通)
  建议:沟通时第一个问题不要提开放性的问题。
  四、提问问题的方式很重要。
  以前小编和一位开发大牛聊过测试和开发沟通实现的议题,开发大牛表示,他们更愿意测试同学是思考后带着一些想法来沟通的,即便这种想法是错的,也是乐意欢迎的。所以,我们可以准备一些自己对这个功能实现过程的猜测,然后用自己猜测的功能实现来进行提问。
  例如:我们不知道Cookie数据如何进行多进程传递时,我们可以猜测Cookie数据是不是保存在数据库中,不同进程读取同一份数据库来进行数据的交互,然后带着这种猜测来进行发问:
  QA:“多进程数据同步是不是用数据库进行数据交换的?”
  DEV:“通过数据库进行数据交互可能存在这锁的问题,所以我们不是通过这种方法而是用FileMappming文件映射的方式……”
  ……(顺畅地交流起来)
  五、纸上的交流比口头交流好。
  在沟通过程中,简单的问题可以口头交流,但是复杂的问题建议在纸上画着流程图或者程序的框架图会更加容易交流沟通。所以,避免只停留在口头上的沟通。