1.什么是软件生命周期
问题定义 需求分析 软件设计 软件开发 软件测试 软件维护:是软件生命周期最长的阶段
2.软件缺陷产生的原因
1.需求不明确
2.软件结构复杂
3.编码问题
4.项目期短
5.使用新技术
3.软件缺陷的分类
按照测试的种类为:界面类,功能类,性能类,安全类,兼容类
严重程度:严重,一般,次要,建议
优先级:立即解决,高优先级,正常排队,低优先级
发生阶段:需求阶段,架构阶段,设计阶段,编码阶段,测试阶段
4.软件缺陷处理流程
1.提交
2.分配
3.确认
4.拒绝/延期
5.处理
6.复测
7.关闭
5.软件测试的分类
按照测试阶段:软件测试为 1.单元测试:软件开发的第一步,为了验证软件单元是否符合软件需求与设计,开发人员自测的。 (重点) 2.冒烟测试:软件构建版本建立后,对系统的基本功能进行测试 3.集成测试:单元测试组合在一起进行测试 4.系统测试:在实际的环境进行测试 5.验收测试:对产品说明去验证 按照测试技术分类: 1.黑盒测试 2.白盒测试 按照软件质量特性分类: 1.功能测试 2.性能测试:软件的性能 按照自动化程度分类 手工测试 自动化测试
按照测试类型分类 界面类测试 安全性测试 文档测试
其他分类 α测试 β测试 回归测试 随机测试
回归测试:有缺陷的程序改正后,测试人员对修改后的程序进行测试,确定原有的缺陷消除,这个重新测试的过程叫做回归测试 B测试:上线后的软件版本进行测试,用户反馈错误,开发人员修改错误 什么是自动化测试:借助脚本,自动化测试工具完成测试工作
6.软件测试模型
1.V模型的左边自上而下,逐步细化的开发过程,右边是自下而上,逐步集成的过程,不能发现需求分析早期的错误 客户要求 需求分析 概要设计 详细设计 编码(中间,v字形)单元测试 集成测试 系统测试 验收测试 优点:将测试工作分成小阶段来完成,包含对源代码的底层测试,也包含对软件需求的高层测试。 缺点:在编码之后才开始测试,需求分析没有涵盖其中,不能发现需求分析等错误,为后期的系统测试、验收测试埋下了隐患。
2.w模型是双V模型, 软件测试和开发同时进行,无法支持迭代,自发性等需要变更的项目 开发:需求分析 概要设计 详细设计 编码(中间) 集成 系统构建 交互 测试:需求测试 概要设计测试 详细设计测试 单元测试(中间) 集成测试 系统测试 验收测试 优点:测试范围包括程序,还包括需求分析、软件设计等前期工作,这样有利于尽早地全面发现问题。 缺点:将软件开发过程分成需求、设计、编码、集成等一系列的串行活动,无法支持迭代、自发性等需要变更的项目。
3.H模型:H模型将测试活动独立出来 只要某一个条件成熟后可以开始测试
7.软件测试的原则
1.测试应该基于客户需求 2.测试要尽早进行 3.穷尽测试是不可能的 4.遵循GoodEnough原则:测试的投入和产出要适当 5.测试缺陷要符合二八原则 要抓住主要矛盾 6.避免缺陷免疫 不断对测试用例进行修改
8.软件测试的流程
1.分析测试需求 2.制定测试计划 3.设计测试用例 4.执行测试 5.编写测试报告
有效等价类与无效等价类定义
有效等价类:有效值的集合,它们是符合程序要求的输入数据。 无效等价类:无效值的集合,它们是不符合程序要求输入数据。
白盒测试
语句覆盖 :每条语句执行一次 判定覆盖:保证每个判定至少一次为真,一次为假 判定—条件覆盖(判定与条件均需要至少覆盖一次真一次假)★ 条件组合(是判定语句中的所有条件的所有可能出现一次且每个判定语句本身的结果也至少出现一次) 路径覆盖(每个路径都进行一次覆盖——强覆盖)
9.压力测试和负载测试
压力测试:逐步给系统增加压力,测试系统的性能变化,让系统达到崩溃的边缘,确定系统承受的最大压力 负载测试:保持性能指标要求的前提下测试系统能够承受最大的负载,而压力测试是使系统能达到极限的状态。
10.什么叫做事务
事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。
11.VuGen简述作用:
用于创建虚拟用户脚本的工具,被称为虚拟用户脚本生成器,生成多个函数记录虚拟用户所执行的操作,将用户的操作记录下来。将函数插入到VuGen编辑器中生成基本的虚拟用户脚本,录制脚本。在录制阶段,监控虚拟用户的行为。
性能测试分类
负载测试(标准状态下) 压力测试(极限状态下) 并发测试(多用户的影响) 配置测试(软硬件对系统的影响) 可靠性测试(业务压力) 容量测试(一定软硬件及网络环境下,系统所支持的最大用户数、最大存储量)
性能测试的指标
1.响应时间:不包含浏览器解析的时间 2.吞吐量:单位时间内系统能够完成的工作量 3.并发用户数:同一时间请求和访问的用户数量 4.TPS:系统每秒钟能够处理的事务和交易的数量 5.点击率:用户每秒向Web服务器提交的HTTP请求数 6.资源利用率:软件对系统资源的使用情况
什么是自动化测试条件
(选择,判断) 项目需求变动不频繁 项目周期足够长 自动化脚本可以重复使用
自动化测试的基本流程
1.分析测试需求 2.制定测试计划 3.设计测试用例 4.搭建测试环境 5.编写并执行测试脚本 6.分析测试结果,记录测试问题 7.跟踪测试Bug
UI测试:以用户的体验为主,软件的所有功能都通过这一层展示给用户 接口测试:对数据传输,数据库性能等进行测试 单元测试
移动App测试专项测试
安装测试 卸载测试 升级测试 交互性测试 弱网测试 耗电量测试
移动App测试工具
Appium UI Automator Monkey
有限等价类:有限等价类就是有效值的集合 无效等价类 因果图,决策表图
SQL注入 XSS跨站脚本攻击
CSRF攻击
|