测试入门基础知识点_3.软件测试
为什么要进行软件测试?
1. 软件总存在缺陷,有缺陷的软件也许仅仅给用户带来了不便,也可能是灾难性的。
✓ 用户体验差,产生不信任感
✓ 无法正常使用
✓ 系统崩溃,损害用户的利益
✓ 企业形象的下降,产生信任危机
✓ 高额的维护费用
✓ 产生的隐性商业损失
2. 软件的应用越来越广泛
3. 软件的工程化程度越来越高,复杂度越来越高
4. 竞争越来越激烈的企业生存环境
需要通过“软件测试” ,尽可能减少缺陷,保障软件质量。
软件测试定义的两面性
软件测试的定义
1.软件测试是为了发现软件缺陷而执行程序或系统的过程。
2.使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。
3. 软件测试就是在软件投入运行前,对软件需求分析、设计规格
说明和编码的最终复审,是软件质量保证的关键步骤。
4.根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去执行程序,以发现软件故障的过程,该定义强调寻找故障是测试的目的。
5.是一种软件质量保证活动,其动机是通过一些经济有
效的方法,发现软件中存在的缺陷,从而保证软件的质量。
软件测试的目的
软件测试的原则
Good-Enough原则(测试既不要不充分,也不是过分)
木桶原理
二八原则
其它几个重要原则:
1. 所有的软件测试都应追溯到用户需求。
2. 尽早地和不断地进行软件测试。
3. 完全(穷举)测试是不可能的,测试需要终止。
4. 测试无法显示软件潜在的缺陷。
5. 充分注意测试中的群集现象。
6. 程序员应避免检查自己的程序。
7. 尽量避免测试的随意性。
8. 测试用例应包括合理的输入条件和不合理的输入条件。
9. 应当彻底检查每个测试的执行结果。
10. 妥善保存测试相关的文档及数据,为管理提供依据,为维护提供方便。
软件测试的对象
1. 根据软件的定义,软件包括程序、数据、文档,所以软件测试不仅仅是对程序进行测试,软件测试贯穿于整个软件生命周期。
2. 在整个软件生命周期中,各阶段有不同的测试对象。需求分析、概要设计、详细设计以及程序编码等各阶段产生的文档,包括需求规格说明、概要设计、详细设计、源程序、软件产品安装说明、用户手册等都应作为“软件测试”的对象。
软件测试的两个手段:确认与验证
验证(Verification) :保证软件符合产品规格说明书的过程;
确认(Validation) :保证软件满足用户要求的过程。
软件测试的质量
软件质量就是“软件与明确的和隐含的需求相一致的程度” 。
明确的需求指:软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准;
隐含的需求指:所有专业开发的软件都应具有的隐含特征的程度。
六大质量特性:功能性、可靠性、易用性、效率、维护性、可移植性。
软件质量最权威的三种体系:CMM/CMMI和ISO9000质量标准体系。
软件测试的分类
集成测试方法:
非增量式集成:采用一步到位的方法来构造测试。
增量式集成:采用逐步集成方式实现测试。
✓ 自顶向下增量式测试 桩程序
✓ 自底向上增量式测试 驱动程序入口和出口函数
验收测试
黑盒测试:
定义:
黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,注重于测试软件的功能性需求,不关心程序内部逻辑和内部特性,实际上是站在最终用户的立场上,检验输入输出信息及系统性能
指标是否符合规格说明书中有关功能需求及性能需求的规定。
黑盒测试设计技术可分为:
✓ 等价类划分
✓ 边界值分析
✓ 错误推测法
✓ 判定表驱动法
✓ 因果图法
✓ 正交试验法
✓ 场景法
黑盒测试主要应用在系统测试和验收测试阶段
优点:
- 对较大的代码单元来说,黑盒测试比白盒测试的效率高
- 测试人员不需要了解实现得细节,包括特定的编程语言
- 测试人员和编程人员是相互独立的
- 从用户的角度进行测试,很容易被接受和理解
- 有助于暴露任何与规格不一致或者歧异的地方
- 测试用例可以在规格完成后马上进行
缺点:
- 不能测试程序内部特定部位
- 程序未执行的代码无法发现
- 没有清晰的和简明的规格,测试用例很难被设计
兼容性测试( Compatibility Testing)
软件测试过程
软件开发各阶段的测试工作
软件测试在软件开发各阶段工作内容
项目规划阶段:负责整个测试阶段的监控。
需求分析阶段:确定测试需求分析,制定系统测试计划。
概要设计和详细设计阶段:制定集成测试计划和单元测试计划。
编码阶段:开发相应的测试代或测试脚本,设计测试用例。
测试阶段:实施测试,并提交相应的测试报告。
软件测试风险
- 软件测试中的软件风险分析是根据预测软件将出现的风险,制定软件测试计划并排列优先等级,风险分析是对软件中潜在的问题进行识别、估计和评价的过程。
- 软件测试风险包括进度风险、质量风险、人员风险、变更风险、成本风险等。
软件测试工程师的职责
1. 测试要点提取,设计测试用例
2. 搭建测试环境
3. 执行软件测试
4. 提交软件缺陷报告
5. 验证修正的缺陷
6. 回归测试
7. 完成测试报告
8. 测试总结
9. 参与项目各阶段评审会
软件测试工程师的基本素质
1. 责任心、细心、耐心、专心、自信心;
2. 沟通能力、幽默感、记忆力(挖掘以往错误)、怀疑精神、自我督促(防止懒散,保证每天正常工作)、洞察力(发现重点)、发现问题的敏锐度;
3. 语言及文字表达能力,问题描述能力;
4. 广泛的经验;
5. 会提问,会寻求帮助;
6. 逻辑思维能力、发散思维能力;
7. 团队协作能力;
8. 处理日常事务的能力和处理紧急突发事件的能力。
还没有评论,来说两句吧...