Questions tagged «testing»

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

11
为什么使用System.out.println()这么糟糕?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 当然,对错误消息或警告使用日志记录框架非常有用。但是有时候如果我想在短时间内尝试一些新的东西,我会使用System.out.println()。 使用System.out.println()进行快速测试真的很糟糕吗?

3
我应该在测试方法中使用try catch吗?
我正在做单元测试。 我正在尝试测试一个功能。 我从测试组件中调用它。但是,我想,如果远程功能不能处理异常,那么我的测试器组件也将获得异常。 那么我应该担心在测试器组件中出现异常吗? 谢谢。 编辑: PS: 抛出错误是件好事,但仅对其他功能有用,直到最后一个选择才对最终用户有效! 天哪,我写了一个编程报价!

3
运输测试代码。你为什么不呢?
我想将测试代码与产品一起提供。具体来说,提供一个选项,以便拥有我们程序副本的任何人都可以单击“自检”按钮或在命令行上通过--self-test并运行完整的单元| 集成测试。 我主要是想这样做,以帮助调试在现场发现的问题,因此,当最终用户收到错误报告时,“并且这三项测试在我的计算机上都失败了”,这有可能会为它提供支持。我希望手动测试仪能够运行该单元| 集成测试。 但是,团队的测试认为测试代码不是生产代码,因此不应发货。因为大多数开源项目都附带了一个测试套件,所以我并没有真正理解这个论点。在封闭的软件中,这确实不寻常。 我想为论证的任何方面提供证据或轶事。我已经最好地猜测了哪个堆栈交换站点最合适,但是如果这不合适,请告诉我。

3
当您无法重现环境时,如何进行测试和优化?
过去,我曾在多种环境中工作过。桌面应用程序,游戏,嵌入式内容,Web服务,命令行作业,网站,数据库报告等。所有这些环境都具有相同的特征:无论它们的复杂性如何,无论它们的大小如何,我都可以始终在我的机器上或开发环境中对应用程序的子集或分片进行测试。 今天我没有。今天,我发现自己处于主要关注可伸缩性的环境中。复制环境的成本过高。截取一部分环境,虽然很合理(某些部分需要模拟,或者不能在单实例模式下使用),但由于破坏了并发性和负载真正的系统遇到。即使是小的“测试”系统也有其缺陷。当您有2个节点和64个节点时,事情的表现会有所不同。 我通常的优化方法(度量,尝试某些操作,验证正确性,度量差异,重复)在这里不起作用,因为我无法有效地对问题的各个部分(并发鲁棒性和性能降低)进行第2步和第3步加载)。这种情况似乎并不独特。在这种环境下执行此类任务的常用方法是什么? 有一些相关的问题: 这个问题与硬件(如频谱分析仪)不可用有关,可以(相对)轻松地进行仿真。 这个问题是关于追踪仅存在于生产环境中的错误,这很有帮助-但是是另一种活动。

3
如何测试数据访问层?
我有一个DAO方法,该方法利用Spring进行JDBC访问。它计算出卖家出售商品的成功率。 这是代码: public BigDecimal getSellingSuccessRate(long seller_id) { String sql = "SELECT SUM(IF(sold_price IS NOT NULL, 1, 0))/SUM(1) FROM transaction WHERE seller_id = ?"; Object[] args = {seller_id}; return getJdbcTemplate().queryForObject(sql, args, BigDecimal.class); } 我应该如何使用JUnit测试此方法或任何DAO方法?有哪些最佳实践来测试数据访问逻辑?我正在考虑针对加载了一些数据的可嵌入数据库进行测试,但是就RDBMS和架构而言,我们不应该进行类似于生产环境的集成测试吗?

2
人们如何维护他们的测试套件?
我尤其对以下方面感到好奇: 您怎么知道您的测试用例是错误的(或已过期)并且需要修复(或丢弃)?我的意思是,即使一个测试用例变得无效,它仍然可以通过并保持沉默,这可能使您错误地认为您的软件可以正常工作。那么,您如何认识到测试套件中的此类问题呢? 您怎么知道您的测试套件已不再足够,应该添加新的测试用例?我想这与需求更改有关,但是是否有任何系统的方法来检查测试套件的适当性?

7
测试人员被认为是低调的吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我碰巧认识一些系统管理员,据他说,与开发人员相比,测试人员在组织中没有得到优先考虑。毫无疑问,没有测试人员就不可能发布软件,但是我从来没有把手放在测试上,所以对此没有太多的了解。无意冒犯。
17 testing 

9
程序员应该帮助测试人员设计测试吗?
程序员应该在设计测试方面为测试人员提供多少帮助? 我认为他们根本不应该提供帮助。我担心的是,如果他们帮助测试人员为自己的代码设计测试,他们将以自己的偏见和对该代码的盲点“感染”测试人员。 我认为这些要求应该足以提供测试人员创建测试所需的信息。如果实现的某些部分让程序员感到不安,那么我认为他们有责任实施单元测试来测试该部分,甚至运行自己的非正式系统测试来测试该部分。 不过,并非我认识的每个人都对此表示赞同(并且我在一定程度上理解了他们的一些观点)。其他人对此有何看法?文献中有没有讨论过这个问题?
17 team  testing 

7
在将团队转换为TDD以实现全面覆盖之后,编写所有可能的测试用例是一个好主意吗?
假设我们有一个大型企业级应用程序,而没有任何单元/功能测试。由于非常紧迫的期限,因此在开发过程中没有测试驱动的开发过程(我知道我们永远不能在不确定的情况下承诺任何紧迫的期限,但是已经完成了!) 既然所有的截止日期都过去了,事情变得平静了,每个人都同意将我们转变成一个富有成效的基于TDD / BDD的团队...是的! 现在的问题是关于我们已经拥有的代码:(1)停止大多数开发并从头开始编写所有可能的测试用例还是可以的,尽管一切都可以很好地进行(尽管!)。 ?或(2)最好等待一些不好的事情发生,然后在修复过程中编写新的单元测试,或者(3)甚至忘记以前的代码,而只为新代码编写单元测试,并将所有内容推迟到下一个主要重构中。 有几个好的,如相关的文章这一个。考虑到我们的时间非常有限,还有许多其他项目/作品正在等待我们,我仍然不确定是否值得为此进行投资。 注意:这个问题正在解释/想象开发团队中一个完全尴尬的情况。这与我或我的任何同事无关;这只是一个假想的情况。您可能会认为这种情况永远都不会发生,否则开发经理会造成这种混乱!但是无论如何,已经完成了。如果可能的话,请不要仅仅因为您认为这永远不会发生而投票。

5
在TDD中,如果我编写的测试用例在不修改生产代码的情况下通过了,那意味着什么?
这些是Robert C. Martin的TDD规则: 除非要通过失败的单元测试,否则不允许编写任何生产代码。 您不得编写任何足以使单元测试失败的单元测试。编译失败就是失败。 您不能编写任何足以通过一项失败的单元测试的生产代码。 当我编写一个看似值得但未更改生产代码的测试通过时: 这是否表示我做错了? 如果可以帮助,将来是否应该避免编写此类测试? 我应该将该测试留在那里还是将其删除? 注意: 我在这里试图问这个问题:我可以从通过单元测试开始吗? 但是直到现在我还不能很好地阐明这个问题。

3
您如何测试仅用于查询外部API但API使用复杂查询语法的函数?
唯一的逻辑是外部API的查询语法。我不想测试它是否查询api,我想测试它是否以返回正确数据的方式查询它。例如,一些伪代码: function retrieve_related_data(id) { query = "[potentially long, syntactically complex query that uses param id to get some data]"; results = api_wrapper.query(query); return results; } 一个由API组成的更具体的示例: function retrieveLifeSupportingObjectsWithinRegion(id) { query = " within region(" + id + ") as r find objects matching hydration>0 and temp_range has 75 send name, …

1
如何对REST Web服务进行单元测试?
我是单元测试的新手,我有一个REST Web方法,它仅调用DB并填充DTO。伪代码是 public object GetCustomer(int id) { CustomerDTO objCust = //get from DB return objCust; } 我的疑问是如何编写针对这些方法的测试以及要包括的测试类型(集成/单元)。对于单元测试,是否需要命中数据库。如果是这样,并且我传递了一个客户ID并执行了一些断言,则数据可能会更改,最终导致失败。 我想我在这里缺少了解这些概念的内容。


5
如何使用C#和NUnit构建GUI应用程序的单元测试
我被要求做一个小项目,为我们的一个客户提供一个简单的应用程序。通常,我会在后端代码上工作,在那里我已经解决了所有测试需求,而且我还没有为GUI编写测试的乐趣,因此我不清楚应该如何设置EXE的测试代码和工具。 我的第一个直觉是简单地将测试与应用程序代码一起包含,但是这将需要提供一些特定于测试的依赖项,而我已被指示不要将其交付给客户。我也无法从任何现金中提取现金用于专用测试工具,因此我需要使用手边的工具(StoryQ,RhinoMocks和NUnit),这实际上足以测试一个简单的GUI应用程序的行为。据我所知,这使我不得不在保持设计非常简单或为测试而故意过度设计之间寻求一个良好的平衡。似乎我要么像往常一样在单独的库中构建具有业务逻辑的应用程序并针对该库进行测试,要么找到其他机制使我可以执行该应用程序,而不会破坏应用程序设计所没有的其他模块真的需要。 编辑: 请注意,这个问题是关于如何构造NUnit和我的可执行文件之间的关系(而不是DLL),而不是关于如何分离表示和业务逻辑。 /编辑 所以我的问题是: 是否有特定/推荐的方法来配置带有单元测试的简单GUI应用程序,以使我能够使用手头的工具来充分检查状态和行为,而又无需过度设计? 我是否错过了一些有关测试EXE(而不是DLL)时应调用/配置NUnit的方式的基本知识? 您能否提供或指出我如何实现所有这些目的的示例? 我意识到可能有不止一种方法可以执行此操作,因此我正在根据您的经验寻找具体的实施准则。
16 c#  testing  gui  nunit 

5
如何测试刻录CD而不浪费CD的软件?
我想编写一个可用于刻录CD(音乐)的应用程序。我知道我还是应该用真实的CD对其进行测试,但是我不想每次做小小的改动时都这样做。但是我确实想知道并测试是否会刻录正确的数据,因此您不会损坏CD。 我使用的是仅公开API才能直接刻录到物理驱动器的库;它不允许您写入磁盘映像(这将更易于测试)。 我如何在不浪费CD和时间进行每次更改/更改的情况下进行测试?
16 testing  hardware 

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.