什么是软件测试?
软件测试最基本的活动就是找bug。
- 1979年,Glenford Myers(美 梅尔斯),<软件测试艺术>[The Art of Sortware Testing]:为了发现错误而执行或者系统的过程
- 1983年。Bill Hetzel在《软件测试完全指南》(Complete Guide of Sortware Testing)一书中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。
- 1983年,IEEE软件工程标准术语:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试的发展
- 软件调试
- 独立的软件测试(1950~)
- 软件测试的第一次定义(1973~Bill Hetzel),软件测试就是对程序能够按预期的要求运行建立起一种信息
- 软件成为专门的学科(1980~)
- 开发与测试的融合(2000~)
测试与调试的区别
- 目的不同
–测试的任务是发现程序中的缺陷;调试的任务是定位并且解决程序中的问题。 - 参与角色不同
–测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开
发人员执行。调试由开发人员完成。 - 执行的阶段不同
–测试贯穿整个软件开发生命周期,调试一般在开发阶段
软件测试岗位
- 软件测试开发工程师(SET),software engineer in test
- 测试工程师(TE),test engineer
- 软件开发测试工程师(SDET),software development engineer in test
- 按测试对象分:WEB测试工程师、APP测试工程师、游戏测试工程师】嵌入式测试工程师
- 按是否手工分:手工测试、自动化测试
- 按测试分:功能测试、性能测试、安全测试
- 按级别分:初级、中级、高级、资深、组长、主管、经理、总监等
软件测试和开发的区别:
- 难易程度
开发光度小,专业度高;
测试广度大。专业度低; - 工作环境
基本类似 - 薪水
中小型企业测试比开发低
自动化等专业测试和开发领域基本无差距
大企业测试与开发基本无差别 - 繁忙程度
一般测试比开发轻松,但在产品发布前压力较大 - 技能要求
测试的要求更加广发:业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分析和理解,编程能力
测试人员应具备的素质
- 思维模式
逆向思维、发散性思维 - 兴趣
- 性格特征
敏感、不浮躁、成就感、好奇心 - 能力
学习能力、沟通能力、文字能力、开发能力 - 责任感和压力
学习方法
以实践为主,理论为辅