这个问题被标记为社区维基,并且是主观的,但请不要关闭它,我认为这是一个很好的问题,我想知道开发社区对测试的看法。
我是一名开发人员超过10年,我还没有在一家拥有专门测试部门的公司工作。多年来,我看到对测试的态度越来越差,最近管理层正在快速取得成果,快速部署,并且有很多团队只是忘记了开发科学,而忽略了严肃的测试。
最终结果是 - 管理层对最初的开发速度感到满意,应用程序甚至可能在生产中运行稳定一段时间,但之后必然会出现问题。根据应用程序的复杂程度,很多可能会出错,有时甚至会出现问题。在大多数情况下,这些问题都是环境驱动的,因此难以隔离和修复。客户端是最终承担压力测试角色的实体,因为无论喜欢与否,最终有人会测试应用程序。
在此阶段,管理层感到失望的是开发人员。开发人员认为管理层并没有首先听取重大测试的请求,并且客户对软件失去了信心。一旦订单最终恢复,如果产品幸存下来。开发人员最终会因为没有输出稳定的产品而受到指责,而且现在在人工日期超过预算,因为开发人员花了2-3倍的时间来测试应用程序(最终)。
这个观点是否切合实际?有没有人感到这种压力?开发人员应该参加测试专业课程吗?为什么测试被抛在后面?或者,在我职业生涯的最后10年中,这是我的不幸。
欢迎任何想法。请不要关闭这个问题。
答案 0 :(得分:9)
在我看来,开发人员永远不应该测试,因为他们测试“它有效吗?”。
另一方面,测试工程师会测试某些“不起作用”,这在我看来是非常重要的区别。
因此,让其他人进行测试,测试工程师或其他功能分析师,支持工程师,项目经理等...
答案 1 :(得分:3)
就个人而言,如果有任何意义,我写的所有内容都经过单元测试。一旦通过这种测试,我通常会将其传递给朋友并要求他们使用它。最终用户总是会做出一些意想不到的行为来破坏事物,或者发现你设计的界面对你来说非常直观,而且非常复杂。
许多管理人员确实需要更多地关注测试。我个人感到震惊,有些代码没有经过适当的测试就出门了。事实上,我可以想到我从各个公司使用的多个应用程序,这些应用程序可以使用一个不错的单元测试,更不用说可用性测试了。
我认为对于那些归结为公司的公司来说,是否需要专门的人员进行测试,或者以后解决不可避免的问题并将产品推向市场的成本更低?
答案 2 :(得分:3)
我工作过的最后两家公司都有专门的专业测试人员,他们同时进行手动测试和编写自动化测试脚本。测试人员不是简单地在开发周期结束时测试产品(通常为时已晚,无法进行重大更改),而是从开始将需求转换为测试用例并在开发时测试每个功能时进行测试。测试人员不是一个单独的部门,而是开发团队中不可或缺的一部分,并且每天都与程序员一起工作。
这与我在没有专门测试人员的情况下工作过的公司之间存在巨大差异。如果没有测试人员,我认为两家公司的发展很久以前就会停滞不前。
单元测试也很重要,但开发人员测试代码是否正确,而不是它做得对。
答案 3 :(得分:2)
我只在一个有专门测试人员的组织工作过 - 那是在1983年。
使用TDD并不会成为问题 - 加上您的开发周期会加速。
例如,本周我为复杂的应用程序编写了3个自动验收测试。手动执行这些测试大约需要4个小时。自动测试在3分钟内完成。我今天跑了50多次测试,发现了大小不一的错误。
最终结果:应用程序很适合最终用户,团队对其功能充满信心。此外,自动化测试仅在今天节省了大约200个工时的人工测试。随着未来的增强,它们将作为回归测试得到更多的保存。
有些人声称TDD会产生额外的开销,这在最近视的观点中是正确的。编写测试脚本大约需要2个小时。修复他们发现的二十个错误占用了剩余的工作日。没有测试,我仍然会进行手动测试,试图追踪(充其量!)第二个错误。
答案 4 :(得分:2)
像这里的许多其他人一样(到目前为止你们都羞于承认它)但我有用户来测试我的软件。我读过这不是最好的做法,但我不确定管理层是否有。
答案 5 :(得分:1)
在我们这里,我们有专门的测试人员。然而,对于开发人员来说,暗示他在提交测试人员进行更正式的测试之前首先进行他自己的非正式测试。
答案 6 :(得分:1)
在我工作的公司:
程序员测试所有东西=>如果它编译保持它(因为开发大多是现场完成所以没有必要将更改推送到实时环境),如果它没有修复它,直到它。哦,不使用单元测试,因为它们占用了太多时间。
以后的错误通常由用户和/或项目经理发现,他们会检查项目是否正常但是有太多的事要做深入测试。
我目前正在修复一些从未工作过的项目,这些项目一年没有被注意/报告过。
答案 7 :(得分:0)
开发人员执行单元测试。但单元测试对于应用程序来说还不够。因为开发人员从不接受他们的错误并且他们保护自己的代码。因此,如果您想提供高质量的产品,请让QA团队测试应用程序。他们从用户的角度测试应用程序,这有助于组织提供良好的应用程序。
答案 8 :(得分:0)
在我的公司,我们有专门的测试人员。我是测试人员之一。
我能够感受和思考的是开发人员专注于确保他们所做的(使用代码)已经过测试并且工作正常。但是从Tester的角度来看,他们正试图找到错误 - 所以测试是为了识别缺陷。