从菜鸟到大神之自动化测试(基础一)
从菜鸟到大神之自动化测试(基础一)
一.自动化测试就是软件测试
1.什么是软件测试?
- 通俗的说就是利用工具或者手动, 对软件进行测试据统计。
- ⽬前国内有数百万的开发者, 软件测试这块的开发者相对很少, ⽬前国内开发与测试的⽐例是6:1, 国外,⼀般软件测试⼈员与软件开发⼈员的岗位设置⽐例是1:1. 像微软在开发windows2000时候使⽤的软件开发⼈员是1700名,⽽专业的测试⼯程师有3200名,测试开发⼈员⽐例⾼到1.7:1,由此可⻅软件测试岗位重要性的不⼀般。⽬前国内的岗位缺⼝⼤, ⼀直在持续增加测试⼯程师的发展路线
- 利⽤⼯具或者⼿⼯对程序进⾏操作,以发现程序错误,衡量软件质量,并对其是否能满⾜设计要求进⾏评估的过程.承担质量管理的⻆⾊.
软件测试的重要性 - 阿⾥巴巴⽉饼⻔,2016年在阿⾥内部展开的中秋抢⽉饼活动中,四名程序员 使⽤脚本,多刷了124盒⽉饼. 再⽐如双⼗⼀这样的促销⽇⼦,如果有bug,那会造成不可想象的影响.
- 发⽣在美国得克萨斯州,⼀家酒店附近的ATM机发⽣故障,11⽉25⽇晚11点左右,顾客取钱时吐出的不是10美元,⽽是100美元的钞票。随后,路过此处的市⺠开始在这台ATM机外排⻓队取钱
- 北京时间11⽉20⽇消息,当地时间周⼆晚间,微软服务器疑似遭遇⼤范围宕机 凤凰⽹消息称由于“ 星际客机” 消耗了过多的燃料,与国际空间站的对接试验不得不取消,原定于 12 ⽉ 28 ⽇返回的⻜船不得不提前到 22 ⽇返回地球. 波⾳公司承认失败原因在于他们对 星际客机的软件测试不充分,导致⼀个明显 Bug 未被检测出来,造成巨⼤的损失
- 据统计每年软件Bug会让美国经济⾯临近600亿美元的损失.
2.为什么需要软件测试
-
⼀款软件开发出来并不能保证其稳定性与毫⽆漏洞,这就需要进⾏软件的测
试,找出该软件的缺陷。软件测试的⽬的理解产品的功能要求,检查软件有没有错误(Bug),决定软件是否具有稳定性. -
为什么选择软件测试
1.每个⼈喜欢的事情不⼀样, 有良好的分析技巧, 善于沟通, 对软件有追求完美的⼼态.
2.国内的软件测试⾏业对于专业的测试⼈员需求量⾮常⼤
3.为什么不让开发做测试
- 专业度:测试和开发属于软件⾏业不同的技术⽅向,每个⽅向都有⾃⼰的技术规范. 让专⼈做专事更加合理.
- 思维定式: ⼀个软件的开发需要⼀定的时间周期, 在这个周期内对于开发⼈员来说绝⼤都数的时间都是在思考具体的软件功能怎么实现, 不会去从⽤户的⻆度触发, 如何去使⽤这个功能.
- 测试⼒度:相对于开发⼈员来讲,软件就相当于他们⾃⼰的孩⼦, 所以舍不得. 当然开发也能做测试, 很多测试做得好的,之前就是做开发. 编码能⼒很强,⽐如⾃动化测试,⽩盒测试这块对他们来说有天⽣的优势.
4.软件测试的目的和作用
- 1.测试⼯作可以发现并修复软件中存在的缺陷,从⽽提⾼⽤户对软件的使⽤信⼼.
- 2.测试操作可以记录软件使⽤过程中产⽣的⼀些数据,从⽽为决策者提供依据
- 3.测试操作可以降低同类型软件开发的⻛险
- 4.总结:测试⼯作的⽬的就是通过尽可能少的⼈⼒.财⼒,物⼒来查找并解决软 件中存在的缺陷从⽽降低商业⻛险
二. 软件测试的七条原则
- 测试可以显示缺陷的存在,但不能证明系统不存在缺陷
- 穷尽测试是不可能的,当满⾜⼀定的测试出⼝准则时测试就应当终⽌
- 软件测试⼈员要尽早地且不断地进⾏软件测试,以提⾼软件质量降低软件开发成本
- 二八原则, 缺陷集群性(Pareto原则表明“ 80%的错误集中在20%的程序模块中” 。缺陷并不是平均⽽是集群分布的。如果在⼀个地⽅发现了很多缺陷,那么通常在这个模块中可以发现更多的缺陷)
- 杀虫剂悖论(论杀⾍剂⽤得多了,害⾍就有免疫⼒,杀⾍剂就发挥不了效⼒。在测试中,同样的测试⽤例被⼀遍⼀遍反复使⽤时,发现缺陷的能⼒就会越来越差。可以交叉测试)
- 测试依赖环境
- 没有完美的存在(不存在完美的软件)
三.计算机的组成
计算机俗称电脑(PC)。由硬件系统和软件系统两部分组成
硬件系统
- 硬件系统分为主机和外设. 软件系统⼜分为两⼤类, 系统软件和应⽤
- 现代电⼦计算机的硬件部分, 分为五个部分
- 输⼊设备:核⼼功能就是以不同的形式给计算机提供数据. 例如:键盘 ⿏标等
- 输⼊设备:核⼼功能就是以不同的形式给计算机提供数据. 例如:键盘 ⿏标等
- 计算器+控制器:这两个合在⼀起就是中央处理器(cpu), 计算器的功能就是完成最终的运算,控制器就是设置数据该如何计算
- 存储器:分为内存和外存,作⽤都是对数据进⾏管理
内存与外存相关
1.内存就是常⻅的内存条, ⼤⼩⼀般是4-16G不等
2.外存可以理解成是硬盘等.常⻅的250, 500G,1T
3.内存的计算速度相对于外存来说⾮常的快
4.内存中的数据断电会消失,外存不会
5.内存分为只读内存(ROM)和随机内存(RAM)
软件系统
- 软件系统:系统软件(操作系统) + 应⽤软件
- 常⻅的操作系统:
- 图形化桌⾯操作系统软件: windows, Mac OS
- 移动端:安卓(android), iOS, WP, 鸿蒙
- 服务端操作系统: Linux, windows server
- 应⽤软件:安装在操作系统上的软件.(qq,微信…)