因此,现在我和其他许多人一样得出了这样的结论:通过某种方式不断测试您的代码是一个很好的实践,因为它使更少的人(无论是学院还是客户)参与进来,只需在别人发现困难的方法之前就知道出了什么问题。
我已经听说和阅读了一些关于单元测试的内容,并且理解了它应该做什么和所有的事情。有这么多不同类型的bug。它可以是所有的东西,从web浏览器无法发送正确的值、javascript失败、一个全局函数在某个地方弄乱了一段代码,到一个在测试时看起来很好但在某些很难预料的特殊情况下失败的更改。我只是发现这些错误,我学会了很少再重复它们,但似乎总是有新的错误,并从中吸取教训。
我猜想最好的做法可能是运行每一页和它的功能几次,见证结果,并重复在火狐,Chrome和in (以及所有的智能手机显然),以确保它的工作计划。然而,这需要相当长的时间来考虑,我不使用补丁/版本,并且每周做几次小的修复。
我喜欢的是某种页面,我只需加载尽可能多的测试内容,以确保站点按预期工作。简单地说,就是用后置值运行大量的卷曲,看看我是否能得到预期的结果。但是,如果我删除这些测试行,那么我最好如何不增加每个mysql行的if呢?在ID 1000上,总共可能有50行,感觉很傻。
如果我能够从头开始构建一个新项目,我可能会实现某种平滑的方式,在测试中返回一个"TRUE“,而不是实际的页面。但是,这个解决办法目前必须在现有的项目上获得通过。
我的问题
您建议使用什么方法来测试我的站点,以确保现有功能在编辑代码时完成其工作?我是否应该考虑先实现大量的编辑,然后手动测试整个代码,以确保它仍然有效?有什么好的方法来测试代码而不“伤害”ID列?
额外的思想
这是一个好主意,把我的所有文件与我的网站的不同部分,他们影响?例如,如果我编辑home.php,我将通过文档测试,我的主页的开始是否按预期工作,因为它是我的网站的唯一部分,它应该影响。
发布于 2012-09-03 11:55:27
看看Yannis建议的基于浏览器的测试框架,比如硒和瓦廷。您可以使用它来自动化与web页面的类人交互,例如“在页面加载时选中标题为"X”,在文本框中输入"Test“,使用"OK”按钮提交,并检查结果页面的标题已更改为"Y“。
就像所有自动化的单元测试一样,它变得可重复且执行得更快。如果您更改了home.php,在上面给出的示例中,只需在整个网站上运行测试,并确保没有流的影响。大多数测试框架都支持常见的浏览器,甚至在在多台计算机上并行中运行它们。
如果您对YSlow的性能感兴趣,可以帮助识别性能问题(尽管我已经有一段时间没有使用它了)。还有链路验证器、SSL安全验证器、安全分析工具和许多其他工具。
不要忘记在后端进行传统的自动化单元测试。例如,它可以帮助隔离错误,而不仅仅是说这个页面没有正确加载。
如果您担心测试数据会污染生产数据库,这可能是一个好主意,也可能不是一个好主意。您的测试可能干扰客户及其数据的风险,特别是如果涉及财务交易或个人可识别信息(PII),您和管理层必须进行权衡,但我建议使用单独但相同的分期或测试环境。如果必须在生产系统上运行测试,请确保测试数据容易与客户数据分离,并在测试运行后清除它。
发布于 2012-09-03 10:53:51
身份证对你来说应该不是问题。您可以随时删除数据库,并在需要时重新创建它。
单元测试与您所追求的略有不同。单元测试只确保代码单元正确工作。这就是全部。
您需要进行集成测试,以确保所有单元在集成时正确工作。
您还可以进行自动GUI测试,以模拟您的操作,比如在web浏览器上按下按钮。
https://softwareengineering.stackexchange.com/questions/163466
复制相似问题