本文目录
初识软件测试
1.什么是软件测试
软件测试是验证软件是否满足客户的需求,(它不以测试人员的主观意愿去判断软件的质量。)软件测试就是证明软件不存在错误的过程。不运行系统或者程序也可以进行软件测试。(动态测试\静态测试)。软件测试就是找bug或为了证明程序能够正确运行。(有点片面)
2. 软件测试和软件开发有什么区别
2.1 软件测试和调试的区别
- 目的不同:软件测试是检查软件的质量(以需求为标准);
软件调试是开发人员为了检查程序是否实现了(开发区啊人员)想让程序实现的功能。 - 人员不一样:软件测试,黑盒测试工程师,白盒测试工程师,开发人员(单元测试/或者白盒测试);
软件调试:开发人员。 - 执行的阶段不同
测试贯穿整个软件开发的生命周期,调试一般是在开发阶段。
(软件开发生命周期——需求分析>计划>设计>开发>测试>运行)
2.2 测试和开发难易程度和技能要求
- 软件测试开发广度大,专业度低(接口测试——postman,soupui,Charles;抓包——fiddler Charles;模拟弱网工具——性能测试;自动化测试——Java,Python,ruby,unittest,TestNG;安全测试——网络知识,Linux,tomcat,数据库)
- 软件开发开发广度小,专业度高(如Java工程师,主要要学Java比较深入。)
3. 一个优秀的测试人员应该具备什么特质?
- 回答的大的方向:兴趣,技能 ,能力,责任感和压力。
- 关于能力:
快速学习能力;
沟通能力;
文字能力;
开发能力; - 责任感和压力
责任感:测试往往是产品的最后一个检验者;测试的工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品是否能够交给用户使用。所以,责任感是最重要的测试必备素质之一。
压力:来自开发人员、用户、上级、自己的压力。测试人员的压力比想象中的要大。
4. 其他
4.1 软件测试岗位有哪些?
- 软件测试开发工程师(SET),software engineer in test。google的角色划分开发角色,工作重心为可测试性以及通用测试基础框架。编写单元测试框架和自动化测试框架。SET关注质量提升和测试覆盖率。
- 测试工程师(TE),test engineer。google的角色划分与SET关系密切,但把用户放在第一位来思考。TE组织整体测试实践,并进行分析总结,驱动测试执行,构建端到端的自动化测试。
- 软件开发测试工程师(SDET),software development engineer in test,微软的角色划分
通常称为测试人员(Tester),负责高标准的测试和质量保证,需要编程能力。 - 按测试对象划分:WEB测试工程师、 APP测试工程师、游戏测试工程师 、嵌入式测试工程师。
- 按是否手工:手工测试、自动化测试。
- 按测试分类:功能测试、性能测试、安全测试等。
- 按级别:初级、中级、高级、资深、组长、主管、经理、总监等
4.2 软件测试的学习方式及内容
学习方法:以实践为主,理论为辅。
学习内容:概念–基础-用例-进阶-管理-项目实践-工具(禅道-持续集成-功能自动化-性能自动化