本节课课程⽬标
- 什么是测试
- 测试的岗位有哪些
- 软件测试和开发的区别
- 优秀的测试⼈员需要具备的素质
1. 什么是测试?
测试在⽣活中处处可⻅。
1.1 生活中的测试场景
案例⼀
举⼀个⽇常⽣活案例,商场买⾐服,买⾐服的整个过程中都伴随着测试⾏为
外观测试:初筛选,⾛进⻔店,先挑⾐服,测试是否存在符合个⼈审美的⾐服
试穿测试:选择尺码,测试试穿之后⾐服对个⼈的外观是否有提升
⾯料测试:纯棉、涤纶、布料....
价格测试:询价,⼼理预期是300以下
购买⾐服,交易完成
案例二
对某款购物软件进⾏测试
启动测试:点击软件图标,测试软件是否可以正常打开
搜索测试:点击输⼊框,输⼊关键词,点击搜索
商品测试:点击商品进⼊详情⻚
购物测试:点击购买下单成功
......
案例三
对⼀个JAVA程序进⾏测试
private static int mySub(int a,int b){ int c=a+b; return c; }测试代码逻辑是否符合预期:
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. 测试的岗位有哪些
测试的岗位主要分为以下两个⽅⾯:
1. 软件测试开发⼯程师 (简称测开)
⼯作重⼼为可测试性以及通⽤测试基础框架。编写单元测试框架和⾃动化测试框架。软件测试开发⼯程师关注质量提升和测试覆盖率。工作重点就是业务测试,开发测试效率工具(自动化、性能测试、覆盖率...等)
2. 测试⼯程师
与软件测试开发⼯程师关系密切,但把⽤⼾放在第⼀位来思考。测试⼯程师组织整体测试实践,并进⾏分析总结,驱动测试执⾏,构建端到端的⾃动化测试。工作重点就是业务测试 对于纯测试工程师,更多的测试操作是点点点的测试.
然⽽我们在投递简历时,会看到各种各样的测试名称,BOSS直聘⽹站提供的测试岗位名称形如:
不同的企业对于测试的命名不同,不管是测试⼯程师、功能测试、移动端测试、客户端测试等等都是测试岗位,性质要么是测试⼯程师,要么是测试开发⼯程师。
注意:投递测试岗位时不⽤关注岗位名称和岗位要求,对于校招⽣来说是没有明确的语⾔或者技能要求的,⾯试主要从简历上写的内容进⾏考察。
💡 ⾼频⾯试题
Q1:软件测试开发⼯程师和测试⼯程师的区别
相同点:
1.都统称为测试⼈员
2.对产品质量负责,保障产品的质量
不同点:
测试开发⽐测试多“开发”⼆字,⽽这个开发并不是指业务开发,因为业务开发是开发⼈员的主要职责,这⾥的开发指的是需要开发测试效率⼯具,通过效率⼯具来提升测试效率和测试质量,⽐如我们的⾃动化、性能测试等就属于效率⼯具
Q2:效率工具能替代测试人员吗?
效率工具是测试人员开发出来的,测试人员也需要进行后期的工具管理,因此效率工具不能替代测试人员!!!
Q3:测试开发就是进行测试的工作同时进行业务开发吗?
对于测试人员来说,是没有权限开发业务代码,这里的开发是测试效率工具的开发。效率工具一方面可以提高测试效率,另一方面可以提高测试质量
3.调试和测试
测试⼈员经常会进⾏测试动作,⽽开发⼈员进⾏进⾏调试动作,调试和测试是同⼀个含义吗?
|
维度 |
调试 | 测试 |
|
⽬的 |
调试的任务是定位并且解决程序中的问题 |
测试的任务是发现程序中的缺陷 |
|
参与⻆⾊ |
主要由开发⼈员完成 |
测试主要是由测试⼈员和开发⼈员来执⾏, ⿊盒测试主要由测试⼈员完成、单元/集成测试主要是由开发⼈员执⾏ |
|
执⾏阶段 |
开发阶段 |
测试贯穿整个软件开发⽣命周期 |
💡⾼频⾯试题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数⽬的多少都⽆法说明产品的质量是否合格;虽然在敏捷模型中团队中每个⼈都需要对产品质量负责,但是产品的测试质量是跟测试⼈员那密切相关的。所以,责任感是最重要的测试必备素质之⼀。
压⼒,测试⼯作者,特别是属于互联⽹⾏业需要能够抗住各种压⼒。
💡⾼频⾯试题
Q1:为什么⾛测试岗位⽽不⾛开发岗位?
回答思路:从岗位⼯作性质分析+个⼈性格/爱好+个⼈职业规划三个⽅⾯阐述。
1)个⼈兴趣爱好:从性格和兴趣出发,测试⼯作需要测试⼈员具备良好的耐⼼、细⼼,接
触了测试内容后对测试⼯作产⽣浓厚兴趣
2)岗位性质:不管是测试还是测试开发都统称为测试⼈员,测试⼈员主要以保障项⽬测试
质量为主,通过开发⼀些测试效率⼯具(⽐如我们学的⾃动化就是效能⼯具,除此之外还
有我们课件上写的内存泄漏⼯具等等)来提⾼测试效率。⽽软件开发主要以业务编码为
主。
3)个⼈职业规划:⼤学期间就树⽴了⾛测试⽅向的⽬标,今后将继续提⾼测试和开发能
⼒,争取在测试领域做出⼀番有影响⼒的事务
Q2:开发和测试出现冲突怎么办?
(1)反思自己是否是bug描述的不清楚,或者由于自己的疏忽导致误判
(2)站在用户的角度反问开发人员:如果你是用户你能接受这样的情况吗?
(3)不仅能提出问题,最好也能给出解决方案

被折叠的 条评论
为什么被折叠?



