软件测试基础理论(汇总)

一、软件测试的含义

 

  • 软件测试的经典定义:在规定的条件下对程序(文档、数据、程序)进行操作,以发现错误,对软件质量进行评估。
  • 软件测试范围是对软件形成中的文档、数据以及程序进行的测试,而不仅仅是对程序进行的测试。
  • 软件测试的重要性:60%以上的软件错误并不是程序错误,而是分析和设计错误,因此做好软件需求和设计阶段的测试工作就显得非常重要。

 

二、软件测试的目的

 

  • 验证软件是否满足 项目开发计划,软件需求规格说明,软件产品说明等规定的软件质量要求
  • 通过测试,发现软件缺陷 
  • 为软件产品的质量测量和评价提供依据

 

三、软件测试的分类

 

1.从软件开发的过程按阶段划分有

A.单元测试 B.集成测试 C.确认测试 D.系统测试 E.验收测试

 

  • 单元测试:单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。

对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。

单元测试包含内容:--入口和出口函数、--输入和输出信息、--错误处理信息、--部分边界数值测试

  • 集成测试,也叫组装测试或联合测试。

集成测试包括两种方法:--非增量式集成 --增量式集成:自顶向下增量式测试、自底向上增量式测试

  • 确认测试:确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。

经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。

确认测试范围:--文档、--源码、--版本、--模块、--人员、--环境、--工具

  • 系统测试:把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。

系统测试范围:--功能、--界面、--性能、--安全性、--安装、--卸载、--易用性、--兼容性等

 验收测试:是一项确定产品是否能够满足合同或用户所规定需求的测试。

这是管理性和防御性控制,主要确认软件是否按合同要求进行工作,既是否满足软件需求规格说明书中的要求

 

2.验收测试分类:

非正式的验收测试

--А(alpha)测试:软件开发公司组织内部人员模拟各类用户行为对即将上市的产品进行测试。

--ß(beta)测试:软件开发公司组织各方面的的典型客户在日常工作中实际使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善。

正式的验收测试:有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试,结果提交。着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面。

白盒测试:又称为结构测试。着重于程序内部结构和算法,不关心功能和性能指标

 灰盒测试:介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。

黑盒测试:把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明

回归测试:对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了” 

冒烟测试:冒烟测试的对象是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。

 

四、软件测试的流程(步骤)

 

1、需求分析:阅读需求文档,看到底要开发什么样的软件、功能,形成自己的思路

2、需求评审:产品人员、测试人员、开发人员集体参与,针对需求文档的说明评估需求合不合理,可不可以优化,有没有歧义等

3、测试计划:测试项目简介、测试范围、 测试的方法(测试人员、测试工具、测试流程、测试类型)、 测试环境(软件、网络)、 测试开始条件和结束条件、 测试者的任务、测试进度与跟踪、 测试风险与解决、 测试计划的审批与变更方式

4、测试用例:编写黑盒测试用例的方法:等价类、边界值、错误推测方法、判定表、场景法、因果图

用例的要素:用例类型、类别、等级、标题、预置条件、操作步骤、预期结果、实际结果、创建者、用例评审结果、执行时间、执行结果、备注

5、用例评审——用例的评审标准:准确全面覆盖需求、简洁明了,没有冗余,可操作性强

6、执行测试:执行测试用例(在测试过程中按照用例执行,并完善用例,一般测试两轮测试环境,准生产环境各一轮)

测试的缺陷:项目、问题类型、模块、严重级别(Medium、Highest、High、low、lowest)、版本、 状态(等待开始、研发中、开发done、closed、reopen)、描述、步骤、预期结果、实际结果、操作环境、操作数据、截图

回归测试——开发修改完问题Bug后,测试需要进行回归测试验证是否修改成功

7、测试报告:人力设备时间的统计,用例覆盖率的统计、用例执行率统计,缺陷的统计(数量,严重级别,来源、类型),遗留缺陷及存在的风险和规避措施,对测试对象的评估测试结论。

8、产品(UI)人员验收

9、项目(模块)上线

五、软件测试的质量

 

  • 软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”;
  • 明确的需求指:软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准;
  • 隐含的需求指:所有专业开发的软件都应具有的隐含特征的程度,比如:符合行业标准。

 

六、软件测试的风险

 

  • 软件测试中的软件风险分析是根据预测软件将出现的风险,制定软件测试计划并排列优先等级,风险分析是对软件中潜在的问题进行识别、估计和评价的过程。
  • 风险也包括进度风险、质量风险、人员风险、变更风险、成本风险等

 

七、软件测试的结束标准

 

  • 需求覆盖率100%
  • 用例执行率100%
  • 陷遗留率不超过2%
  • 其他的相关质量标准达到预期标准

 

你可能感兴趣的:(测试)