搜索错误作为一种生活方式


静态代码分析器的开发以及超过六年的开源项目质量之争,不免影响了我下班后与程序的互动。 不幸的是,我经常遇到各种错误,更不幸的是,几乎不可能影响到这一点。 我决定收集一些有关有趣的错误及其修复或忽略的故事。 我为您提供了一种替代格式,用于有关在通常填充PVS-Studio博客的程序中查找错误的文章。

引言


在日常生活中,我们已经比计算机应用程序更频繁地使用网站和移动应用程序。 这个领域中很少有开源项目。 大多数项目是具有多个支持热线的大型公司的产品。 通过第一条支持热线报告错误是几乎没有用的活动。 该问题在银行应用中尤为严重。 那网站呢? 网站所有者通常根本没有开发团队。 而且,如果通过站点提供服务,则与这些服务的管理者之间的交流会比与第一线支持更差。 最有趣的故事将在下面。 希望他们帮助公司关注其软件产品的质量。

网站上的错误


2x2电视频道



也许2x2是我观看的唯一电视频道。 我没有连接任何电视,当现场直播出现在网站上时,我感到非常高兴。 拥有一台可以访问互联网的电视,这对我来说是在线观看电视频道的理想解决方案。 但是实际上,它要复杂得多。

通过电视上的浏览器实时播放不起作用。 因为 向开发人员报告错误是我职业的一部分,我很快在官方网站上找到联系人并尝试报告问题。 你为什么要尝试? 在两个月内,无法从两个邮寄地址收到任何答案。 而且VK小组没有回答任何明智的问题(在社交网络上推广该小组的营销人员显然不适合我使用不工作的网站)。

但是我没有绝望。 问题显然在广播中,我可以跟踪它。 她来自Rutube服务器。 尝试联系他们的专家花了大约一个月的时间。 最成功的交流是与VK的Rutube组的管理员进行的。 我得到了系统管理员的联系。 他的同事迅速回复了这封信,我们同意连接以记录日志。 事实证明,未为该连接的客户端(带有Tizen的电视)配置服务器。 解决问题花费了2个小时。 感谢Rutube的Alexei Lebedev和VK小组的管理员,他们是在整个“联系人”链中对工作负责任的唯一人。

MaMa Mia餐厅



MaMa Mia网站上,您无法在线支付订单。 至少对我来说没有用。 后来发现的原因是代码质量差。 但是让我们按顺序进行。

篮子完全成型后,“下订单”按钮没有显示任何生命迹象。 然后在邮件中我发现了这一点:


每次单击“空闲”按钮都会形成一个新的顺序。 如您所见,我没有否认自己会彻底测试此错误:D

该网站以及除电话以外的任何其他联系人都没有反馈表。 当然,那里的经理人远没有这样的问题。 与这家餐厅的VK组情况相同。 我或多或少没有得到相关的联系。

实际上,这对于企业来说是一个严重的问题,当某些缺陷(尤其是财务方面的缺陷(我想为订单付款,但不能支付))对于管理层而言仍然是看不见的。 而且,即使我们自己最近也遇到了类似的情况,因为试用密钥的请求表中断了五天。 对于丢失的用户,我们深感抱歉:(而且在餐厅里,显然不是。

在没有收到与管理人员交流的任何反馈之后,我打开了浏览器控制台并开始寻找(顺便说一句,我几乎不了解Web开发):

是的,这是一个未捕获的异常! 真是美。 这是静态分析仪可以提供帮助的地方。

使用几个查询,搜索引擎设法发现这是Yandex.Metrica的计数器。 在任何外部组件发生故障之后,页面的解释就停止了。 正如他们所说,为开发分配了很多卢布...那么为什么抛出异常? 我的浏览器中安装了Kaspersky Protect扩展。 显然,禁用各种信标和计数器可以防止跟踪,默认情况下已启用。 这就是问题的原因。 然后,我在另一个技术更先进的站点上点了食物。

不幸的是,这个问题很普遍。 仅在此事件发生后,我才意识到我遇到的其他站点的行为令人费解。 希望本文的Web开发人员能有更多的经验。

LK Rostelecom




大概每个俄罗斯人都与Rostelecom的代表进行过“有趣的”交流。 但是我的将是一个小错误。 作为支持,他们回答说他们不这么认为,但是程序员会理解这个笑话。

我个人帐户的屏幕截图:

缩写的“ n”是什么? 没错,这是NULL !..因为 并非每个人都有一个中间名,您不能指定它:

该数据库存储一个NULL值,Rostelecom的代表认为在屏幕上显示该值是正常的。 我认为这完全是异常的。 也许我只是想作为一名C ++程序员,而这个值使我感到震惊:D

行动应用程式


俄罗斯铁路旅客



俄罗斯铁路移动应用程序中遇到一个有趣的错误。

来自移动应用程序的屏幕:

我阅读了问题的答案,但一无所知。 这些文本是完全不一致的。 但是一页之后,一切变得清晰起来:

文档段落存储在数组中,并以相反的顺序显示。 开发人员用代码中的排序或循环计数器弄乱了东西。 在最新版本的应用程序中,此错误已修复。

VTB在线



这是一家很棒的银行,拥有便捷的应用程序。 但是显然在2019年夏天,“有效”经理来到团队,申请失败了。 对我来说,最大的好处就是方便快捷的支持。 但是在2019年夏天,该机器人在支持聊天中开始了实验。 这个机器人非常容易出错。 在至少3个月内,支持聊天中出现了严重的不同步。 没有人回答消息,聊天为空,重新启动应用程序后,发现聊天中充满了机器人消息,但仅在重新启动后才显示。 但是随后该会话已经关闭,并在出现下一条消息时重复了相同的错误。 通过电子邮件,VTB支持始终能够迅速做出响应,但是本质上并没有做任何事情。

对我而言,最后一根稻草是支持聊天中的另一个错误,该错误尚未修复:

该应用程序愚蠢地不会从运行该应用程序的电话下载屏幕截图。 这是史诗般的失败。 我拒绝了银行卡,并将银行中的剩余活动减至最少。

Sberbank在线



可能是俄罗斯银行最多的银行。 在我多年的实践中,修复已确认错误的平均时间为1年

我认为这是最糟糕的情况。

传输用于支付住房和公共服务费用的计量设备的读数时,令人不愉快的惊喜等待着您:

立刻出现了一个问题,为什么我的数据不被接受,但是看下面的屏幕截图可以解释一切:

我将另外解释: PU读数带有点,并且在键盘上输入时只有一个“逗号”符号。

坦率地说,该错误干扰了该应用程序的使用,我经常联系支持人员进行修复。 自发现以来,该漏洞持续了6个月 (2月至6月)。 然后,在7月更新中,通过打开标准键盘对其进行了修复。 但这还不是故事的结局! 下个月(八月),在应用程序的下一次更新中,返回的键盘没有所需的字符! 我不知道开发团队会发生什么,我必须进行这样的更改,但是我停止使用银行了。 这是许多错误之一,实际上并没有修复。

与代码中的搜索错误连接


所描述的问题和错误的出现具有某些原因。 这些是开发程序以及组织员工整体工作过程中的缺陷。 从编写代码到将应用程序交付给用户,有几个步骤。

首先,已确定的问题是测试部门的批准。 在大型公司中,这些通常是大型测试团队。 但是它们的有效性会受到多种因素的影响。

导致测试人员工作恶化的重要因素之一是即使在编写代码阶段也可以纠正的错误。 处理发现的错误需要花费一些时间。 但是其中一些可能无法到达测试人员,从而节省了测试人员的时间。 他们会把它花费在更具生产力和更高水平的测试上。

因此,我们PVS-Studio代码分析器的开发人员团队推广了静态分析的方法。 这是软件开发阶段,需要将应用程序转移到测试部门。 根据我们的经验,大多数错误都是开发阶段的缺陷。 而且它们可以在早期修复,从而节省时间和金钱。

不幸的是,与开源程序不同,这里没有办法独立检查代码是否有错误。 但是,如果代码是用C,C ++,C#或Java编写的,那么将这些命令转到站点并在代码上运行分析器将非常有用。 对于开源程序,此工具做出了很大的贡献

结论


我不会停止注意到所使用软件中的错误。 这可能不是最糟糕的事情。 我有在电影院工作的朋友(动画)。 因此,他们在观看动画片时会注意到错误,这很不方便。 我认为,这甚至更糟。 与素材不同,至少可以修改程序。

如您所见,有了用户支持,一切都变得很糟糕。 而且,这对于大公司来说是典型的。 他们几乎不可能交流某些东西并分享他们的经验。 参加开发人员会议时,我取得了一些成功。 大型公司经常出现在这里,有些问题确实可以讨论和解决。

如果您喜欢与错误和故事复习的新格式,那么我将一如既往。

Source: https://habr.com/ru/post/zh-CN483742/


All Articles