提效必会:逆向思维在解决问题中的应用

发表于:2021-12-03 09:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:云竹    来源:51Testing软件测试网原创

  一、问题提出
  项目现场人员经常会出现如下场景:
  现场人员给家里支持人员打电话或发邮件:“系统发布失败,出现×××××错误,现场无法解决,错误日志已发过去了,请支持”。
  支持人员看过日志,回复:“你把××××修改一下,重启下试试看好用不了”。
  现场人员:“修改了,还是不好用……”
  支持人员:“哦 ,那你在检查一下×××××配置的是否正确,看看是否哪配错了。”
  现场人员:“都检查好几遍了,没发现错误……”
  支持人员:“家里这边没有出现你这个问题啊,启动都正常”
  现场人员:“那好吧,我再试试看吧……”
  ……
  上面只是举了一个简单的例子,项目实施过程中可能会遇到各种各样的问题,通常都是按照上面场景描述的方式进行问题解决的。一些常规的问题,通过一些已经积累的经验,往往可以直接解决,但是有些问题,由于没有遇到过,解决起来只能靠多次的尝试,家里和现场一来二去之后,问题可能还是没有得到解决,或者又出现了新的问题,效率大大降低。
  本文介绍了一种逆向思维的问题解决方式,可以较好的提升效率,已在多次问题解决过程中得到应用,效果显著。

  二、应用实例
  常规的问题解决的思维方式是这样的:
  “修改×××××,看看问题是否解决,如果没有解决,再修改×××,直到问题解决”,这种方式是一种正向思维。
  逆向思维的方式是这样的:
  “修改××××,看看是否出现问题,如果没有问题,再修改×××,直到问题出现”。
  逆向思维解决问题的方式的重点是“重现问题”,而不是“解决问题”,想尽一切办法使问题重现,总会有解决方案。
  按照逆向思维的方式,上面提到的场景就变成这样了:
  现场人员给家里支持人员打电话或发邮件:“系统发布失败,出现×××××错误,现场无法解决,错误日志已发过去了,请支持”。
  支持人员看过日志,回复:“根据你的错误日志,我们经过多次尝试,重现了你的错误,通过调整××××,可以解决这个错误,你试试看”。
  现场人员:“好用了,非常感谢!”
  通过两种思维方式的对比可以看出,逆向思维的处理方式只用了很少的回合,就解决了实施现场的问题,效率明显提升。正向思维是指导现场人员去“直接解决问题”,逆向思维是根据现场人员的反馈去“重现问题”,从而“间接的解决问题”。
  下面再举几个正向思维和逆向思维的例子:

  ·实例一
  实施现场出现页面折线图中文乱码问题,现场环境是linux+websphere.两种思维方式对比如下:
  正向思维:指导现场调整linux的locale设置、websphere的jvm字体设置、websphere的jvm参数,现场反复修改测试,始终都还是乱码,问题没有得到解决。
  逆向思维:家里有linux+websphere环境,但折线图中文显示正常,没有乱码,经过几轮调整测试,终于也出现了乱码,和现场情况一样了。最终确定是由于linux自带的字体必须支持中文,其他设置都不是问题关键。现场检查了一下,发现linux自带的字体中刚好就没有安装中文字体,于是问题很快就解决了。

  ·实例二
  实施现场反馈,数据导入功能,当导入500条记录时,可以导入成功,当导入1000条记录时,就会失败,现场环境是linux+websphere,而windows+tomcat环境下,1000条记录都可以导入成功。家里也搭建了测试环境(linux+websphere),1000条也可以导入成功。经过几番测试和排查,都没有找到问题在哪,现场人员怀疑和平台有关。两种思维方式对比如下:
  正向思维:检查代码、检查现场环境,查找各种可能的解决方案并不断尝试,看问题是否能解决。
  逆向思维:在家里的linux+webpshere环境下重现问题,重现现场出现的错误日志。通过分析错误日志,应该是在读取到某条导入数据时,读取到的日期格式有问题,程序无法识别导致出错。但同样的导入文件,家里环境中可以正常导入。为了重现错误,故意将导入文件的第一条记录的日期格式改成错误的格式,执行导入,结果日志中出现了和现场一模一样的错误信息,到此已经可以确认就是导入文件中的某些数据有问题。开发人员完善了代码,将导入的代码中加入了日志输出,如果有数据记录导入失败,则输出该条记录的信息。现场更新代码后再进行测试,日志中果然出现了一条记录的错误日志输出信息,原来该条记录中有汉字显示成了乱码,影响了整条记录的格式。家里的导入文件是从现场拿来的,同样那条记录中就没有乱码,这也说明了实施现场问题的复杂性,什么稀奇古怪的情况都可能出现。

  三、总结
  当正向思维方式很难解决问题时,不妨尝试一下逆向思维方式,二者需要相辅相成,灵活运用。采用逆向思维来解决问题,往往需要搭建一个用于重现问题的环境,需要反复进行假设-测试论证-再假设-再测试论证的过程,直到问题出现。对于实施项目来说,很多时候现场调试解决问题非常麻烦,逆向思维的这种方式实际上是把更多的测试和验证工作放到了家里,给现场的只是一个最终可以解决问题的结果,不仅仅是提升了支持的效率,相信现场人员对这种支持方式会更加满意。

  版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号