您如何说服经理让您进行单元测试?
“使用”是指被允许开发,检入源代码控制并随着时间的推移维护单元测试等。
典型的管理异议是:
- 客户没有为单元测试付费
- 该项目没有时间进行单元测试
- 技术债务?什么技术债务?
您知道其他异议吗?你的答案是什么?
提前致谢!
您如何说服经理让您进行单元测试?
“使用”是指被允许开发,检入源代码控制并随着时间的推移维护单元测试等。
典型的管理异议是:
您知道其他异议吗?你的答案是什么?
提前致谢!
Answers:
最近,当一个客户加入我们的方法时,我遇到了这个问题,但是更高层的管理者感到开发人员正在花费时间进行测试而不是进行开发,并且对此感到担忧-毕竟,他们有质量检查人员来进行测试!我在这里写了关于如何处理的博客:
http://practicalagility.com/show-them-the-numbers-its-results-that-matter/
总而言之,我将我们的估计工时与项目的实际工时进行了比较,然后将我们的缺陷率与其他团队的缺陷率进行了比较。在我们的案例中,这些数字相比而言是有利的,没有更多的担忧了。
根据此经验得出的结论是:
...说服任何人相信您做某事的方法既实用又务实的最佳方法是做到这一点,并与其他方法进行比较。人们不在乎教条,也不在乎为什么您认为应该是最好的方法。只有向人们展示数字并衡量您的方法的有效性,您才能真正证明您的实践是有效的。
在其他项目中,我们与没有创建单元测试或未进行TDD的客户开发人员一起工作,我们必须维护会破坏它们的测试。但是,将TDD方法出售给那些客户开发人员变得非常容易,只要您可以告诉他们他们在代码中已经破坏了什么,然后他们才知道!
因此,在您的情况下,如有必要,我会秘密执行(也许只有一小段代码可以开始测试经常更改或您负责的代码),但请注意您的数字 -什么是代码努力创建测试?缺陷率是多少?与其他项目/团队成员相比如何?
在我看来,没有人需要为做好自己的工作而征求许可或道歉,并且任何专业开发人员都应尝试在可能和可行的情况下使用自动测试来测试其代码。希望这两种情况都适合您。祝好运!
编写自动化测试需要时间。一旦。运行自动化测试只需花费零时间,因为您可以在运行自动化测试时执行其他操作。
示例:手动测试功能X需要30分钟。为此编写一个自动化测试将花费1个小时。即使没有错误,我们也必须在项目过程中对特征X进行十次测试,因为其相关层和组件已被修改。因此,自动执行功能X的测试将在整个项目生命周期内为我们节省4个小时。
实际上,只有当您遇到一个错误时,自动化测试才能真正得到回报-首先,它们可以及早且廉价地发现错误,从而节省了时间和尴尬。其次,如果您遇到了一个困难的错误,并且要经过很多次代码构建测试才能弄清楚它,那么与手动测试相比,节省的时间就非常快。
企业了解节省时间和金钱。那是卖的方法。
如果您已经遇到过他们,并且他们对此表示不满意,但是如果没有他们,您会不满意编写代码……那么就不要再问了。只需写它们,不要签入。
管理层不会计算代码行数,但是他们会看到您的所有签入都具有来自QA(或客户)更高的通过率,并且他们最终会问为什么...然后您就可以像“ BAM!TDD”一样!!”
您不会搞乱项目,流程或源代码……所以我看不出任何负面原因。坦率地说,我看不出为什么它与运行所有手动运行+输入+检查结果测试的时间不同。
1)客户没有为单元测试付费
客户(认为他们)为有效的解决方案付费。根据合同,修复缺陷实际上可能对您的公司有利。如果有足够的锁定,那么请回到为可行的解决方案付费。TDD应该有助于实现这一目标。
2)该项目没有时间进行TDD
TDD不需要花费更长的时间。它应减少多余或多余的代码量,并使代码基于使测试通过的内容。所有测试通过,取决于测试质量和适当性,表示代码已完成。
3)技术债务?什么技术债务?
我得到的印象是,您可能在争先恐后地向现有代码添加测试。最好的时候,这是一场噩梦,并没有带来您可能期望的收益。但是,在修复错误时添加测试应该是可以接受的,并且从长远来看会有所帮助。
我不建议像Snorfus所建议的那样编写测试。从理论上讲听起来不错,但是单元测试可以并且确实会随着时间而改变。随着需求的变化,添加了新功能,需要更新单元测试。如果您是团队成员,则单元测试将过时,因为其他人会添加功能/修复程序。
我要讲的是您提到的具体要点,而不是提出新的要点,因为那里还有余地可以取得进展,也可以理解为什么它被阻塞了。
对于每个面临生产问题的客户,
编写单元测试,并向经理发送电子邮件,说明您已添加单元测试来涵盖该场景。
并告诉他该问题不会在生产中再次发生,因为我们的单元测试在夜间运行,并且通过观察此单元测试失败,我们将在代码投入生产之前就知道了。
告诉他,如果我们在代码投入生产之前已经进行了此单元测试,那么这个生产问题将永远不会发生。
始终如一地做到这一点,很快他就会被说服。经理不喜欢面对生产问题的客户,他会接受单元测试的想法。祝好运。