软件不一定是桌面应用,这样太狭义了,也可以是其他,比如移动端应用、web应用…
所以软件这个定义,并不只是我们知道的一个桌面应用而已
生活中的测试
假如你的对象喜欢买衣服,陪他逛商城的时候,他挑了一件好看的衣服,穿在身上,你如果只会说句好看,那真的太敷衍了,你应该从多个角度去分析:
配色和搭配:他选择的衣服的颜色和款式与他的个人特点完美搭配,展现出他的时尚眼光和对细节的关注。
剪裁和版型:这件衣服的剪裁非常适合他的身材,突出了他的优点,并展现了他的自信和魅力。
材质和质量:这条衣服选用了高质量的材料,舒适度和耐用性都非常好,彰显了他的品味和对品质的追求。
细节设计:他选择的衣服上的细节设计非常精致,比如别致的纽扣、独特的图案或细腻的刺绣,展示了他的审美眼光。
时尚感:这件衣服不仅与潮流保持一致,还有自己独特的风格,使他在任何场合都显得与众不同。
个性表达:这条衣服反映了他的个性,并帮助他展示出内在的自信和独立精神。
穿着舒适度:他选择的衣服不仅外观出众,还非常舒适,这使得他在活动中自由自在、轻松愉快。
整洁和干净:这件衣服干净整洁,无论是颜色的保持还是细节的清洁,展现了他的细致和注重细节的态度。
衣着品味:这条衣服的选择体现了他对时尚和艺术的敏锐感知,展示出他的独特品味和审美观点。
自信与魅力:他穿着这件衣服时散发出的自信和魅力瞬间吸引了人们的目光,让他成为众人关注的焦点。
而这十个方面,就是大大小小不同的测试方面,我们 在做好几个测试,例如外观测试,材质测试,版型测试,舒适度测试…
因为对象肯定不会只试一件衣服,应该挑选好几件进行测试,最终挑了一件~
在生活中,我们其实潜移默化地就在做大大小小的一些测试
什么是软件测试
最常见的理解就是:软件测试就是找BUG,发现缺陷。
所以,并不是程序执行错误,执行异常才是缺陷,不符合产品特性和预期,不满足用户需求也是缺陷
我们可以看出以下两点:
- 测试试图验证软件是 “工作的”,也就是验证软件功能执行的 正确性
- 测试的活动是以测试人员 “预期结果” 为依据,这里的“预期结果”指的就是 需求定义
为什么要有测试/没有测试行不行
举一个例子,“非常奇葩的操作”:
对于支付相关业务,一个新上任的领导(新官上任三把火) 说:“支付这块的代码这么写的像shi一样!?必须优化以下支付这块的代码”,然后开发者们就去编码了,理当交给测试人员测试,保证没问题后才能上线! 而这位0🔪并没有这么做,而是让产品直接上线!这就是他的那“一把火”!在产品上线之后,很快出现了问题,出现了大量的“xxx用户支付,支付失败”,这个情况及其恶劣,毕竟涉及的人那么多,让用户体验那么不好,最重要的是涉及钱!
软件测试和软件开发的区别
- 工作内容
- 测试:写测试用例、执行、发送测试报告、编写自动化测试用例、开发相关的测试工具
- 开发:通过不同的编程语言,最终做出软件
- 技能区别
- 测试:技能广度掌握(外观是否好看,Web的UI自动化测试,APP的UI自动化,后端的接口进行测试,性能,安全,网络安全…),对于软件测试,有后端开发技能是加分项哦
- 开发:技能深度掌握(Java后端工程师,因为开发需要写出高效的代码)
- 发展前景
- 测试:初级测试工程师 -> 中级测试工程师 -> 高级测试工程师 -> 架构师 -> 项目经理…
- 开发:初级开发工程师 -> 中级开发工程师 -> 高级开发工程师 -> 架构师 -> CTO…
- 工作环境
- 基本上几个类型的工程师都在一起办公(划分办公区域),同一公司工作环境是一样的,同一职级办公环境是一样的
- 薪资
- 通常情况下,大厂两者是差不多的,而中小厂测试偏低的
软件测试和软件调试之间的区别
1.角色
调试:开发者在开发过程中出现问题,进行一定的调试动作去解决问题
测试:测试 + 开发执行(通常情况下,黑盒测试由测试人员执行,部分白盒测试、系统测试是由开发人员执行)
2.阶段
调试:开发的过程中调试
测试:没有代码测试就已经开始了,测试是伴随着软件的整个生命周期
3.目的
调试:出现问题,解决问题
测试:发现问题,提供解决方案
4.手段
调试:debug,分析代码逻辑等各种手段,作为侦探…
测试:等价类划分法,边界值法等各种手段,作为天罗地网,找到问题…
优秀测试人员具备的素质
技能方面:
- 编程能力(编写测试工具,自动化测试用例)
- 测试用例设计能力
- 技术快速学习的能力
- 业务快速学习的能力
非技能:
- 沟通与合作(一个项目一堆人写的)
- 文字表达能力(测试用例文字写出来的,编写测试文档,提出BUG以及解决方案)
- 抗压能力
- 责任感