软件缺陷定义
软件没打到产品说明书标明的功能 软件出现了产品说明数指明不会出现的错误 软件功能超出产品说明书指明的范围 软件未达到产品说明书虽未指出但应该达到的目标 软件难以理解,不易使用,运行速度缓慢或者从测试人员的角度看最终用户人为不好
软件缺陷产生的原因
需求不明确和变更会影响软件最终质量 软件结构复杂 编码问题 项目期限短 使用新技术
软件缺陷分类
测试类:界面类 功能类 性能类 安全类 兼容性类 缺陷严重程度:严重 一般 次要 轻微 缺陷优先级:立即解决 高优先级 正常排队 低优先级 缺陷发生阶段:需求阶段缺陷 架构阶段缺陷 设计阶段缺陷 设计阶段缺陷 编码阶段缺陷 测试阶段缺陷
软件测试内容
逻辑功能,界面,性能,易用性,兼容性,安装等测试 文档测试也算 排版,字体大小,
软件测试的环境
测试环境 = 硬件+软件+网络 硬件环境:pc机还是笔记本 软件环境:不同的操作系统Windows10 Windows8 Windows7 Linux Mac,不同浏览器Firefox Chrome 网络:局域网还是互联网
软件测试流程:
软件测试基本原则
原则一:测试显示软件存在缺陷
软件测试是为了降低存在缺陷的可能性,即便是没有找到缺陷,也不能证明软件是完美的
原则二:穷尽测试是不可能的
在测试阶段,测试人员可以根据风险和优先级来进行集中和高强度的测试,从而保证软件的质量。
原则三:测试尽早介入
测试人员一般在需求阶段就开始介入,使缺陷在需求或设计阶段就被发现,缺陷发现越早,修复的成本就越小
原则四:缺陷集群性(2/8原则)
软件测试中存在Pareto原则:80%的缺陷发现在20%的模块中
原则五:杀虫剂悖论
测试人员不能一直依赖于现有的测试技术,而要不断地提升测试方法以提高测试效率
原则六:测试活动依赖于测试内容
不同行业,测试活动的开展都有所不同所以软件测试的活动开展以来与所测试的内容
原则七:没有错误是好是谬论
软件测试不仅是找出缺陷,同时也需要确认软件是否满足需求。如果开发出来的产品不满足 用户的需求,即便找到和修复了缺陷也作用不大。
原则八:程序不能自测之后就上线
原则九:严格执行测试计划,排除测试的随意性
原则十:应当对每个测试结果做全面的检查
原则十一:妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便
原则十二:设计测试用例时,应当包括合理的输入数据和不合理的输入数据
原则十三:测试用例应由测试数据和与之对应的预期输出结果这两部分组成
软件测试分类
按照测试原理分类
黑盒测试:不用关心盒子里的结构只关心输入数据和输出数据结果判断是否有问题
百合测试:是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的测试方法
灰盒测试:一种基于程序运行时的外部表现同时又结合程序内部结构来设计测试数据的测试方法
按照测试阶段分类
单元测试、集成测试、系统测试、验收测试
按内容分类
功能测试、性能测试、兼容性测试
功能测试:
界面测试、冒烟测试、回归测试、业务逻辑测试、易用性测试
功能测试:根据铲平操作描述和需求文档,测试一个产品的特性和可操作性行为是否满足用户需求的测试方法
界面测试:测试用户界面的功能模块的布局是否符合客户使用习惯
冒烟测试:验证系统的核心功能是否能够正常运行
回归测试:只修改了旧代码后,重新测试确认修改没有因入心的错误导致其他代码产生错误
业务逻辑测试:在基本的功能点都已合格的基础上,准备多种测试数据确定最终输出的结果是否符合预期的测试
易用性测试:指用户使用软件时是否符感觉方便
性能测试:
性能测试:通过自动化的测试工具模拟剁成正常、峰值以及异常负载条件来对系统的各项性能指标进行效验
压力测试:通过逐步增加系统负载,测试系统性能的变化,并确定在什么条件下系统性能处于失效状态
负载测试:通过逐步增加系统负载,测试系统性能的变化,在满足性能的指标的情况下,系统所能承受的最大负载量的测试
并发测试:是一个负载测试和压力测试的过程,即逐渐增加并发用户数负载直到系统的瓶颈、通过分析资源监控指标等确定系统并发性能
兼容性测试:
冒烟测试、随机测试、安全性测试、探索性测试、回归测试、Alpha测试、Beta测试
随机测试:随机测试主要是根据测试这的经验无需测试用例对软件进行功能和性能抽查的测试方法
安全性测试:通过不同的测试方法,晓燕程序、网络、数据库安全性
探索性测试::碰到问题时能随机应变,强调测试人员的主观能动性明确整体的测试计划的测试方法
Alpha测试:内部环境下的测试
Beta测试:生产环境下的测试
测试分类占比