Unit testing LAMP web应用程序的测试建议

Unit testing LAMP web应用程序的测试建议,unit-testing,testing,e-commerce,qa,Unit Testing,Testing,E Commerce,Qa,我需要帮助测试!:) 我在一家小型webdev公司工作,负责我们应用程序的质量 我们时不时地建立电子商务网站,由于我们的客户依赖该网站赚钱,因此必须完全没有bug。不幸的是,我们在过去曾遇到过这样的问题,我们正在寻求加强我们的测试程序 我想知道是否有人对如何进行这样的测试有什么建议。这一切是手工完成的,还是自动完成的,比如硒?或者其他方法 我们的应用程序总是LAMP(Linux、Apache、MySQL、PHP)。他们从来没有难以置信的复杂,除了在某些情况下处理信用卡,计算运费,折扣等。事情可能

我需要帮助测试!:)

我在一家小型webdev公司工作,负责我们应用程序的质量

我们时不时地建立电子商务网站,由于我们的客户依赖该网站赚钱,因此必须完全没有bug。不幸的是,我们在过去曾遇到过这样的问题,我们正在寻求加强我们的测试程序

我想知道是否有人对如何进行这样的测试有什么建议。这一切是手工完成的,还是自动完成的,比如硒?或者其他方法

我们的应用程序总是LAMP(Linux、Apache、MySQL、PHP)。他们从来没有难以置信的复杂,除了在某些情况下处理信用卡,计算运费,折扣等。事情可能会变得相当复杂

有什么建议吗


谢谢

一般来说,我建议采用平衡的手动和自动测试方法。您将永远无法自动化所有的测试,并且需要时间来扩展您的自动化测试套件,因此手动测试将始终存在。作为第一步,我通常建议自动化一个可以在每个构建上运行的冒烟测试。这通常会让你赚大钱。之后,您可能希望将重点放在应用程序的高风险领域。这些可能是应用程序中比较棘手的领域(如您提到的处理、发货、折扣交易)和/或过去有过错误。

一般来说,我建议采用平衡的手动和自动测试方法。您将永远无法自动化所有的测试,并且需要时间来扩展您的自动化测试套件,因此手动测试将始终存在。作为第一步,我通常建议自动化一个可以在每个构建上运行的冒烟测试。这通常会让你赚大钱。之后,您可能希望将重点放在应用程序的高风险领域。这些可能是应用程序中比较棘手的领域(如您提到的处理、发货、折扣交易)和/或过去有过错误。

测试中没有“对”或“错”。测试是一门艺术,您应该选择什么以及它对您的效果如何取决于项目和您的经验

但是作为一个专业的测试专家,我的建议是,你应该有一个健康的自动测试和手动测试的组合

自动测试

  • 单元测试
    使用PHPUnit测试您的类、函数以及它们之间的交互。

  • 自动功能测试
    若可能的话,您应该自动化许多功能测试。一些框架中内置了功能测试。否则,你必须使用一个工具。如果您正在开发网站/应用程序,您可能希望了解Selenium。

  • 持续集成
    使用CI确保每次团队中有人提交项目时,所有自动测试都会运行。

手动测试
尽管我非常喜欢自动化测试,但它并不能代替手动测试。主要原因是,自动化系统只能执行其被告知的操作,并且只能验证其被告知的内容,以将其视为通过/失败。人类可以利用自己的智能发现错误,并在测试其他东西时提出问题

  • 探索性测试
    ET是发现项目缺陷的一种非常低成本和有效的方法。它充分利用了人类的智慧,并向测试人员/开发人员传授了比我所知的任何其他测试技术更多的项目知识。针对测试环境中部署的每个功能进行ET会话不仅是快速发现问题的有效方法,也是学习和娱乐的好方法
这个答案(几乎)和我给另一个问题的答案相同。看看这个问题,因为它还有其他一些可能对你有帮助的好答案。 测试中没有“对”或“错”。测试是一门艺术,您应该选择什么以及它对您的效果如何取决于项目和您的经验

但是作为一个专业的测试专家,我的建议是,你应该有一个健康的自动测试和手动测试的组合

自动测试

  • 单元测试
    使用PHPUnit测试您的类、函数以及它们之间的交互。

  • 自动功能测试
    若可能的话,您应该自动化许多功能测试。一些框架中内置了功能测试。否则,你必须使用一个工具。如果您正在开发网站/应用程序,您可能希望了解Selenium。

  • 持续集成
    使用CI确保每次团队中有人提交项目时,所有自动测试都会运行。

手动测试
尽管我非常喜欢自动化测试,但它并不能代替手动测试。主要原因是,自动化系统只能执行其被告知的操作,并且只能验证其被告知的内容,以将其视为通过/失败。人类可以利用自己的智能发现错误,并在测试其他东西时提出问题

  • 探索性测试
    ET是发现项目缺陷的一种非常低成本和有效的方法。它充分利用了人类的智慧,并向测试人员/开发人员传授了比我所知的任何其他测试技术更多的项目知识。针对测试环境中部署的每个功能进行ET会话不仅是快速发现问题的有效方法,也是学习和娱乐的好方法
这个答案(几乎)和我的答案相同