1.软件测试的概念和目的
软件测试最基本的活动就是找Bug
目的:验证软件有或者没有问题。
原则:以客户为中心,遵循软件测试的规范、流程、标准和要求。
2.什么是需求
用户需求:可以理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。
软件需求:也叫功能需求,该需求会详细描述开发人员必须实现的软件功能。软件需求是测试人员进行测试工作的基本依据。
3.什么是bug
凡是实现效果和需求不相符的都可以是bug。当且仅当规格说明是存在的并且正确,程序与规格说明之间不匹配,就是错误的。如果没有需求规格说明书,判断标准以最终用户为准,程序没有实现最终用户合理预期的功能要求时,就是软件错误。
4.如何描述一个bug
(1)发现问题的版本
开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于统计和分析每个版本的质量。
(2)问题出现的环境
环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是app项目,需要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。
(3)错误重现的步骤
描述问题重现的最短步骤。
(4)预期行为的描述
要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需求提出的故障,能写明需求的来源是最好的。
(5)错误行为的描述
描述错误的现象。crash等可以上传log,UI问题可以有截图。
(6)其他
某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。有些有优先级的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高。
(7)不要把多个bug放到一起
在无法确认是同一段代码造成的故障时,不要将bug放在一起提交。
5.测试和研发的区别
难易程度:开发广度小,专业度高。测试广度大,专业度低。
发展前景:自动化测试、安全测试等领域发展前景和研发基本一致。
技能要求:测试要求更广泛的业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力。
6.测试和调试的区别
目的不同
测试的任务是发现程序中的缺陷;调试的任务是发现问题并解决问题。