软件测试总结
1:软件测试的概念
验证软件的功能是否满足用户的需求
2:BUG的概念
1:当且仅当规格说明书(软件需求说明书)存在并且正确,程序和规格说明之间不相符合,称之为软件错误(BUG)
2:当用户的需求存在并且合理,程序没有满足用户的需求,称之为BUG
3:软件开发中的需求
满足用户期望或规定的文档(合同,规范,标准)所需要的条件或权限,包括用户需求和软件需求
1:软件需求从用户需求转化而来
2:用户需求转化为软件需求的核心是沟通
4:测试用例的概念
向被测系统发起一组操作集合,包括测试环境,测试数据,操作步骤,预期结果等
5:软件开发模型(5个)
1:瀑布模型 (一向而下),前期没有测试,强调开发的阶段性;缺点:风险往往在测试阶段才会发现错误
2:螺旋模型:适合风险性比较大的项目(前期需求不明确);优点:强调项目的风险把握;缺点:耗费资源(人力和物力)
3:增量模型和迭代模型:优点:抗风险能力强
4:敏捷开发(比较流行):特点:轻文档,轻流程,重目标,重产出;及时交流沟通(人与人之间的交流),适合用户需求经常变的项目,看重的是软件质量
6:两个软件测试模型
1:V模型(瀑布模型的变动):缺点:后期才进行测试
2:W模型(双V模型):特点:测试的对象不仅仅是程序还有需求,设计等,优点:有利于项目前期的问题及时发现,避免造成后期开发完成之后才发现前期的问题;缺点:阶段性比较强,不适用于敏捷开发
7:软件测试的生命周期/流程
需求分析-测试计划-测试设计-测试开发-测试执行-评估
8:软件开发生命周期
需求分析-计划-设计-编码-测试-运维
9:如何描述一个BUG
版本号,操作环境,步骤,预期结果,实际结果
10:BUG的级别
1:崩溃:系统无法正常运行,阻断。
2:严重:系统可以正常运行,但是很不稳定;如果继续运行,会发生严重的后果。表现:数据泄露,直播画面失真等等
3:一般:系统可以稳定运行,但是缺少部分功能,影响用户体验;表现:记录无法删除等等
4:次要:系统稳定运行,属于建议性BUG:表现:字体大小,图片不高清,排版不好看等等
11:BUG的生命周期
new:新建
open:打开
fixed:已解决
reopen:重新打开
closed:关闭
reqect:丢弃
delay:延期
12:测试用例的设计方法
1:基于需求的设计测试用例的方法
前提:要保证我们的需求(软件需求和用户需求)的正确性和完整性
2:黑盒设计测试用例的方法(六种)
1:等价类:分为有效和无效等价类
2:边界值:针对输入和输出的边界进行测试用例的设计(一般和等价类结合起来使用)
3:因果图:是一种逻辑图,有多个输入/出和不同的输入的组合之间的有关系,就可以采用因果图:有四种关系:恒等,与,或,非
4:正交表:是因果设计用例太多的解决方案,取出多个水平的最优组合,通过研究这些组合得到嘴和的实验结果
5:场景设计法:测试的是一个功能的流程,分为基本事件流(正常)和备选事件流(异常)
6:错误猜测法:经验越丰富,知识积累(一般用于补充设计测试用例的方法)
13:测试的分类
一:按照开发阶段划分(V模型)
1:单元测试:针对程序内部的最小模块进行测试(白盒)
2:TDD(Test-Driven-Development)编码前测试驱动开发(白盒)
3:集成测试:按照一定的策略将各个模块组合起来,进行测试(灰盒)
4:系统测试:主要的测试人员就在该环节(黑盒)
5:回归测试:冒烟测试
6:验收测试:由用户/boss验收(系统+文档)
二:按照测试的实施组织划分
1:α测试:由用户测试在开发环境下测试;优点:及时和用户沟通解决问题;缺点:容易受开发/测试人员的影响,不利于测试
2:β测试:验收测试;由软件使用者在一个或者多个场所进行测试(用户使用环境);优点:测试环境是用户实际使用环境,有利于问题发现;缺点:时间比较的分散
3:特点:α测试优先于β测试
4:第三方测试:比较客观的去进行测试(国外的比较多公司)
三:按照是否运行程序划分
1:静态测试:不运行代码
2:动态测试:运行代码
四:按照是否手工划分
1:手工测试
2:自动化测试:自动化工具:selenium,loadrunner等等
五:按照是否查看代码划分
1:黑盒测试:把软件当成一个黑色的盒子,不关心程序内部结构逻辑,只关心输入和输出
2:白盒测试:把软件当成一个透明的盒子,检查软件内部的逻辑,结构,语句是否正确
3:灰盒测试:介于黑白盒测试之间,既要考虑输入/出,还要考虑程序的内部结构
六:按照地域划分
1:软件本地化:把软件处理成不同的语言版本
2:软件国际化:是软件可以生成不同的语言版本,适用于不同的风俗,在转换的时候,不需要修改软件的源代码技术