【前言】连续一个月没有更新博客了,这段时间我去攻克JavaWeb了,由于我的时间比较紧张,一般写博客会占掉我一大半的时间,导致学习进度和练习的时间就没有了,学的也就不是很扎实。经过一番调整,决定先停更一段时间,JavaWeb这部分内容没有以博客连载的方式将自己学习的笔记进行分享,不过或许在不那么紧张的时候我会将这部分补上。
接下来我就要开始软件测试的学习了,如果有想要一起学习或者对软件测试感兴趣的朋友,欢迎多多浏览支持,一起加油吧。
一.什么是软件测试?
- 买衣服要穿上测试一下是不是合身…
- 买手机要看看有没有功能是否齐全…
- 下载一个App也要测试一下这个 App是否满足自己的喜好…
概念:软件测试就是测试软件是否满足用户的需求。
软件包含:APP(应用软件)、web端(通过web可以访问的系统)、软件产品(如office、Typora等软件产品)
如:下面有一个注册网易邮箱的注册,通过这个例子来进一步理解什么是软件测试。 如何测试这个邮箱的注册呢?要全方位考虑
- 要对有效字符和无效字符进行测试;
- 要对满足需求的数据进行测试;
- 也要对不满足需求的数据进行测试
…
注意:
- 测试人员要有一定的素质和技能才能做好软件测试。
- 一个软件的每一个功能可能要进行不断重复的测试,错了改,改了测…直到最终结果和预期结果一样。
二.软件测试和研发的区别?
1.软件测试和调试的区别
1)目的不同
- 软件测试是测试人员做的事情,测试人员查看软件是否实现了用户的需求,他要根据代码和用户的需求来判断软件是否有bug
- 调试是开发人员做的事情,开发人员查看自己写的代码是否实现了他想让代码想要实现的功能
2)角色(参与人员)不同
- 软件测试中有:黑盒测试工程师(功能测试),白盒测试工程师,开发人员(软件测试中的开发人员一般是对自己写的代码进行单元测试(白盒测试));
- 软件调试:调试是发生在开发这个阶段的,只能由开发人员来调试
3)执行阶段不同
- 软件调试:它是在开发阶段发生的
- 软件测试:它是在整个软件开发的生命周期(生命周期就是指一个软件从无到有的一个过程:即提出需求–>计划–>设计–>编码–>测试–>运行维护)
- 在需求阶段进行分析、验证看这个需求是否合理,如果需求不合理,就拒绝做
2.开发要求技能少,专业度高;测试要求技能广,深度低。
如:
- java开发:要求会java、数据结构、数据库、java相关框架,但是光学了还远远不够,还要完全理解会用,知道它的底层原理,能够写一个功能完整、效率高、性能好的代码。
- 软件测试:要求会用抓包工具进行抓包 ,如:fiddler Charles
- 进行接口测试:要知道接口测试的工具如何去使用如:postman、soupui、jmeter
- 进行性能测试:要求会用性能测试工具jmeter、loaderrunner
- 做UI自动化:web端要知道selenium这个工具,做UI自动化还要会一些语言如:Python、java语言
- 还有自动化测试的很多框架如:unittest、Robort、Framework等这些框架
- 做app端:要知道app端的测试工具,appium
- 进行安全测试:要求会使用一些安全测试工具如:小红帽等
集成测试工具等
软件测试需要学习的测试工具很多,但是不需要太过深入,这些工具只是我们进行测试的辅助和手段,不过只要会使用即可,不需要关心它的底层原理。
三.一个优秀的测试人员所所具备的素质?
这也是面试官常问的问题
兴趣 兴趣是最好的老师,对软件测试行业感兴趣,会促使你学好软件测试的技能 技能 学习能力、沟通能力、代码能力、测试能力、逻辑思维能力 抗压能力和责任感
- 有一定的抗压能力,并以讲故事的方式举例说明出来你经历过哪些让你觉得你有抗压能力的事情。
- 有责任感,并以讲故事的方式举例说明示例。
团队协作能力
要有逆向思维和发散性思维
如:对一个自动饮料售卖机该如何进行测试?
比如饮料有:苏打水、可乐、雪碧、青梅、绿茶、红茶,每瓶饮料需投币2.5元
测试方法:
1)不投币看是否会出饮料; 2) 投2.5看是否会出饮料 3)投低于2.5的钱看是否会出饮料; 4)投高于2.5的钱看是否会找钱; 5) 投非硬币的东西,如游戏币,铁片等看是否能检测出来; 6)自动的售卖机一般需要联网,通电。联网时如何,不联网时如何,通电时如何,不通电时如何; 7)如果出现故障如何,比如,投了相应的币没有出饮料,或者币投完了断网了,是否会提示故障信息和解决办法等。
|