1. 概念
- 软件开发:进行软件系统的开发,功能实现工作
- 软件测试:验证软件功能的正确性
- 软件测试开发:开发测试工具,开发测试脚本,为测试提高效率
1.1 什么是软件测试
- 测试人员验证软件的功能是否满足用户的需求
- 对于软件测试人员,不仅要看出软件符不符合用户的需求,并且不合理的地方要找出来
测试软件功能
- 验证功能是否正常运行
- 验证功能满足用户的需求
1.2 测试工具
- 接口测试:soupUI,postman,jmeter …
- 自动化测试:Java,python,unittest,testNG,robotFramework,selenium工具 …
- 性能测试:loadrunner,jmeter …
- 抓包:Charles,fiddler …
- App测试:appium,Macaca …
1.3 软件测试和软件开发中的调试有什么不同
目的:
- 软件调试:程序员验证软件是否实现了软件需要实现的功能
- 软件测试:测试人员验证软件是否实现了用户的需求
角色:
- 软件调试:开发人员
- 软件测试:测试人员+开发人员
阶段:
- 软件调试:开发阶段
- 软件测试:贯穿整个软件开发过程,处处有软件测试
1.4 小练习
1.5 软件测试的目的和原则
- 目的:验证软件有或没有问题
- 原则:以客户为中心,遵循软件测试的规范、流程、标准和要求
1.6 什么是需求
软件需求:
- 是用户解决问题或达到目标所需条件或权能。
- 是系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。
- 是一种反映上面(1)或(2)所述条件或权能的文档说明。它包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制。
在多数软件公司,会有两部分需求,一部分是用户需求,一部分是软件需求
- 用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略。
- 软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。可以说是由用户需求转化而来,是用户需求的细化
1.7 什么是bug
- 当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。
- 当没有需求规格说明书时,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
1.8 什么是测试用例
测试用例:是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
测试过程中可能会遇到以下问题:
- 不知道是否较全面的测试了所有功能
- 测试的覆盖率无法衡量
- 对新版本的重复测试很难实施
- 存在大量冗余测试影响测试效率
测试用例的产生就是为了解决上述问题