目录
1.1软件测试的基本概念
失效:组件/系统与预期的交付,服务或结果存在的偏差.
异常:与基于需求文档,设计文档,用户文档,标准或用户期望和经验所得出的预期之间出现的任何偏差情况,都可称为异常.(比如说注册,登录按常理来说应该有的,但是它没有)
缺陷/Bug:组件或系统中会导致组件或系统无法执行其必需功能的瑕疵.例如:错误的语句或变量定义.(有时没影响它的必需功能也属于Bug)
错误:人为因素产生不正确结果的行为.(比如编码写错)
失效 故障/异常 面向用户 面向开发者 软件运行偏离用户需求 程序执行输出错误结果 可根据对用户应用的严重性等级分类 可根据定位和排除故障的难度分类 如:登录页面失效 如:数据越界,程序崩溃,功能失效
软件错误--->软件缺陷--->软件故障--->软件失效
- 软件错误是一种人为错误,一个软件错误必定产生一个或多个软件缺陷.
- 当一个软件缺陷被激活时,便产生一个软件故障;同一个软件缺陷在不同条件下被激活,可能产生不同的软件故障.
- 软件故障如果没有容错措施加以处理,便不可避免地导致软件失效;同一个软件故障在不同条件下可能产生不同的软件失效.
1.2软件测试的定义
软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其墓地在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别.
1.3软件测试原则
- 软件测试是为了找到软件的缺陷,而不是证明软件没有缺陷
- 穷尽所有测试是不可能的
- 软件测试活动应当尽早开始
- 缺陷的存在遵循80/20法则(二八法则,帕累托法则).(花20%的时间发现80%问题;测试工作分配时需要计划下)
- 杀虫剂悖论(只用一种药可能害虫免疫了,在测试时不能用同一种方法.调整方法)
- 测试活动依赖于测试背景(对于不同的软件测试类型也是不同的.银行的软件不能用测试电商的那一套)
- 不存在缺陷(就是有用系统)的谬论
- 测试应该由独立的第三方进行.
- 软件测试是一项复杂的,具有创造性的和需要高度智慧的挑战任务.
1.4软件测试级别,测试类型和测试方法
- 测试级别/测试阶段:测试级别与项目的职责相关联.例如:测试级别包括组件(单元)测试,集成测试,系统测试和验收测试.
- 测试类型:旨在针对特定测试目标,测试组件/系统的一组测试活动.例如:功能测试,非功能测试,易用性测试,回归测试等.
- 测试策略:描述了一个组成或一个计划(这个计划包含一个或多个项目)执行的测试级别和需要进行的测试.
- 测试技术/测试设计技术/测试用例设计技术:用来衍生和/或选择测试用例的步骤.
- 测试方法:针对特定项目的测试策略的实现,通常包括根据测试项目的目标和风险进行评估之后所做的决策,测试过程的起到你,采用的测试设计技术,推出准则和所执行的测试类型.
1.5软件测试模型
1.V模型(顺序开发模型)
2.迭代-增量开发模型
迭代-增量开发模型由需求建立,设计,构建和测试等一系列相对较短的开发周期构成.在没次迭代过程中,对迭代产生的系统可能需要在不同的测试级别上进行测试.
假设有A,B,C,D四个模块,增量就是第一次完成A B两个模块,第二次完成 CD 两个模块.(第一次完成其中一部分,下一次我就将剩余的完成);迭代就是第一次把A B C D完成了一部分,第二次是在第一次基础上继续进行(比如说先过一边基础功能,再在基础功能上进行业务功能的开发)
1.6测试技术和方法
1.6.1静态测试技术
静态测试指不需要运行软件的测试,包括评审和静态分析.(人为的去看去分析源程序,看代码,看文档).
1.6.2动态测试技术
- 黑盒测试,又称基于规格说明的测试或者数据驱动测试.这类测试不考虑软件内部的运作原理.(里面代码看不见,只关心输入和输出.比如说测登录,只关心它能不能登,并不关心为什么能登)
- 白盒测试,又称基于结构的的测试或者逻辑驱动测试.白盒测试将测试对象看作打开的盒子,需要测试软件产品的内部结构和处理过程.
- 基于经验的软件测试技术靠相似的应用或技术的经验以及知识和直觉进行测试.
本文含有隐藏内容,请 开通VIP 后查看