Questions tagged «testing»

根据软件系统的预期行为来验证该软件系统的行为。

4
单元测试新手的单元测试最佳实践
近年来,我只为大型项目或小型工具中的人员编写了小型组件。我从来没有编写过单元测试,而且似乎总是像学习如何编写它们并实际上使一个人测试花费了很多时间,而不是简单地启动程序并进行真实测试。 我将要开始一个相当大的项目,该项目可能需要几个月的时间才能完成,尽管我会像往常一样尝试在编写元素时对其进行测试,但是我想知道单元测试是否可以节省时间。 我只是想知道是否有人可以提供很好的建议: 我是否应该在项目开始时就进行单元测试,并可能采用TDD方法。 在完成每个部分后,我是否应该随身编写测试? 我应该完成项目,然后最后编写单元测试。

7
自动化的单元测试,集成测试或验收测试
目前,TDD和单元测试似乎很受欢迎。但是,与其他形式的自动化测试相比,它真的有用吗? 凭直觉,我猜想自动化集成测试比单元测试有用。以我的经验,大多数错误似乎都在于模块之间的交互,而不是每个单元的实际(通常是有限的)逻辑。此外,由于模块之间的接口发生更改(以及更改的前后条件),经常发生回归。 我是在误解什么,还是与集成测试相比,单元测试为什么会引起更多关注?仅仅是因为假设您已经拥有集成测试,而单元测试又是我们需要学习以开发人员身份应用的下一件事? 还是与自动化的复杂性相比,单元测试仅能带来最高的收益? 您在自动化的单元测试,自动化的集成测试和自动化的验收测试中有什么经验,而在您的经验中,哪些产生了最高的投资回报率?为什么? 如果您只需要选择一种测试形式就可以在下一个项目中实现自动化,那会是什么? 提前致谢。

3
“诱骗”功能或故意错误的术语是什么?[关闭]
我忘记了programming语编程术语。这是故意的错误或诱骗功能,可分散注意力。用法示例,“今天质量检查人员,嘿,鲍勃(QA)正在审查。将a $THING放到模块中,这样他们实际上很难找到问题”。 可以否定地使用它,因为它有一个非常明显的故意缺陷,可发现它是对实际问题的干扰。 这也可以肯定地使用。就像您在搜寻灾区时总是让救援犬“找到”受害者一样。它也可以用来验证质量检查流程是否确实存在缺陷。 我要寻找的术语是什么?

11
我需要测试一切吗?
我将在Ruby on Rails中开始我的第一个实际项目,并且强迫自己编写TDD测试。我看不出编写测试的真正优势,但是由于它看起来非常重要,因此我将尝试。 是否有必要测试应用程序的每个部分,包括静态页面?
28 testing  tdd 

7
程序员应该自给自足吗?
在我目前的工作场所中,我们没有任何测试人员,管理层的理由是:“如果我们有测试人员,则根本不会测试自己的代码”。这种想法似乎对产品质量有害,因为当我测试自己的代码时,由于我了解系统内在而又不知道如何使用,我会错过很多事情这是“错误的”。黑盒测试并不能真正起作用,因为我下意识地避免了专用测试人员会陷入的陷阱。我花了很多时间来修复那些已渗入生产代码并由最终用户发现的错误。 有问题的系统很大,但完全由我开发。这也导致一些管理职责落在我的腿上,例如定义时间表和制定规格。 这些任务应该由我负责吗?我严格地把自己看作一个程序员,没有别的。如果这些是我的责任,在多大程度上?什么时候一个项目如此之大而需要测试人员?程序员是否应该完善规范,担心项目管理甚至提供客户支持? 注意 有些人可能会觉得我不赞成扩大职责–情况并非如此,我渴望获得一个涉及更多管理职责的职位,但目前不在我的职位描述中。在我正式受雇之前,或者在我的薪水中开始显示其他职责之前,我将一直认为自己“只是”一名程序员。不幸的是,作为一名初级开发人员,转为管理职务不会很快发生。 到目前为止,出色的答案,如果您有其他要添加的内容或需要分享的个人经验,请随时提出来!


4
为什么不建议在同一期/票证中张贴多个缺陷?
我不确定这是否是提出以下概念性问题的地方(肯定不是Stackoverflow)。 我在多项选择题考试(单一答案)中看到了这个问题,类似于ISTQB考试: 为什么不建议在同一期/票证中报告多个缺陷? 一种。为了使报告简洁明了。 b。因为开发人员可能只修复一个错误。 C。因为测试组测试人员是根据发现的错误数量进行评估的。 d。错误管理系统不支持多个错误的此功能。 我唯一的意见是a正确的答案。 b-不能这样,因为fix-feedback-resolved-closed应该避免这种情况。 c-显然是错的。 d -Redmine / Trac插件支持多个字段。 根据答题纸的答案是b。 有人可以解释为什么吗?欢迎对评论提出意见。



9
首先应该是什么:测试或代码审查?
我对编程设计模式和生命周期还很陌生,我想知道,代码检查或测试应该由哪些人来完成,首先应该做什么? 从一方面来看,如果没人检查代码是否有效,为什么还要烦恼代码呢?另一方面,如果您在测试之前进行了检查,则可以及早发现一些错误。 建议使用哪种方法,为什么?

14
软件测试实际上是在专业项目上完成的吗?
我从事过多家公司的许多项目,因为我从事开发工作很长一段时间,而且还是承包商。 我估计只有不到20%的项目经过系统的测试。有条理的测试是指除临时无计划测试之外的所有测试。 我还估计,只有不到10%的项目得到了系统的,有条不紊的测试,他们有专门的测试人员作为团队的一部分,测试计划文档,开发人员在其中编写自动化测试,然后他们还跟踪测试范围并衡量结果。 两个问题 您对此问题的估计百分比是多少? 您在软件测试方面的专业经验是什么? 附加说明 由于有条不紊的测试问题可能会得到非常有偏见的答案(人们喜欢吹嘘自己要优于别人),我鼓励其他开发人员(那些没有受到有条理的测试的人)也提供他们的答案,因为否则,看起来测试就像是到处都可以完成...除了在您的公司。
25 testing  metrics 

5
您如何识别算法的“边缘”情况?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 基本上,您如何找出最坏的情况或最好的情况,以及在遇到其他情况之前可能遇到的其他“边缘”情况,因此,如何为它们准备代码?

8
在代码审查期间编写测试是否有益?
我的一个同事提出了一个我发现很有趣的想法。 假设我们不做TDD,那么由进行审核的人员在代码审阅期间编写测试是否有益? 对于这个问题,假定这是一个纯粹的学术项目,因此没有生命危险。而且该团队是4个人。每个人都知道该语言,并且熟悉所使用的所有工具/库/框架,并且可以编写测试。因此,基本上不是高级全职首席忍者工程师,而是体面的编码人员的人。 我发现的优点: 鼓励在审阅期间对代码有更深入的了解,以编写有意义的测试。 然后,您可以添加由正在测试的代码的作者进行的那些测试的代码审查。 我发现的缺点: 代码编写和测试之间的反馈循环不断增长。 编辑:我知道它不能在“正常”的Web应用程序上正常工作。我想到的是一个极端的案例,在该案例中,您需要实施复杂,科学的算法,这些算法都需要注意细节。让我们假设实现自己的图形库,NLP等。我想知道我们正在编写的代码是否与数据库隔离,并且这样很难理解却不会增加控制级别,而另一个需要了解源代码的人代码并进行有意义的测试,从而使整个过程不太容易受到那些不太明显的bug的影响,这些bug不会使应用程序崩溃,但最终会使您的结果混乱?


7
TDD /测试过多的开销/维护负担?
因此,您已经多次从不真正了解测试价值的人那里听到过。刚开始时,我是敏捷和测试的追随者... 我最近在讨论有关在产品重写上执行TDD的问题,其中当前团队不进行任何级别的单元测试,并且可能从未听说过依赖注入技术或测试模式/设计等(我们什至不会继续清理代码)。 现在,我对产品的重写负全部责任,并被告知,以TDD的方式进行尝试,只会使它成为维护的噩梦,并且对于团队维护来说是不可能的。此外,由于它是一个前端应用程序(不是基于Web的),因此添加测试是没有意义的,因为业务驱动力发生了变化(通过更改当然意味着有所改进),这些测试将过时,其他开发人员将来的项目将无法维护它们,并且将成为它们修复等方面的负担。 我可以理解,在目前没有任何测试经验的团队中,TDD听起来并不好,但是在这种情况下,我的观点是我可以向周围的人教我的实践,但更进一步,我知道TDD会让您变得更好软件。即使我要使用TDD来生产软件,并抛弃所有测试以将其交给维护团队,与从一开始就完全不使用TDD相比,这肯定是更好的方法吗? 我被提到在一个从未听说过的团队的大多数项目中执行TDD时被击落。“接口”的想法和外观奇特的DI构造函数使他们望而却步。 在尝试出售TDD的简短对话中,有人可以帮助我吗?在屈服于公司/团队之前,我通常会有一个简短的辩论窗口。
24 testing  agile  tdd  bdd 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.