51Testing软件测试论坛

标题: 一次精准测试实践 [打印本页]

作者: 海鸥一飞    时间: 2018-5-30 15:47
标题: 一次精准测试实践
敏捷模式下迭代频繁,回归测试时总是不知道变动的范围。
Dev 有的时候也不知道他改了哪些东西,影响到哪些节点,或者是很多人改的,彼此不知道。遇到有代码洁
癖的,改了别人的代码,大家都不知道。
通常情况是,要么测试范围定小了,遗漏了;要么测试范围过大,付出过多代价。
每次回归,Tester 心里总没底,生怕漏了哪里。
如何才能准确定位到变更范围呢?
作者尝试通过对source code 的变动,来达到了解应用的功能模块变化范围。从而制定回归范围和smoke范围。
现在大多数公司用git, 本文就以git 为例。
在git 中,用这条命令,就可以查看source change log.

  1. git whatchanged
  2. 例如:

  3. git whatchanged --since='2 weeks ago'
  4. 就可以得到最近2周所有commit 的信息。

  5. 首先对comments 进行统计。进行词频分析。

  6. def get_words_dict(target):   
  7.   table = {}   
  8.   line, number = re.subn(r"\W", " ", target)
  9.   for word in line.split():        
  10.     if table.has_key(word):            
  11.         table[word] += 1
  12.     else:
  13.         table[word] = 1
  14.   return table
  15. 去除无效的词,自己定义一个list:

  16. remove_words = ['the', 'a', 'bug', 'to', 'of', 'so', 'one', 'more', 'we', 'Update', 'app', 'our', 'issue','want', 'work']

  17. def remove_dict(obj, key):
  18.     if key in obj.keys():
  19.         obj.pop(key)

  20. for word in remove_words:
  21.       remove_dict(words_number, word)
  22. 这个词库可以根据需要增加。
  23. 然后生成一张图表:

  24. def get_words_graphic(wordlist):
  25.     keylist = wordlist.keys()
  26.     vallist = wordlist.values()
  27.     barwidth = 0.3
  28.     xVal = numpy.arange(len(keylist))
  29.     plt.xticks(xVal + barwidth / 2.0, keylist, rotation=90)
  30.     plt.bar(xVal, vallist, width=barwidth, color='y')
  31.     plt.title(u'词频分析图')
  32.     plt.show()
复制代码

图表展示为:

[attach]115930[/attach]
然后将改动的文件统计出来:

[attach]115931[/attach]
为了防止图片展示不清楚,同时还写一份log.
这样,就可以大概知道改动了。如果懂些代码,可以深入到代码里面去看。或者拉着Dev一起看,确定
最终范围。
当然如果Dev的comments 写得够清楚,文件命名很规范,那就更好了。
还可以辅助sourcecode 界面工具辅助查看。








欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2