软件测试
-
软件测试
制造业定义:以检验产品是否满足需求为目标
软件行业定义:- 验证软件的正确性
- 发现软件中的缺陷(bug)
-
为什么要测试?
(1)、代码是人写的,难免会出错
(2)、软件本身就会存在问题、非正常运行也会有问题
(3)、环境会影响软件出现问题
(4)、软件测试活动是保证软件测试质量之一 -
软件生命周期包括哪些阶段?
(1)问题引入或定义
(2)可行性分析(涉及经济、政治、法律、技术)
(3)项目招投标
(4)项目立项
(5)需求分析
(6)开发阶段(涉及、编码、测试)
(7)上线
(8)维护
(9)下线 -
技术团队中的人员:
ceo :首席执行官
cto: 首席技术官
pm: 项目经理
职责:管理项目、负责项目进展、工作安排、从开发一款项目软件,知道上线;
比如:影票系统,一个qq产品经理:
职责:负责公司的产品,了解客户的需求,把客户的需求整理成一个需求文档,提供给开发和测试,开发安装需求写代码,测试按照需求写用例,执行用例
产品或业务:专门了解需求、收集需求资料、辅助产品经理开发经理:
职责:管理开发人员,安排开发人物开发:(程序员)
职责:编写代码,实现需求
前端开发:对页面布局,编写代码;如html、css、js等
后端开发:负责代码逻辑编写 ;python、java、c++、c 、等
前端和后端开发比例:1:5或1:6 前端开发少、后端开发多测试经理:(测试组长、测试主管)
职责:管理测试人员、安排测试任务测试人员:(测试学习后的岗位:测试工程师、软件测试工程师、ai软件测试工程师、
机器人测试工程师、硬件测试工程师、游戏测试、银行测试等)
学习后水平:中级测试、高级测试
(助理级测试、初级测试、中级测试、高级测试、测试专家顾问)
职责:分析需求、编写用例、执行测试运维:负责公司环境、维护环境
环境:开发环境、测试环境、生产环境(线上环境)
面试题:
1、你们公司规模多大?我们项目组20-30个人
2、项目组中有测试人员多少?小公司3-5个,大公司测试:100来个,我们这条业务线10个人
3、开发有多少人,前端开发和后端开发比例? 22 19后端 3个前端
4、测试和开发的比例?1:5或1:6
5、你们公司的环境 谁搭建? 运维 ,或者自己,测试经理
6、你们技术团队有哪些人?
项目经理、产品、开发、测试、运行
- 测试分类:
一、按是否查看代码划分
-
黑盒测试
定义:黑盒是功能测试,测试中把被测试的软件当做一个黑盒子,不关心盒子的内部结构,只关注软件输入的数据和输出的数据
如:计算机1+1就看结果:2 不看怎么具体运算,就看结果 -
白盒测试
白盒测试又称为结构测试、透明测试、代码测试、逻辑测试
定义:指打开盒子研究对软件的源代码和程序结果 -
灰盒测试
灰盒测试是介于白盒测试和黑盒测试之间一种,灰盒测试用于集成测试阶段、不仅关注输入,输出的正确性,时也关注程序内部的结构
二、按是否运行划分
- 静态测试
静态测试是指不运行被测试程序本身,仅通过分析和检查代码的语法、结构、来检查程序的正确性(比如:需求、软件设计说明)
如:汽车在展厅、看颜色、外观等 - 动态测试
动态测试:是指通过运行被测试程序、检查运行结果与预期结果的差异、并且分析运行效率,健壮性等
如:汽车:试驾、查看汽车的动力等
三、按测试对象划分
- 功能测试
如:登录,登录不了就bug - 性能测试
如:登录,登录成功,时间6s ,不合格,要求:5s - 安全测试
如:登录,登录成功 时间4s、数据泄露风险 - 兼容性:
如:安卓系统:登录,登录成功 时间4s、不泄露、但是在ios系统上无法登录
四、按测试的实施划分
- 内部测试
- 外部测试
- 第三方测试
比如:第三方被调公司被调
五、按是否手工执行测试
- 手工测试
手工测试就是人一个个用例去执行,然后关注结果和测试用例相对应的预期
缺点:执行效率低、量大容易出错 - 自动化测试
通过工具或代码代替手工测试
(1)接口自动化测试
(2)ui自动化测试
(3)app自动化测试
六、按区域 测试分化
- 本地化测试
- 国际化测试
(1)语言
(2)日前
(3)货币单位
(4)度量单位
(5)外观
七、 按开发阶段划分
三个文档:需求规格说明书、概要设计说明书、详细设计说明书
1. 需求规格说明书:内容:整个项目设计,框架、功能模块的描述
2. 概要设计说明书:架构的初步设计文档,使用说明什么类型数据库、架构描述、设计、模块的名称
如:盖房子的而大概框架
3. 详细设计说明书
针对具体的实现、模块的具体实现、具体设计、架构的具体描述
如:房子的具体的装修设计
-
单元测试(ut)
定义:是指单元是否满足详细设计文档的规格,能正确的执行,主要是对代码的测试;
单元测试时最小的测试单位;
在工作中单元测试一般是开发自测,如果需要测试进行单元测试,对测试的技术要求高,必须懂开发语言
理解:单元测试,课本有10个单元,测试一个单元 -
集成测试(it)
定义:是指多个单元组合验证是否满足概要设计文档,能正常执行,主要是模块与模块之间的数据交互;
理解:集成测试,课本有10个单元,(测测试2个单元或2个单元以上,如期中考试1-6单元) -
系统测试(st)
定定义:是指把软件进行正常运行,对整个软件系统进行测试,验证这个系统能正常的运行,主要是测试一个整体业务的流程。
理解:课本有10个单元,比如期末1-10考试,内容考试 -
验收测试(uat)
验收测试:站在用户的角度去对软件进行测试,验证系统满足用户需求
分为三种:
(1)内部验收:alpha 测试
(2)外部验收:beta 测试
第三方验收:
区别:
a、人员不一样:
内部验收,技术人员,测试开发都在,有问题及时解决,技术人员集中
外部验收,客户方的员工测试,发现问题在反馈给开发,在修改,技术人员不集中
b、时间不一样:内部验收时间周期短;
外部验收时间周期长;
c、测试地点不一样:内部验收,是在自己公司
外部验收,是在客户方
1、it 集成测试和st 系统测试 -合并-sit 系统集成测试
2、sit测试:技术测试, uat测试--验收测试
3、sit环境 (测试环境),uat环境(验收环境)
4、
(1)需求--对应--验收测试和系统测试
(2)概要设计--对应--集成测试
(3)详细设计--对应--单元测试
浙公网安备 33010602011771号