Testing 在发布给QA之前测试您的代码

Testing 在发布给QA之前测试您的代码,testing,qa,Testing,Qa,我听开发人员说,编写代码的人不应该是测试代码的人。我正在寻找人们在这种情况下的经验。很多时候,我已经完成了我的开发工作,然后发布给QA部门,并将代码发回给我,因为应用程序的某些方面由于我的编码而被破坏,无论在QA发布之前我对其进行了多少测试 这个板上的任何人都有一个流程可以遵循,使他们能够在发布给QA之前彻底测试他们的代码吗?我的经验法则是对每个返回值的方法进行单元测试。一旦你都是绿色的,它就会转到QA 是的,QA可能仍然会发现缺陷。他们的工作是思考,并测试,你没有考虑的情况,毕竟。总的来说,我

我听开发人员说,编写代码的人不应该是测试代码的人。我正在寻找人们在这种情况下的经验。很多时候,我已经完成了我的开发工作,然后发布给QA部门,并将代码发回给我,因为应用程序的某些方面由于我的编码而被破坏,无论在QA发布之前我对其进行了多少测试


这个板上的任何人都有一个流程可以遵循,使他们能够在发布给QA之前彻底测试他们的代码吗?

我的经验法则是对每个返回值的方法进行单元测试。一旦你都是绿色的,它就会转到QA


是的,QA可能仍然会发现缺陷。他们的工作是思考,并测试,你没有考虑的情况,毕竟。总的来说,我认为代码在第一次迭代中不可能(当然也不常见)直接通过QA而没有问题(bug修复和非常小的更改除外)。

开发人员应该在给定的规范范围内测试代码。经常发生的事情是规范可能不清楚或被误解,这是由其他做QA的人整理出来的,这通常意味着给开发人员提供规范的人会验证实现是否做了它应该做的事情,如果没有,那么就是发现不匹配并发回修复的时间。

1)是的,作为开发人员,您需要编写大量的单元测试。这些将帮助您在将bug发布给QA团队之前,在周期的早期捕获bug


2) 是的,作为一个开发团队,您还需要进行系统集成测试,以确保您的组件不会破坏其他现有功能。

开发人员应该始终测试自己的代码,以确保其按照预期工作


QA团队会像最终用户一样进行测试,并做/找到开发人员没有想到的事情。

开发人员测试她的代码,以确保代码按照开发人员认为应该执行的方式执行

QA团队测试代码,以确保代码按照QA团队认为他们在文档中阅读的方式执行


QA团队不仅仅测试代码。QA团队测试相关方(客户、开发人员、QA、管理层等)之间沟通的有效性。

开发人员通常从内到外工作,重点关注代码:

  • 断言-验证数据流和结构
  • 调试器-验证代码流和数据
  • 静态分析器-验证编码标准并查找已知错误
  • 单元测试-验证每个功能
  • 集成测试-验证子系统
  • 系统测试-验证功能
  • 回归测试-验证缺陷是否固定
  • 安全测试-验证系统不容易被穿透
另一方面,测试人员通常从外向内工作,重点关注以下特征:

  • 验收试验-验证最终用户要求
  • 场景测试-验证真实情况
  • 全球测试-验证可行的输入
  • 回归测试-验证缺陷是否固定
  • 可用性测试-验证系统是否易于使用
  • 安全测试-验证系统不易被穿透
  • 代码覆盖率-测试未触及的代码
  • 兼容性-与以前的版本兼容
  • 寻找怪癖和粗糙的边缘
最终用户通常从外部随机工作:

  • 验收试验-验证最终用户要求
  • 场景测试-验证真实情况
  • 可用性测试-验证系统是否易于使用
  • 寻找怪癖和粗糙的边缘
re:“我听开发人员说,编写代码的人不应该是测试代码的人。”

如果他们不测试它,他们怎么知道它是否有效?真正的答案是,“编写代码的人不应该是唯一测试代码的人”。的确,作为开发人员,我们在自己的代码方面存在盲点(“我知道我没有碰过那个代码,所以不需要测试它…”),需要帮助


理想情况下,每个可测试单元都应该有一个单元测试。编写这些单元的开发人员通常会编写单元测试,但不一定要这样。但单元测试只是故事的一部分。应该使用测试专业人员进行集成和系统级测试。

有趣的问题。我将试着从测试人员的角度给您一个很好的概述

如果我得到一个构建,我希望代码能够在单元测试级别上进行测试,以检查一些基础知识。这意味着,当我输入一些基本的边界值检查时,它不会崩溃。例如:如果一个字段接受0-100,那么它应该优雅地处理101和-1

这是一个简单的例子。我认为当人们说你不应该测试你自己的代码时,他们指的是传统的测试阶段,通常由训练有素的测试人员完成。但这并不意味着它不应该在单元级进行测试。我还主张手动测试它,甚至只是为了检查它是否执行了基本功能

当我编写代码时,我会编写单元测试、集成测试(如果可能的话),并明确地手动测试它的基础知识。但问题是,我编写的测试代码从来没有其他人测试代码那么有效。我对代码有一些假设和想法,这可能意味着我跳过或忽略了位。我可能想得太多了。认为太多是理所当然的。我想我知道代码的作用。专业测试人员会避免这些假设,因此经常会发现您可能找不到的缺陷

一个好的测试人员还将检查边缘案例、可用性和所有感兴趣的领域

这里有一条评论说,规范可能很模糊,因此编写测试很棘手。但作为一名测试人员,我也建议这不意味着编码就简单了吗