手工测试:就是由人去一个一个输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。
自动化测试:自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
适用场合:配置和兼容性测试、执行压力测试,软件维护时回归测试。
自动化可以测试:崩溃、挂起、错误返回值、返回码、 异常和内存使用。
优点:
- 可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。
- 对程序的回归测试更方便。 详情说明 :回归测试的动作和用例时完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。
- 可以执行一些手工测试困难或不可能进行的测试。详情说明:自动化测试模拟同时有许多用户,从而达到测试的目的
- 更好地利用资源。
- 测试具有一致性和可重复性。详情说明:由于测试是自动执行,每次测试的结果和执行的内容一致性是可以得到保障的,从而达到测试的可重复的效果。
- 测试的复用性。详情说明:由于自动测试通常采用脚本技术,领测认为这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。
- 增加软件信任度。详情说明:由于测试是自用执行的,所以不存在执行过程中的疏忽和错误,完全取决测试的设计质量。一旦软件通过强有的自动测试后,软件的信任度自然增加。
缺点:
- 不能取代手工测试,有很多需要人脑判断结果的测试用例无法用自动工具实现,或者代价太大。
- 手工测试比自动测试发现的缺陷更多。
- 对测试质量的依赖性极大。
- 测试自动化提高有效性。
- 测试自动化可能会制约软件开发。由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发。
web自动化测试工具:
Selenium:
Watir: