简介
学习目标
-
自动化软件测试的好处
-
为什么测试很难学习
-
实现和测试之间的区别
-
建立稳定的测试实践
大多数Web开发人员在他们的职业生涯中都会遇到自动化测试。他们喜欢编写代码来审查Web应用程序并对其进行严格测试的想法。作为Web开发人员,作为商业人士,我们希望知道该网站是否适用于用户,我们的客户。
该网站是否允许用户完成其任务?在引入新功能或重构内部之后,该网站是否仍然可用?该网站如何对使用错误或系统故障做出反应?测试可以回答这些问题。
我相信自动化测试的好处很容易理解。开发人员希望能够安心的睡个好觉并确信他们的应用能够正常运行。此外,测试有助于开发人员编写更好的软件。所编写的软件也会更健壮、更易于理解和维护。
与之形成鲜明对比的是,我遇到的Web开发人员中只有少数拥有扎实的测试实践。只有很少一部分人觉得编写测试 很容易,更不要说 享受 编写测试的过程了。这项任务被视为一项繁琐的事甚至是个麻烦。
一些开发人员经常因缺乏测试而受到指责,并被怪罪于无知和懒惰,不愿意编写测试,这个结论过于武断并且很有坏处。如果测试具有不容置疑的价值,那么我们就需要仔细想想:为什么这些开发人员明明知道它的好处,却又会想着避开它。测试应该是简单、直接和常见的。
如果您在编写测试方面遇到困难,那可能不是您的错或缺陷。由于软件测试本质上是复杂并且是困难的,我们都在努力中。
首先,编写自动化测试需要拥有与编写实现代码完全不同的思维方式。实现功能时,我们的目的是建造起一座建筑物,而测试则是试图推翻它。
您会尝试在自己的工作中找到弱点和漏洞。您会考虑所有可能的情况,并用“如果怎样怎样”等一些问题来干扰您的代码。乍一看似乎令人沮丧,但这正是改进代码的宝贵策略。
其次,测试具有陡峭的学习曲线。如果将测试视为工具,它不像螺丝刀或电钻,而更类似于拖拉机或挖掘机。操作这些机器是需要培训的,并且需要足够的经验才能准确安全地应用它们。
为了鼓励您继续下去,我想说:测试的最开始的确很难,但随着更多的实践,它会变得越来越简单。本指南的目标是让您有能力编写日常业务的测试,以覆盖您的Angular应用程序的重要功能。