加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 测试策略建议 – 需要记录运行方法的验证结果并将其用于测

发布时间:2020-12-15 21:45:11 所属栏目:百科 来源:网络整理
导读:我是测试的新手,我需要一个关于最佳测试策略(及其应用程序)的建议. 这是我的问题: 我有一个程序读取文件并自动提取其结构.我想测试一下这个“智能”提取的方法.最初我可以使用一些文件来检查方法是否正在进行正确的提取.然后我想使用这些文件和(正确的)提取
我是测试的新手,我需要一个关于最佳测试策略(及其应用程序)的建议.
这是我的问题:

我有一个程序读取文件并自动提取其结构.我想测试一下这个“智能”提取的方法.最初我可以使用一些文件来检查方法是否正在进行正确的提取.然后我想使用这些文件和(正确的)提取结果进行测试.由于提取结果已经过验证,它们应该(并且必须)用于进一步的测试.

所以,我有类似的东西:对于“这个特定的文件”,我期待“这个结果”.

问题:

>获取测试的输入文件很容易.我将它们存储在特定目录中.结果怎么样?它们会影响存储文件结构的对象的内容.在这种情况下,我可能还需要将此对象保存在文件中.对于序列化,我担心随着对象结构的改变,重用以前保存的对象将很困难.
>随着越来越多的结果,我可能有数百个文件和结果,测试将花费大量时间.我希望测试时间不会是一个大问题.

我需要测试,因为我在方法中使用的“提取算法”会经常改变.我无法应对所有可能性以获得完美的提取算法.因此,我的解决方案是构建一个初始算法,该算法可以在十几个文件中运行,每次我发现特定文件的算法失败时,我都会更改算法以解决该文件的问题.应该测试此更改,以便先前的文件和结果仍然有效.

有关测试策略的任何建议吗?

解决方法

对于测试,您需要某处可以注入输入测试数据的位置以及可以观察某些行为或输出的位置.

在输入端:文件是否真的是注入输入测试数据的唯一可能性?如果是,则该应用程序没有良好的可测试设计.使用文件进行测试很难维护.在输出端:应用程序似乎不提供观察行为或输出的可能性.这指的是一种不可测试的设计.

即使您找到一种方法来观察我们的输出行为,也只会对所有提取算法进行端到端测试.这种端到端测试很脆弱,也是维护的噩梦.原因是一个不太好的可测试设计.

没有良好的可测试设计,您将无法实施良好的测试策略.您需要更改应用程序的设计.另一方面,您可能会争辩说,如果没有任何测试,您不希望更改设计.这似乎是鸡与蛋的问题.

如何摆脱这种局面?测试和重构策略的组合可能会有所帮助.在高级别,这可能会像这样工作:

>构建一些有代表性的端到端测试.因此即使使用
序列化技巧.这只是为了验证您的程序是否有效
就像你开始重构之前一样.它们充当迁移测试.
>重构你的程序.给它注射和观察的地方.这样
地方被称为接缝.
>因此,您将拥有可测试的块,您可以将其放入
测试工具.
>您重构并在代码中添加新的接缝,以测试更小的
块,直到你达到单元测试的程度
地点.理想情况下,您将所有算法封装到一系列类中,这些类都经过单元测试.

听起来很辛苦?不,实际上它比听起来更难.将应用程序重构为可测试设计需要大量经验.幸运的是,有一个人写了一本关于这个的书:Michael Feather’s ‘Working Effectively with Legacy Code’.

如果你真的,真的想为现有应用程序实现一个好的测试策略,那么请阅读该书.如果您想知道下次可以做得更好,请阅读该书.如果您认为单元测试可能是避免不可测试设计的关键,那么现在就开始学习单元测试.互联网上有很多资源和有关单元测试的书籍.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读