发表于: 2019-06-01 21:21:26
0 667
今天完成的事情:复习
明天计划的事情:复习
遇到的问题:无
收获:
软件测试:
用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
软件测试是为了发现错误而执行程序的过程
软件测试的目的:
1.确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件
2.提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息
3.软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程
如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的
单元测试的好处
1,单元测试不但会使你的工作完成得更轻松。而且会令你的设计会变得更好,甚至大大减少你花在调试上面的时间
2,提高代码质量
3,减少bug,快速定位bug
4,放心地修改、重构
5,显得专业(玩笑话)
写单元测试要注意什么
1,不能只测试一条正确执行路径,要考虑到所有可能的情况
2,要确保所有测试都能够通过,避免间接损害
3,如果一个函数复杂到无法单测,那就说明模块的抽象有问题
4,配置不是单元测试的难点,难点是mock(后文讲),做单元测试需要伪造被测函数用到的大部分函数
间接损害:在整个系统中,当某一部分加入了新特性,或者修复了一个bug之后,给系统的其他(与前面可能是互不相关的)部分引入了一个新的bug(或者损害)。如果无视这种损害并且继续开发的话,那么将可能带来一个很危险的问题,最后可能会导致整个系统崩溃,并且没人能够修复。
为什么写单元测试(为什么会拒绝单元测试)
编写单元测试太花时间了?考虑下面问题:
1,对于所编写的代码,你在调试上面画了多少时间?
2,对于以前你自认为正确的代码,而实际上这些代码却存在重大的bug,你画了多少时间在重新确认这些代码上面?
3,对于一个别人报告的bug,你花了多少时间才找出导致这个bug的源码位置?
对于那些没有使用单元测试的程序员而言,上面这些问题所耗费的时间的递增速度是很快的,而且随着项目深入,递增速度会变得更快;而另一方面,适当的单元测试却可以很大程度地减少这些时间,从而为你腾出足够的时间来编写所有的单元测试——甚至可能还有剩余的空闲时间。
运行测试的时间太长?
一般合适的测试是不会让这种情况发生的。
有些真的会花很长时间的,可以把耗时的测试和其他测试分开。
评论