web开发
爬虫+数据分析
机器学习(深度学习)
自动化运维
自动化测试
初级测试工程师
中级测试工程师
测试开发工程师
3、自动化与Python
- python的强大的第三方库,为很多的自动化流程提供的快捷的实现方式
python强大的兼容性获得了开发者的青睐
python简洁的语法和简便的编码使得快速开发和迭代成为可能
python的科学计算和文本处理能力,解脱公司的繁琐重复的劳动力
在规定的条件下对程序进行操作,发现程序错误,衡量软件质量,,并对其是否满足设计要求进行评估的过程。
要点:
规定条件下的测试
发现错误、衡量软件质量、是否满足设计要求
开发环境
测试环境
生成环境
目前公司越来越注重产品的质量QA,所以软件测试有时候也成为QA。
一般公司如果开发产品,则 开发人员与 测试人员比例为3:1。
对于大型产品公司来说,开发与测试可以达到1:1
专业的事情,专业人员去做,软件测试是保障软件产品质量的关键,一定要有专业的软件测试人员去完成。
4、开发与测试
在开发的过程中, 开发人员会对自己开发的功能进行简单的测试. 但不会让开发完成对软件的整个测试. 原因可能有一下几方面的原因:
- 思维定式
- 测试力度不够
- 关注度不足
根据使用场景分类
电商类型、旅游类型、媒体类型、教育类型、金融类型、工具类、游戏
根据架构分类
单机版软件
office 红色警戒、CS、植物大战僵尸
分布式软件
B/S架构 (browser)
浏览器/服务器 web网站 例如 百度、hao123
C/S 架构
手机app、微信、QQ、PPS软件,要使用 选安装app客户端。
C/S架构
客户端、服务端
客户端:给用户使用的,用来展示信息、用户交互
服务端:业务处理、数据存储,用来向客户端返回信息、处理交互
django、flask都是用来进行 服务端开发--》接口服务开发
我们测试人员,会在接口被使用前进行接口测试,保证接口是可用性。
瀑布模型
快速原型模型
在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。
V模型
按照软件开发的 瀑布模型来设计的软件测试
单元测试--- 开发人员完成
集成测试---依据设计文档,测试人员完成,多个相关功能组合在一起 做测试
系统测试---依据需求文档,测试小组,做一个完整测试。
验收测试--用户来测试,完成测试
W模型
测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试。
优点: 1).强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,还包括需求和设计。 2).更早地介入测试,能尽早得发现缺陷进行修复。 缺点: 对于测试技术要求高,实践起来困难。
单元测试
单元测试, 又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。
集成测试
集成测试, 又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。
系统测试
系统测试, 指的是将整个软件系统看为一个整体进行测试,测试的依据是软件需求说明书。
验收测试
验收测试, 用来检验软件是否符合用户需求的测试. 验收测试又细分为一下分类:
(1).α测试: Alpha 是内测版本 通常只在软件开发者内部交流 一般而言, 该版本软件的bug较多,普通用户最好不要安装
(2).β测试: Beta是公测版本,是对所有用户开放的测试版本 这一版本通常由软件公司免费发布, 用户可从相关的站点下载 通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改
(3).γ测试: Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本
软件测试分类中按照是否查看源代码划分可以分为以下几类: - 黑盒测试 - 白盒测试 - 灰盒测试
1.黑盒测试
黑盒测试, 又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和 输出数据。
2.白盒测试 白盒测试, 指的是把盒子打开,去研究里面的源代码和程序结构。
3.灰盒测试 灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
(1).静态测试:指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。 (2).动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
人工测试: 也叫做手工测试,测试人员手动去进行的测试 自动化测试: 利用代码或者工具帮助人工进行测试
冒烟测试: 冒烟测试就是对系统进行最基本功能的测试,保证基本的功能和流程能走通 回归测试: 当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试 随机测试: 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分 探索性测试: 探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。