软件测试类似于工厂质检员,测试工程师担任质量管理员的职责
最重要的是细心,认真,如在用户注册的时候,用户名重复等等各种bug
测试是一个流程化的知识,对于小白非常友好
测试的未来是自动化测试和测试开发。
测试行业的还停留在人工软件测试,导致工作效率的低下,企业对自动化测试人才的渴求
LV1:初级测试:人工点击测试
LV2:自动化测试:使用python脚本来自动化测试
LV3:测试开发:编写开发的平台和工具
初级测试
·熟悉软件测试流程,测试设计方法,能够独立进行测试策略及方案编写;
·独立设计和执行测试方案和测试用例;
·了解Linux并可以搭建和维护测试环境;至少掌握一种自动化测试工具;
·有较强的沟通能力和表达能力,独立分析和解决问题的能力;
自动化测试
了解软件测试理论、测试流程和相关测试方法,能独立制定测试计划、测试用例、编写测试报告;
熟悉Linux环境,能进行shell编程;熟练掌握SQL语句;
熟悉Python语言开发,具备自动化测试框架的设计及独立开发的能力;熟练使用Appium,selenium,Junit,Testng等自动化测试框架;
熟悉LoadRunner,Jmeter等性能测试工具。能自主设计性能测试场景,分析测试结果;熟悉测试中持续集成的流程,能熟练运用]enkins等工具;
有较强的沟通能力和表达能力,独立分析和解决问题的能力;
熟悉软件研发流程,掌握软件测试理论和方法,有开发测试工具或者编写辅助测试脚本的成功实践
测试开发
熟悉Linux /unix操作系统
熟悉Python、Java、C++、C等任意一门编程语言
熟悉MysQL/sQL server/postgresQL/oracle中的至少一种数据库。
熟悉前端技术,包括HTML(5)/CSS(3)/3avascript等,并有相关的项目开发经验或成果深刻理解web标准对可用性、可访问性等相关知识有实际的了解;
有基于Ajax应用的开发经验,有Nodes/ava开发经验,或者有移动端开发经验;在web、android、ios,接口等自动化领领域有较深的造诣和见解
有相关自动化工具/平台(web/app/api接口/测试相关平台工具)开发经验了解设计模式、微服务架构等优先。
对算法、数据结构、建模有一定了解;
开发:侧重于逻辑思维,类似于学习数学
运维:大量的linux命令的使用
测试:细心,认真,周全,需要深入了解公司的业务背景
世界上第一个bug,bug就是程序的漏洞导致的程序输出的结果和要求不匹配
上帝视角来看开发,提前复现可能出现的bug,让用户更少的遇到bug,极大的提升用户的体验感!
要求技术的广度,可以从各个角度来解决产品的问题
形态特性
软件是看不见、摸不着的逻辑体。现实生活的度量单位尺寸、物理特性、化学成文对软件毫无意义。
智能特性
软件是很复杂的,是人类通过大量的脑力计算开发出的脑力产品,软件本身体现了知识的实战经验以及人的思维情感。
质量特性
软件是由人为编写,尚未实现完全自动化,依然包含不少个人行为与个人因素,因此不存在没有缺陷的软件。
环境特性
软件的开发和运行都离不开计算机系统,包括支持它开发和运行的相关硬件与软件。
比如你热爱玩王者荣耀,但是只能依赖于安卓、IOS系统运行,你放到windows上是没法玩的。
维护特性
软件投入生产后后续还需维护,但不同于传统产品,在升级、优化、更新等方面,软件毕竟是计算机程序的逻辑体,甚至可以全盘重构。
废弃特性
与硬件不同的是,硬件如手机、电脑被废弃,如今社会大多是因为硬件的配置跟不上软件的更新,出现卡顿,模糊等问题,较少是因为硬件坏了才废弃。
而软件是坏不了的,只因软件会由于技术的更新,产品的更新,被主流淘汰而废弃。例如我们还有同学使用者苹果手机IOS6的系统,如今已经更新到IOS12了,但是并不影响你正常使用。
应用特性
软件应用极为广泛,遍布人民的日常生活,想想你一整天与软件都有哪些打交道…
起床的闹钟app->电动牙刷->房间的密码锁->地铁一卡通->学英语、读书手机app->摩拜共享单车app->进公司打开电脑->咖啡机研磨一杯卡布奇诺->开始美好的一天…
系统软件
系统软件是负责计算机系统中各种独立的硬件,使得协调工作。
服务性程序:错误诊断工具、控制面板、设备管理器
语言程序:编译型程序、解释性程序
操作系统
·数据库。网络管理
应用软件
应用软件是为了某种特定的用途而开发的软件,例如网上冲浪的浏览器、通讯工具QQ、微信,办公软件word、Excel、PPT等等。