研究使用Selenium 进行自动化测试的代码检查最佳实践和代码检查清单。java
在软件行业,您可能常常会听到术语“代码审查”。可是,代码审查的概念常常被误解。人们一般认为它在软件开发生命周期中被忽视执行测试应足以知足验证过程。所以,他们倾向于对代码审查过程视而不见。可是,忽略代码审查过程可能会反弹并产生重大后果。咱们也有一个误解,认为代码审查过程是开发团队的责任。它不是!代码审查是一个过程,不只应包括开发人员,还应包括质量保证人员和产品经理。本文是个人尝试,旨在帮助您意识到代码审查的重要性以及您应该如何参加质量检查。程序员
代码审查是一种将源代码分解成小段的作法,由团队的主管或前辈检查这些源代码,而后在测试以前进行检查。这是敏捷方法中主要遵循的一个过程。面试
代码审查的主要目的是发现错误,及时发现错误并确保代码遵循标准作法。能够将其称为双向交流,在这种状况下,编码人员和检查代码的人员均可以互相学习,并消除可能会影响产品的任何潜在错误。编程
在敏捷环境中工做,您可能常常低估了代码审查过程的重要性。您可能会认为代码审查会很耗时,尤为是在期限紧迫的状况下。可是,这变得愈来愈重要。您越早检查代码并消除任何阻塞或错误的可能性,之后就能够按照发布过程越早交付产品。在发布周期的后期发现错误或在将其移植到生产中后,发现它们更昂贵,更耗时。这就是为何组织如今沿用Shift-Left测试的现代方法,将您从客户需求收集阶段开始的测试归入其中的缘由。数组
若是您认为只要进行测试就不须要进行代码审查,那么如下提到的好处可能会使您的想法转向不一样的想法。浏览器
对于初学者来讲,代码复查和测试都是包含在软件开发生命周期中的最佳实践。可是,二者在其各自的方式上都是独特的,不能混淆。认为您不须要代码审查是错误的,由于您已经在SDLC中进行了测试,反之亦然。安全
代码审查涉及检查代码,该检查可能包括也可能不包括检查错误。它涉及检查代码风格是否符合全部策略,是否存在违反安全性的问题,最重要的是,是否易于理解代码。目的是检查代码是否简单,是否遵循全部策略和标准,最重要的是,是否达到目的。网络
另外一方面,测试具备几个类别。测试的主要目的不是检查代码,而是检查应用程序是否正常运行。测试包括检测应用程序不一样层中是否存在任何错误,应用程序是否知足涉众的全部要求并确保将检测到的问题传达给相关团队。架构
假设地,代码审查能够代替测试。在很小的应用程序中,若是有多个审阅者仔细地检查代码,他们可能会肯定执行单元测试时可能引发缺陷的部分。仅假设,不现实。框架
手动或自动化测试一般采用固定方法来检查应用程序流,并肯定是否有任何异常的行为。
可是,代码审查须要人工干预。人类的大脑很复杂,可能会想到编写测试脚本时可能还没有预编程的方案。有经验的代码审查员能够在编写有效测试用例的过程当中,在测试人员可能没有想到的特定状况下,检测出可能致使破坏的任何错误代码行。
可是,仅当应用程序很是小且可能仅包含一百行代码时,代码审查才能代替测试。在大型应用程序的状况下,范围会变大,不管有多少审阅者一块儿检查代码,集成代码时,应用程序均可能会形成损坏。这就是测试起做用的地方。
可是,测试不能以假设或现实的方式代替代码审查。尽管测试能够检测到全部错误并由开发人员修复它们,但让咱们讨论一个方案,该方案将清楚说明为何它不能代替代码审查。
我将分享个人我的经验。咱们的团队正在开发大型动态Web应用程序。通过最后的测试阶段,整个应用程序能够知足每一个用户的需求。可是,存在一个问题–加载时间。即便以最快的网络链接速度,该应用程序也须要4-5秒钟来加载。经过代码审查阶段,咱们发现CSS和脚本很是复杂,能够将它们最小化几百行。这样作,咱们将加载时间减小到2秒。所以,能够得出结论,实际上,代码审查和测试都是软件开发阶段不可或缺的一部分,而且永远不可能彻底替代。
代码审查被认为是静态测试的一部分,该活动一般由质量分析人员执行,以在测试阶段开始以前发现是否能够较早发现任何错误。若是测试团队积极参与代码审查,则能够节省大量时间。
您可能想知道当您不参加测试时如何开始进行代码审查,而没有任何开发经验。可是事实是,代码审查只须要您的观察技能,而不须要您的编码能力。对于初学者,您能够从自动化脚本开始。尝试查找可能致使错误测试顺序的小错误。每当有时间时,请并行浏览应用程序的存储库,并尝试了解开发人员在该处所作的事情。
另外,若是您团队中的某人正在检查代码,请与他们讨论或坐在一块儿,并尝试了解他们的工做方式。检查他们是否在看
此外,一旦开发团队发现QA团队正在关注代码,他们将很乐意向他们解释代码的工做原理,从而提升质量分析人员的编程知识,并改善团队之间的沟通。经过代码审查的实践,测试人员将知道在代码的哪一个部分中定义了项目的哪些功能,从而提升了总体智慧和团队合做精神。
最后,记住一件事。您无需成为执行代码审查会议的专家编码人员。具备基本编码知识的任何人均可以查看代码。您只须要查看更改并询问作什么,为何以及如何完成某件事。从较小的更改开始,并详细了解它们以及任何有任何差别的地方,对其进行评论,并请编码人员清除您的疑问。而且,若是您要管理整个项目,请确保将代码审查和测试做为必不可少的阶段包括在任何软件开发生命周期中都要执行。这将确保交付高质量的产品,并保持组织的声誉。
让咱们开始阅读代码。根据您的应用程序的大小,您能够执行两种类型的代码审查。
尽管有一些最佳实践,咱们将在后面进行讨论,但这将致使完好陷的代码审查,可是,若是您正在使用Selenium WebDriver进行自动化测试以对网站进行跨浏览器测试,则在审查代码时须要检查某些因素。
就像编码和测试同样,您还须要牢记一些代码审查最佳实践。让咱们详细讨论它们。
我但愿您如今意识到SDLC中代码审查的重要性,以及它与测试的区别。若是您是产品经理,那么对于您而言,相当重要的是将代码检查过程归入发布周期,以防万一,您能够将其归入其中。若是将其合并,则须要有效地组织带宽和资源,并确保开发人员和测试人员都积极参与。若是您是一个QA,可是惧怕介入代码审查,那么您就须要改变见解,直接进入。最后,若是您是开发人员,则必须确保引入产品经理和软件测试人员。代码审查过程,以确保透明的透明度。审核愉快!