冒烟测试和回归测试的区别:
冒烟测试是自由测试的一种。冒烟测试(smoketest)在测试中发现问题,找到了一个Bug,然后开发人员会来修复这个Bug。这时想知道这次修复是否真的解决了程序的Bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为SmokeTest。在很多情况下,做SmokeTest是开发人员在试图解决一个问题的时候,造成了其它功能模块一系列的连锁反应,原因可能是只集中考虑了一开始的那个问题,而忽略其它的问题,这就可能引起了新的Bug。SmokeTest优点是节省测试时间,防止build失败。缺点是覆盖率还是比较低。
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。
通俗的讲,回归测试是指一系列的流程,可以发生在任何一个阶段,包括单元测试、集成测试和系统测试 。而冒烟测试是指的是针对某一个已经提交的bug是否得到解决。
自动化测试的意义 :
对程序新版本运行前一版本执行的测试, 提高回归测试效率, 可以更快地将软件推向市场
可以运行更多更频繁的测试, 比如冒烟测试
可以执行手工测试困难或不可能做的测试, 比如大量的重复操作或者集成测试
更好地利用资源, 比如测试仪器或者被测对象
测试具有一致性和可重复性, 即自动化测试的步骤和结果是完全一样的
测试的复用性, 即自动化测试脚本可以拆分开给其它测试脚本使用
增加软件信任度, 通过自动化测试提高了测试效率, 可把节约的时间拿出来做更多的测试
自动化测试的限制 :
不能取代手工测试, 自动化测试只能提高测试效率, 不能提高测试有效性, 即不可能发现更多缺陷
手工测试比自动测试发现的缺陷更多
对测试设计依赖性极大, 测试设计的不好会遗漏问题
自动化测试对软件开发具有很大的依赖性, 开发上出现变更可能导致前面的自动化测试完全失效
工具本身并不具备想象力, 工具不具有智能
其他测试阶段:
单元测试、集成测试、系统测试是软件开发过程中在软
件组织内部进行的测试阶段
软件正式发布前还可能进行有用户参与的其他一些测试,
如:
验收测试(UAT)-User Accept Testing:
验收测试是以用户为主的测试,验收组应该由项目组成员、用户代表等组成
验收测试根据合同、《需求规格说明书》或《验收测试计划》对成品进行验收测试
α(ALPHA)测试:
α 测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试
α测试时,软件在一个自然设置状态下使用。开发者坐在用户旁,随时记下错误情况和使用中的问题。这是在受控制的环境下进行的测试α测试的目的主要是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和技术支持)
β(BETA)测试
β测试是由软件的多个用户在一个或多个用户的实际使用环境(生产环境)下进行的测试与α测试不同的是,β测试时开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用