软件测试学习Day1
- https://www.bilibili.com/video/BV1Ar4y1u7WX?p=3&spm_id_from=pageDriver&vd_source=d4f2d396365e54a2c463625b747c3e76
- (学习链接)
- 这里是我记笔记的快乐天堂~
学习内容:软件测试&测试分类
1.技术要求
初级测试工程师
- 测试基础技术
- Web功能测试
- App功能测试
- 测试管理工具
- 抓包工具
- 测试管理工具(接口)
- Linux系统
- 数据库
中级测试工程师 - 编程语言
- 接口自动化
- Web自动化
- App自动化
- 性能测试
高级测试工程师 - 自动化提升
- 性能测试专项提升
- 白盒测试
- 安全测试
- 测试开发
2.软件测试职业圈
程序员(开发):编写程序代码
产品:收集并设计需求——需求文档
UI设计师:用代码实现页面的显示
前端:用代码实现页面的显示
DBA:数据库设计
运维:版本控制和发布、设计迭代、环境搭建和维护
客服:客户支持、接受用户的问题反馈
运营:做广告、宣传、推广和曝光
架构师:做框架、设计架构
3.什么是软件
软件是计算机程序、程序所用的数据以及有关文档资料的集合。
软件测试的对象:程序+数据+文档。
软件可以分为系统软件和应用软件。
系统软件:生成、准备和执行其他程序所需要的一组文件和程序。(例:操作系统Windows、数据库SQL-Server、驱动程序、java语言系统编译环境)
应用软件:计算机用户为了结局某些具体问题而购买、开发或研制的各种程序或软件包。(例:APP、QQ、微信)
4.应用软件
C/S架构:clinet-server需要安装客户端,缺点是两端都需要更新(微信、qq)
B/S架构:browser-server需要浏览器就可以访问,优点是用户主动型比较高(淘宝、京东)
5.软件测试定义
使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
产品经理搜集客户需求-客户需求规格说明书-规定的需求
6.测试的目的
发现程序存在的代码或业务逻辑错误
检验产品是否符合用户需求
提高用户体验
7.软件测试分类
(1)按测试阶段划分
单元测试:对模块/函数进行测试,具体到类、函数、方法的测试(由开发人员来完成)
集成测试:单元测试后,将个单元组合成完整的体系,测试单位之间的接口是否正确,数据能否正常传递(比如注册和充值两个功能能否联通,由开发人员完成)
系统测试:计算机程序结合外设+网络等其他元素进行测试,测试软件性能功能是否和用户需求相符合(根据测试用例,进行完整的系统测试,由测试人员完成)
验收测试:主要以用户为主的测试,分为alpha测试(把用户请到开发方对软件进行的测试,测试环境受开发方控制,测试人员不多,测试时间比较集中,执行人是用户、执行人员或公司内部人员,一般先做alpha测试)和beta测试(测试环境不受开发方控制,测试人员比较多,测试时间不集中)
(2)按测试技术划分(是否查看代码)
黑盒测试:不关注内部逻辑,只需要关注外部的输入与输出
白盒测试:需要关注内部逻辑具体实现,不需要关注外部的输入输出
灰盒测试:需要关注外部的输入输出,也需要关注内部逻辑具体实现
(3)按被测试对象是否运行划分
动态测试:运行被测系统
静态测试:不需要运行被测系统(界面检查、文档检查、代码走查、桌面检查)
(4)按不同的测试手段划分
手工测试:点
自动化测试:写代码/工具
(5)按测试包含的内容划分
功能测试:验证软件的业务功能是否符合需求
界面测试:被测系统的界面与原型图是否一致
安全测试:对被测试系统的安全进行测试(做出非法操作,查看是否允许输入,sql注入)
兼容性测试:被测系统在不同测试环境下是否运行正常
易用性测试:被测系统的各个功能是否操作方便、是否容易理解、是否容易上手
性能测试:某个特定时间,用户数量剧增,软件是否正常
(6)其他测试
冒烟测试:在正式测试前对主要核心功能进行的测试,由开发或测试主管来测试
回归测试:开发对存在问题的功能进行修改后,再一次进行的测试
探索性测试/自由测试(测试思维):根据项目经验而进行的随意测试