我有一个在线系统,可以出售彩票游戏。 该系统创建竞赛,生成游戏(用于某种不同的彩票),管理结果,验证这些结果,注册客户,管理信用和创建报告。
它变得非常庞大和复杂。系统正在运行并正在运行,但我仍在升级。
由于一切都被纠缠在一起,每一点变化都可能导致灾难。随着系统的增长,它的熵就会增长。
我尝试通过测试来减少错误的机会,但几乎每次我都会错过一些东西。这最近给我带来了麻烦。
我可以做些什么来减少像这样的大系统出错的几率?
OBS:
答案 0 :(得分:2)
在执行大量复杂任务的任何主要系统中,unit tests和integration tests将成为您最好的朋友。您的解决方案中应该有两个专门为此目的而构建的项目 - 一个用于单元测试,另一个用于集成测试。
虽然做起来似乎很无聊或乏味,但是编写良好的单元或集成测试可以轻松地使您免于部署损坏的代码 - 通常您将在部署之前运行一组测试,如果有的话那些应该失败,部署在任何事情发生之前就停止了。
这也提出了code coverage的主题,基本上意味着你的代码有多少是可测试的?您是否有测试来表示您的应用程序执行的每个工作单元?这些是您在编写测试时需要提出的问题。请记住,如果您没有良好的代码覆盖率,单元测试不是很有用。
作为入门者,专门针对PHP开发,PHPUnit是一个很好的选择。
虽然它对您来说可能是一个新概念,但您很快就会发现即使在开发阶段,单位和集成测试也是如此令人难以置信。实际上有一种专门用于该概念的完整开发方法,称为TDD。我会读一些这些概念,提出一个覆盖计划(你要测试的内容和位置),然后自己尝试写一些。