Questions tagged «testing»

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

5
如何在Windows上开发并在Linux上测试和运行?
我是公司内部某些内部软件(用python编写)的两个开发人员之一。软件是一种服务器应用程序,旨在在专用的Linux机器上运行。当前,我们有一个盒子存放着我们的SVN信息库,该盒子也用于测试。问题是我正在Windows上使用Eclipse在工作站上开发它,而该应用程序无法在Windows上运行。 如何正确地组织这样的环境,以使您不会浪费宝贵的时间来转移项目和代码,以便您进行测试? 目前,我正在执行svn checkout,更改一些代码,然后将其上传到开发服务器进行测试(而不是通过svn)。在服务器上对其进行测试,进行更改,然后再次对其进行测试,等等。不断的上传和测试使我发疯。我试图将项目保留在服务器上(检出到主目录),但这会导致Eclipse出现很多问题。 显然,我在这方面没有很多经验,所以我想问一下有关此类问题的最佳实践是什么?

6
如何改善对自己的代码的测试
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 今天,我检查了一些代码的更改,由于某些相当愚蠢但非常关键的操作,结果证明根本无法正常工作。我对此感到非常难过,希望最终能从中学到一些东西。愚蠢的事情是,我以前做过这些事情,而且我总是告诉自己,下次我不会变得如此愚蠢...然后再次发生,我对此感到更糟。 我知道您应该保持警惕,并从错误中吸取教训,但这就是问题:我努力提高自己,我只是看不到如何防止这些事情的发生。 所以,现在我要问你们:测试代码时,您是否有某些基本原则?

5
在以BDD风格编写规范时,应该使用“应该”还是不应该?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 我意识到这有点主观,但是我找不到一个合适的案例: 它“应该做某事”它“应该 做某事” 支持风格的支持者提到,它迫使您实际质疑您要实现的目标,而反对者则认为这是多余的。 是否对此达成共识,或者纯粹是风格问题?
12 testing  bdd 

5
哪种格式最适合第一个不在纸上的原型?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 控制台应用程序(我最喜欢的),快速而草率的表格,MS Paint(用于GUI);在大多数情况下,哪种情况最适合您的标准应用程序?为什么?

1
保持逻辑和物理架构图的更新
在任何涉及具有多个开发人员的分布式系统的软件开发项目中,拥有逻辑和物理体系结构图是最佳实践,但是以我的经验,这些图总是在项目开始时就得到很好的维护,但是在项目发布时不会得到更新维护阶段就开始了。 对于具有很多分布式过程的复杂项目,由于没有人知道所有的知识,因此即使在最初发布之前,这些图也往往会很快变得过时或不准确。 在这种背景下,我想向社区提出以下问题: 拥有准确且最新的逻辑和物理架构图有多重要? 是否有任何工具和流程可以帮助他们保持最新状态? 谁应该负责使它们保持最新状态?系统管理员,开发人员和质量检查团队如何贡献力量?

2
我应该对子类还是抽象父类进行单元测试?
我有一个简单的实现,如Effective Java的第18项(此处扩展了讨论)。它是一个抽象类,提供2个公共方法methodA()和methodB(),这些方法调用子类方法来“填补我无法以抽象方式定义的空白”。 我首先通过创建一个具体的类并为其编写单元测试来开发它。当第二个类到来时,我能够提取常见的行为,在第二个类中实现“缺失的差距”,并且已经准备就绪(当然,单元测试是为第二个子类创建的)。 时光流逝,现在我有4个子类,每个子类实现3个受保护的短方法,这些方法非常具体地针对其具体实现,而骨架实现则完成所有常规工作。 我的问题是,当我创建一个新的实现时,我会重新编写测试: 子类是否调用给定的必需方法? 给定的方法是否具有给定的注释? 从方法A中可以获得预期的结果吗? 从方法B中可以获得预期的结果吗? 虽然看到了这种方法的优点: 它通过测试记录了子类需求 如果重构有问题,它可能会很快失败 对子类进行整体测试,并通过其公共API进行测试(“ methodA()是否起作用?”而不是“此受保护的方法起作用吗?”) 我的问题是对新子类的测试基本上是理所当然的:-这些测试在所有子类中都相同,它们只是更改方法的返回类型(最基本的实现是通用的)和属性I检查测试的断言部分。-通常,子类没有针对其的测试 我喜欢测试集中于子类本身的结果并防止其重构的方式,但是实施测试只是“手动工作”,这一事实使我觉得我做错了。 测试类层次结构时,此问题常见吗?我该如何避免呢? ps:我考虑过测试骨架类,但是创建一个抽象类的模拟对象以进行测试也很奇怪。而且我认为,对抽象类进行的任何重构会改变子类所不期望的行为,因此不会很快被注意到。我的胆量告诉我,“整体”测试子类是这里的首选方法,但是请随时告诉我我错了:) ps2:我已经在Google上搜索了,发现了许多与此主题有关的问题。其中之一是这样的一个具有很大的答案从奈杰尔·索恩,我的情况下,将他的“1号。” 那太好了,但是我现在不能重构,所以我不得不忍受这个问题。如果我可以重构,我会将每个子类都作为一种策略。可以,但是我仍然会测试“主类”并测试策略,但是我不会注意到任何重构会破坏主类和策略之间的集成。 ps3:我找到了一些答案,说测试抽象类“可以接受”。我同意这是可以接受的,但是我想知道在这种情况下哪种方法更可取(我仍然从单元测试开始)

3
单断言单元测试不会违反DRY原理吗?
每当我编写单元测试时,我总是试图在每个测试中使用一个断言,以便在测试失败时简化调试。但是,当我遵循这个规则时,我感到我在每个测试中都在不断复制相同的代码,并且通过进行更多的测试,变得更难回头阅读和维护。 那么单断言测试是否违反DRY? 而是否有一个很好的规律可循找到了很好的平衡,就像刚有每个方法一个测试?* *我意识到可能没有一种适合所有需求的解决方案,但是有没有建议的解决方法?

9
复制并粘贴测试代码:这有多糟糕?
我目前的工作主要是为我们正在处理的各种应用程序编写GUI测试代码。但是,我发现我倾向于在测试中复制和粘贴很多代码。原因是我正在测试的区域趋于足够相似以至于需要重复,但还不够相似以至于无法将代码封装到方法或对象中。我发现,当我尝试更广泛地使用类或方法时,测试变得更加笨重,有时甚至一开始就很难编写。 取而代之的是,我通常从一个部分复制大量测试代码并将其粘贴到另一部分,然后进行我需要的任何细微更改。我不使用更结构化的编码方式,例如使用更多的OO原理或函数。 其他编码人员在编写测试代码时有这种感觉吗?显然,我想遵循DRY和YAGNI原则,但是我发现测试代码(无论如何都用于GUI测试的自动测试代码)会使这些原则难以遵循。还是我只需要更多的编码实践和更好的整体服务系统? 编辑:我正在使用的工具是SilkTest,这是一种称为4Test的专有语言。同样,这些测试主要针对Windows桌面应用程序,但是我也使用此设置对Web应用程序进行了测试。


5
RSpec和Cucumber真的值得吗?
我知道大多数RoR程序员都在测试成瘾者,并且我了解大型测试套件的优势,但是当我开始测试时,我从来没有得到如此大型的套件,而且我总是想知道“我是否以正确的方式进行测试?真的有效率吗?”。我经常处理集成测试,仅测试应用程序的行为方式。 首先,测试真的值得吗?我的意思是,花在编写测试上的时间真的值得吗? 然后,我使用RSpec,我最近发现了Cucumber,使用了一段时间,但我不知道编写所有这些步骤是否真的值得一试?我知道我可以重用步骤,但是我不知道这些步骤是否太完整:例如,我一直在使用a,Given I am logged in as (.+)但是我不知道是否必须在其定义中说,Given there's a user called $1因为如果创建了它就可以复制用户但这并不值得总是先走一步Given I am logged in as (.+)。很多代码可能很少有用。我猜每天测试的零件上都没有新的错误……与RSpec相比,Cucumber真的值得吗?

3
使用HL7消息时会出现什么问题?
我正在为医疗保健企业测试产品,我们正在处理HL7消息。我看到人们抱怨关于HL7的另一个问题,但没有提及具体细节。有人可以给我一些关于我们应该专门寻找哪些问题或问题类别的想法吗? 我们正在使用一些常用的库进行解析。如果有关这些细节或我们正在做的事情会有所帮助,请在评论中让我知道,如果可以的话,我将补充问题。
12 testing  parsing  hl7 

2
测试-内存中数据库与模拟
在编写测试时,为什么有人要使用内存数据库来模拟数据呢? 我可以看到内存数据库对于测试一个人的存储库可能是有益的。但是,如果使用框架(例如Spring Data),则测试存储库将测试框架,而不是测试应用程序逻辑。 但是,模拟似乎更快,并且遵循编写单元测试和TDD时通常采用的相同模式。 那我想念什么呢?何时/为什么内存数据库会受益?

2
在进行游戏开发时,软件测试是否有所不同?
我在阅读本文对一般和游戏开发软件开发之间的差异,作者提出了一些好点的关于软件测试,并指出,例如,该 ...游戏开发人员不愿使用自动化测试,因为面对游戏设计师不断变化的创意需求,这些测试迅速过时。 因此,这种阅读使我想到,当我们处理/测试游戏时,在软件测试中还有哪些其他方面应该与众不同或特别?有人对此有经验吗,或有人听到过有关此事的其他信息?

6
混乱与稳定发展是否构成矛盾?
我是一个拥有5个团队的开发团队的成员,该团队共有大约40个开发人员。我们遵循Scrum方法,并进行了3周的冲刺。我们有一个持续集成设置(Jenkins),其构建流程需要几个小时(由于进行了广泛的自动化测试)。基本上,开发过程运行良好。 但是,我们观察到进入新的Sprint几天后,我们的构建通常会变得不稳定,并且会一直不稳定,直到Sprint结束“提交停止”为止。这样做的不利影响是,构建步骤步入了管道,尤其是UI- / Webtest 几天没有执行(因为仅在“绿色”构建时触发)。因此,新引入的错误通常仅在冲刺的后期才检测到。 每个提交都通过一组基本测试进行验证。验证后,更改将在代码检查(德语)后推送至主版本 基本单元测试每30分钟运行一次,持续时间少于10分钟 集成测试每2h运行一次,持续时间1h UI / Webtest在成功的集成测试中运行,持续时间数小时 取决于谁在冲刺期间负责构建稳定性(每个冲刺都要移交责任),可能会有中间的临时“提交停止”以使构建恢复稳定。 因此,我们想要: 我们的开发团队可以在不受阻碍的冲刺期间开发和提交更改 如果构建步骤失败,我们将放弃构建过程,因为后续的构建结果意义不大 我们的构建过程可为开发人员及时提供质量反馈 给定(2),点(1)和(3)似乎相互矛盾。有没有人有一个很好的做法来应对这个问题? (我们目前正在松开要点(2),即使在失败的构建步骤中也允许继续构建。我还没有任何反馈意见,这如何影响我们的质量) 谢谢西蒙

7
为什么我们需要优先级和严重性?
我了解他们的决定,但是将其分配给发现的问题真的有用吗?我的意思是,要么需要快速修复,要么不要求修复。 我知道如何设置它们,对其进行分类等。我知道IEEE / ISO确实需要这样做。我只是不明白为什么。

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.