前端日常开发 0 BUG 自测清单

889 阅读4分钟

工程师在日常工作中,提交的代码会出现 BUG,通常是因为没有详细的自测过程,使用代码形式的 TDD,不太现实,即使是在时间充分的情况下。以下是我在实际工作中总结的自测清单,用了这一套清单自测后,我提交的代码确实实现了很大概率的 0 BUG,才作分享。测试同志多次找不到 BUG,表示让我不要抢了他们的饭碗。😃

  • 类型驱动编程,语言级避免错误的产生与发现脱节;
  • 用例驱动编程:清晰的用户流程 & 自测用例,尤其是跨页面间交互(跳转),这在写代码前就得有,应该成为一个习惯,这是个好习惯;
  • 不可拆分的最小化单位逻辑(单一逻辑),细节逻辑、控制流等逐项检查;
  • 抓包确定实际传输的数据是否正确:传出的数据、获取的数据,或者说任何隐性的东西(程序怎么做的)都要能一五一十看到;
  • 开发阶段,通过 Server-Timing 响应标头将特定于请求的计时数据从服务器传递到浏览器,例如,可以指示在数据库中查找特定请求的数据所花费的时间 。在调试由于服务器速度缓慢而导致的性能问题时,这可能很有用。这里的性能问题,可能会被当作前端的问题;
  • 检查网站的被动响应情况,如:通过开发者工具,清除网站数据,看看网站是如何反应的;使用应用期间,切换到别的应用,再切换回来,查看交互是否符合预期…… 类似被动情况有很多,可收集列成清单;
  • 展示类组件必须严格分离布局、元素 2 部分,只有极其简单或者后续不存在维护需求的情况下,可以耦合它们;
  • 再三确定、协调微交互、动画;
  • 按钮连击检查;
  • 按钮填充纯色检查点击区域,并且最大化点击区域;
  • 不仅仅是按钮,任何需要手动触发的位置都可根据实际情况最大化触发区域;
  • 类似单选场景,相同选项避免重复执行、状态更新等程序;
  • 是否需要自动滚动到顶部、指定位置;
  • 统一控制页面滚动结构,定制浏览器 / Webview 自身的 touchmove 处理策略;
  • 多宿主检查,跨浏览器,跨 WebView(小程序 Webview / 原生 App Webview,虽然同类);
  • 多规格屏幕模拟出血测试,不同浏览器出血区域,自建 WebView 出血区域,键盘抽屉打开(滑出)等;
  • 视觉还原对比,如:文字颜色、尺寸等,相同位置要在不同浏览器测试;
  • 划定、分级宿主,逐渐增强,或优雅降级,有优先,忌最开始就需要全面的支持;
  • 避免使用 废弃特性
  • 文案再三确认;
  • 过滤动态内容,无论用户提供的,还是后台服务提供的,还是动态生成的,如:文本、URL等;
  • 通过开发者工具,检查内存是否有泄漏的情况;
  • 变量、组件、声明等语义化命名;
  • 善用语言 lint 工具;
  • 善用文本格式化工具;
  • 多遍复审代码,最好是从自己淡忘的代码部分开始,如果有多个同伴,也要复审同伴的代码,有利于反向复审自己的代码;

不过,在项目紧急的情况下,还是推荐测试工程师助力快速通过冒烟测试,这时候工程师专注在快速实现上,实现完就交付给测试人员测试,且以最小单位实现交付,测试人员也快速反馈有哪些问题,如此在项目紧急的情况下是最好的,就是 BUG 会比较多发,所以这份清单也适用于测试工程师,类似于测试用例,照着测即可,大大减少边测边想的脑力。

一定还有些导致 BUG 发生的情况没出现在这份检查清单里,我会持续完善它,如果有大家的帮助那肯定更高效,😃。结合其它 Web 开发检查清单 一起使用,应用一定会很稳健。

打算将我的笔记都以文章的形式发布出来,与大家分享,更多(80%)还是想交流,集思广益,另外也想结识些志趣相投的新朋友,好朋友,🫵🏼,我知道你就在那儿,快联系我吧!😬(微信:iyoooooooo

👣