软件测试基本介绍(前置知识)
一、软件测试定义
通过手工或者工具对“被测对象”进行测试操作,从而验证实际结果与预期结果之间是否存在差异。
二、软件测试的作用
通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信息。
测试可以记录软件运行过程中产生的一些数据,从而为决策提供数据支持。
测试可以降低同类型产品开发遇到问题的风险。
三、测试原则
测试证明软件存在缺陷:无论执行什么样的测试操作都能证明当前软件是有缺陷的
不能执行穷尽测试:有些功能没有办法把所有测试情况罗列出来,任何测试操作都有结束的时间
缺陷存在群集现象:“二八原则” 核心功能占20%,非核心是80%。在实际工作中集中测试20%的核心功能,所以这个部分发现缺陷的几率就会高于80%。
某些测试需要依赖特殊的环境
测试应尽早介入:尽早测试,修复缺陷后再测试需要时间
杀虫剂现象:同样的测试用例不能重复执行多次,因为软件会对它产生免疫
不存在缺陷谬论:任何软件不可能是完美的
四、测试对象
最经常测试主体:软件(主体功能)
三部分组成:功能集合+使用说明书+配置数据
不同阶段的测试对象不同
需求分析阶段:各种需求规格说明书
软件架构设计:API接口文档(接口测试)
编码实现阶段:源代码(白盒测试、单元测试)
系统测试:软件功能测试(当前行业做的最多的一种测试)
五、测试级别
软件开发都会依据相应的开发模型,则测试级别指的就在这个模型当中我们人为定义的开发步骤。
其中对于测试来说我们最常见的一种级别分类如下:
单元测试【UT unit test】:在软件测试中单元指的是组成软件最小的底层代码结构,一般就是类、函数、组件。也就是去测试某段功能代码。
集成测试【IT ingertaion test】:将多个单元模块组合在一起,然后验证它们之间沟通的桥梁是否能正常工作(接口测试)
系统测试【ST system test】:由测试人员充当用户,然后对软件的功能主体进行测试
验收测试:
α测试 -- 内测
β测试 -- 公测
【UAT user acceptance test】测试 --由客户派出对于业务非常精通的人员使用该软件,从而对功能进行测试
验收测试的核心就是让用户为当前软件“买单”