软件测试开发软件测试开发认识篇
【软件测试开发】:软件测试开发认识篇
1. 什么是测试?
测试在⽣活中处处可⻅。
1.1 生活中的测试场景
案例⼀ 举⼀个⽇常⽣活案例,商场买⾐服,买⾐服的整个过程中都伴随着测试⾏为 外观测试:初筛选,⾛进⻔店,先挑⾐服,测试是否存在符合个⼈审美的⾐服 试穿测试:选择尺码,测试试穿之后⾐服对个⼈的外观是否有提升 ⾯料测试:纯棉、涤纶、布料… 比 举⼀个⽇常⽣活案例,商场买⾐服,买⾐服的整个过程中都伴随着测试⾏为 外观测试:初筛选,⾛进⻔店,先挑⾐服,测试是否存在符合个⼈审美的⾐服 试穿测试:选择尺码,测试试穿之后⾐服对个⼈的外观是否有提升 ⾯料测试:纯棉、涤纶、布料… 价格测试:询价,⼼理预期是300以下 购买⾐服,交易完成 对某款购物软件进⾏测试 启动测试:点击软件图标,测试软件是否可以正常打开 搜索测试:点击输⼊框,输⼊关键词,点击搜索 商品测试:点击商品进⼊详情⻚ 购物测试:点击购买下单成功 … 对⼀个JAVA程序进⾏测试 测试代码逻辑是否符合预期: a=1,b=2,返回的c是否等于3 a=1,b=-2,返回的c是否等于-1 a=-1,b=2,返回的c是否等于1 a=-1, b=-2,返回的c是否等于-3 … 由此可⻅,测试不仅在⽇常⽣活中以及学习中都处处可⻅。
1.2 为什么需要软件测试
企业为何需要招聘⼤量的测试⼈员呢?
企业最终的⽬的是“盈利”,互联⽹企业借助软件/系统来跟⽤⼾交互从⽽获得盈利,也就是说企业的
受众群体主要是⼴⼤的使⽤⽤⼾,⽽⽤⼾的使⽤感受将直接影响企业的盈利,若产品质量太差将导致⼤量⽤⼾的流失,所以企业⾮常重视测试
1.3 软件测试定义
软件测试就是验证软件产品特性是否满⾜⽤⼾的需求
2. 测试的岗位有哪些
测试的岗位主要分为以下两个⽅⾯:
- 软件测试开发⼯程师 ⼯作重⼼为可测试性以及通⽤测试基础框架。编写单元测试框架和⾃动化测试框架。软件测试开发⼯ 程师关注质量提升和测试覆盖率
- 测试⼯程师
与软件测试开发⼯程师关系密切,但把⽤⼾放在第⼀位来思考。测试⼯程师组织整体测试实践,并进
⾏分析总结,驱动测试执⾏,构建端到端的⾃动化测试。
然⽽我们在投递简历时,会看到各种各样的测试名称,形如:
BOSS直聘⽹站提供的测试岗位名称: 不同的企业对于测试的命名不同,不管是测试⼯程师、功能测试、移动端测试、客⼾端测试等等都是测试岗位,性质要么是测试⼯程师,要么是测试开发⼯程师。 ⾼频⾯试题 软件测试开发⼯程师和测试⼯程师的区别 相同点: 1.都统称为测试⼈员 2.对产品质量负责,保障产品的质量 不同点: 测试开发⽐测试多“开发”⼆字,⽽这个开发并不是指业务开发,因为业务开发是开 发⼈员的主要职责,这⾥的开发指的是需要开发测试效率⼯具,通过效率⼯具来提升测试 效率和测试质量,⽐如我们的⾃动化、性能测试等就属于效率⼯具
3. 软件测试和开发的区别
3.1 ⼯作内容
开发⼈员:
- 通过⼀些编程语⾔,如C,C++,C#,Java,Python,PHP实现软件的特性
- 修改BUG 测试⼈员:
- 编写测试⽤例,执⾏测试⽤例,发现软件的缺陷,验收缺陷…
- 利⽤测试⼯具保障软件的质量
3.2 难易程度上
开发: 应届⽣要求掌握语⾔基础、开发框架、数据库、数据结构、Linux等课程在职⼈员还需掌握更多中间件如:Redis、rabbitMQ、ES等要求掌握以上技术并能运⽤在代码开发中 测试: 应届⽣要求掌握语⾔基础、开发框架、数据库、数据结构、Linux等课程掌握测试技能:测试概念、设计测试⽤例、执⾏测试等 在职⼈员还需掌握更多中间件如:Redis、rabbitMQ、ES等 总结:开发⼴度⼩,专业度⾼。测试⼴度⼤,专业度相对较低,⼤型互联⽹企业对测试⼈员的专业要求可能跟开发差不多。
3.3 ⼯作环境
很多公司,测试⼈员和开发⼈员都是坐在⼀个办公楼层的不同区域,所以他们的⼯作环境,⼯作 设备基本都是⼀样的
3.4 薪⽔
中⼩企业总体⽐研发低,⾃动化等专业测试和研发基本⽆差距。⼤⼚研发测试薪资基本⽆差别以
下是从某⽹站根据提供的样本统计出来的软件测试和开发的平均校招薪资
3.5 其他不同
测试⼈员经常会进⾏测试动作,⽽开发⼈员进⾏进⾏调试动作,调试和测试是同⼀个含义吗?
⾼频⾯试题
1.⾛测试岗位为什么还要学习开发知识?
测试贯穿整个软件开发⽣命周期
1)测试⼈员也需要编写代码,如⾃动化测试、性能测试、开发测试效率⼯具等。测试⼈员需要能够看懂代码、了解开发框架。
2)学好开发知识能够提⾼软件测试质量。通过查看代码中数据的⾛向能够更好的从代码层⾯去发现问题。
4. 优秀的软件测试⼈员具备的素质
4.1 综合能⼒
沟通能⼒ 测试⼯程师的沟通能⼒会直接影响⼯作开展的效率。良好的沟通能⼒是测试⼯程师获得更好发展 的“敲⻔砖⾯试⼯作都需要沟通 ⾯试的时候,有些同学就存在明明知道是什么,却怎么都表达不出来或者表达不清楚,导致⾯试 评价⽐较差 快速学习能⼒ 对不同的业务需求和功能的快速学习和理解能⼒ 未来我们同学都会经历跳槽,不同的公司,业务不⼀样,所以测试⼈员需要具备快速学习业务的能⼒ 对于测试新技术和新⽅法的学习能⼒计算机⾏业发展迅速,每⼀个技术⼈员需要时刻保持⼀个学习新技术的能⼒,不断提升⾃⼰,从⽽适应业界的需求对不同语⾔的快速学习能⼒ ⼤多同学在⼯作之前基本掌握⼀到两⻔语⾔,⽐特的同学基本都掌握C、C++或者C、JAVA 然后实际在⼯作中,可能需要接触其他的语⾔,⽐如PHP、GO、Python等 开发能⼒ 测试⼈员除了保障项⽬质量之外,也需要针对当前业务开发效率⼯具,来提升测试效率和质量 如⾃动化、性能测试等就是效率⼯具 ⽂字能⼒ 测试⼈员需要编写各项⽂档,如测试计划、测试⽤例、测试报告等等
4.2 掌握⾃动化测试技术
⾃动化测试技术在测试领域中占有举⾜轻重的地位,掌握⾃动化测试技术,可以将测试⼈员从⼤量重 复性的⼿⼯劳动中解放出来,这样可以把更多的精⼒花在更多类型的测试上 浅浅认识⼀下⾃动化 经常听到⾃动化⼀词,到底什么是⾃动化呢? 在⽇常⽣活中,⾃动洗⼿液的出现,避免了⼈们按压瓶⼦动作,在疫情阶段使⽤⾃动洗⼿液有效减少了交叉感染的⻛险 在农业上⾃动洒⽔器的出现⼤⾯积的⼟地也能够实现快速、均匀的洒⽔ 在交通上交通灯的出现。使得交通有序进⾏,极⼤减少了堵⻋或其他事故的概率 在测试上我们常常会⻅到接⼝⾃动化、UI⾃动化web⾃动化移动端⾃动化接⼝⾃动化能够 ⾃动的去请求接⼝并校验接⼝返回属性是否符合预期结果;UI⾃动化能够⾃动在界⾯或者移动端上 模拟⼈的⾏为进⾏操作,并检查元素和操作等是否符合预期结果
4.3 测试⽤例的设计能⼒
测试⽤例设计能⼒是指,⽆论对于什么类型的测试,都能够设计出⾼效地发现缺陷,保证产品质量的 优秀测试⽤例 如何提⾼测试⽤例设计的能⼒? 1.掌握设计测试⽤例的⽅法 2.阅读好的测试⽤例设计案例 3.多写多练,积累,总结
4.4 探索性思维
测试⼯程师在执⾏测试的过程中不断学习被测系统,结合⾃⼰的经验,知识,直觉,进⾏系统的错误 猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。探索性思维的质量取决于测试⼈员的经验 ⽣活中有很多要做的事情都需要⼈们具备探索性思维 ⽐如炒菜,油温的⼤⼩控制,⽕候⼤⼩的控制,调味品量的控制都⾮常考验厨师的探索性思维炒的好那叫菜,炒的不好那就是放毒了…
4.5 兴趣
兴趣是就业择岗的重要因素之⼀,选择了但是仍然对个⼈的⼯作性质不感兴趣,可想⽽知,这样的选择也不会⾛的太远 这个时候是不是有同学准备下线了,先别着急⾛,测试的魅⼒你还没开始了解呢,上到后⾯的⾃动化和性能测试课程,那还不得拿捏的明明⽩⽩的!
4.6 责任感和压⼒
责任感是任何⼯作的都需要的对于测试⼯作者⽽⾔ 测试往往是产品质量的最后的把关者由于测试⼯作成效很难衡量测试⽤例执⾏bug数⽬的多少 都⽆法说明产品的质量是否合格虽然在敏捷模型中团队中每个⼈都需要对产品质量负责,但是产品 的测试质量是跟测试⼈员那密切相关的。所以,责任感是最重要的测试必备素质之⼀ 压⼒,测试⼯作者,特别是属于互联⽹⾏业需要能够抗住各种压⼒ ⾼频⾯试题 为什么⾛测试岗位⽽不⾛开发岗位? 回答思路:从岗位⼯作性质分析+个⼈性格/爱好+个⼈职业规划三个⽅⾯阐述 1)个⼈兴趣爱好:从性格和兴趣出发,测试⼯作需要测试⼈员具备良好的耐⼼、细⼼,接触了测试内容后对测试⼯作产⽣浓厚兴趣 2)岗位性质:不管是测试还是测试开发都统称为测试⼈员,测试⼈员主要以保障项⽬测试 质量为主,通过开发⼀些测试效率⼯具(⽐如我们学的⾃动化就是效能⼯具,除此之外还有我们课件上写的内存泄漏⼯具等等)来提⾼测试效率⽽软件开发主要以业务编码为主 3)个⼈职业规划:⼤学期间就树⽴了⾛测试⽅向的⽬标,今后将继续提⾼测试和开发能⼒,争取在测试领域做出⼀番有影响⼒的事务