软件测试的7个错误

尽管大多数开发人员都知道测试的重要性,但似乎很多开发人员仍未进行足够的测试。 而且,如果他们编写测试,那么他们只会测试错误。

单元测试

如果某些测试是在应用程序中编写的,则大多数将是单元测试。 仅通过调用所有实用程序方法,传递一些值并检查是否返回了预期的结果来测试实用程序类很容易。
这里出现第一个错误 。 大多数人没有开箱即用的想法,或者不够。 您可以测试1 +1 = 2,2 +1 = 3以及3 +1 =4。但是,进行几乎相同的测试3次有什么好处? 最好测试边界情况。 sum()方法的参数是原始类型还是对象? 如果它们是对象,则传递空值会怎样? 如果引发异常,那是预期的异常吗? 是否清楚地说明了问题所在?

CK

例如,如果服务层经过了单元测试,则应模拟所有其他组件(如DAO层)。 在许多情况下,这是手动完成的。 那是第二个错误

通过手动模拟,您的模拟将与实现紧密耦合。 最好使用模拟框架。 他们为此而生。 只要相信他们会以您想要的方式创建模拟即可。 一些模拟框架比其他框架能做更多的事情,一些框架比其他框架更易于使用。 我最喜欢的模拟框架是Mockito,因为它功能强大且简单。 EasyMock是迄今为止最著名的,但是imo使用起来有点复杂。 又是什么顺序? 期待,重播,断言还是……?
因此,这不仅是选择模拟框架的问题。 选择正确的对象也是一个问题。

集成测试

集成测试是对应用程序不同集成部分的测试,而单元测试仅测试LUW(逻辑工作单元)。 集成测试中最著名的类型是DAO层的测试。 在这些测试中,将验证多个方面:输入参数,ORM工具的使用,所生成查询的正确性(功能性),是否可以访问数据库,查询是否有效以及正确的事实。返回ResultSet。

经常第三个错误是,开发人员在dbUnit XML数据集中提供了测试数据。 在大多数情况下,此数据不代表实时数据。 处理此问题的最佳方法是让职能人员提供并维护此测试数据。 因为您不想让它们使用特定的XML格式,所以使用XlsDataSet格式是一个好习惯。 可以在Excel工作表中提供数据。 选项卡的名称是表,在第一行中,每一列都包含该列的名称,在所有其他行中,添加有效数据。 每个选项卡的选项卡从左到右都将插入DB中。 删除是通过另一种方式完成的。

功能测试

功能测试经常被遗忘,因为人们认为它们很难维护且成本很高。 的确,您必须对其进行调整以使它们可维护,但是一遍又一遍地手动执行所有相同的测试会花费更多。 同样,当通过持续集成对功能进行测试和自动化时,也无需担心屏幕/功能将在下一版本中破坏。

Selenium是一个很棒的框架,能够在浏览器中记录功能。 这里第四个错误 。 大多数人只会按照自己的方式记录和重放测试。 Selenium通过其HTML ID跟踪HTML组件。 如果您未在HTML代码中指定id,则在更新页面时可以轻松更改它们。 即使功能仍然有效,这也会立即破坏测试。

第五个错误是仅将记录的测试粘贴到JUnit测试中。 诸如登录和注销,等待响应的时间等常用功能应添加到更高级别。 例如,可以在每次测试之前进行登录,然后进行注销。 这样,如果登录或注销功能发生某些变化,测试将不会中断。

第六个错误是缺少测试逻辑流。 插入,搜索,更新和删除完全可以独立工作,但是从创建,搜索,更新直到删除相同条目的整个流程将不起作用。 TestSuite是将多个测试组合在一起并按顺序运行它们的好方法。

BDD

错误七 :大多数测试是技术测试,而不是功能测试。 测试逻辑行为比测试事物在技术上是否有效更为重要。 这可以通过行为驱动设计来完成。

从某些方面来看,当事件发生时,结果应该是什么? Mockito有一些很棒的东西,可以轻松地以BDD方式编写测试。

参考: about:software开发博客上来自我们JCG合作伙伴 Glenn Dejaeger的7个软件测试错误


翻译自: https://www.javacodegeeks.com/2012/01/7-mistakes-of-software-testing.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值