测试基础
测试定义
什么是测试?
简单的说,就是对被测对象进行检测,目的在于检测被测对象是否实现用户的需求或者是搞清楚检查的实际结果和预期结果之间的差别。
测试目的
我们对软件进行测试,那我们对它进行测试的目的又是什么?
(1)发现被测对象与用户需求之间的差别
(2)发现缺陷并解决,提高软件质量
(3)获取被测对象的质量信息,为决策提供数据依据
(4)预防缺陷,降低产品风险
测试原则
通常来说,软件测试有几个原则
(1)测试证明软件存在缺陷
软件一般都存在缺陷
(2)不可能执行穷尽的测试
无法做穷尽的测试,比如计算器的加法
(3)测试应该尽早
尽早测试,早发现早解决,避免病入膏肓
(4)缺陷存在群集现象
80%的缺陷集中在20%的核心功能上
(5)杀虫剂悖论
一种农药无法杀死全部的蝗虫,应该多用几种农药,即不断的变换着方法去测试,去发现更多的问题,用多个因素考虑更多
的问题,才可能找到更多的缺陷
(6)不同的测试活动依赖不同的测试背景
不同的测试环境,不同的业务,关注点不同,思路也不一样,从而它的要求也不一样,
比如金融产品更多关注的是安全性和性能,电商更多关注的是产品功能
(7)不存在缺陷的悖论
如果不满足用户需求,软件即使做的再好没有缺陷也无用
测试对象
(1)软件源代码
(2)与软件源代码匹配的文档
(3)支撑软件源代码的配置数据
在不同的阶段,测试的对象不同
(1)需求阶段:需求文档(测试需求文档是否正确实现了用户的需求)
(2)系统设计阶段:a. 概要设计文档;b. 详细设计文档;c. 是否有设计或逻辑上的错误
(3)编码阶段:测试源代码(发现编程上的错误)
(4)系统测试阶段:被测对象是否满足用户需求
测试级别
(1)单元测试
针对系统最小的组成单元进行的测试,一般是类或者函数
(单元测试阶段大约能发现80%的bug,效果好,效率不一定好)
(2)集成测试
针对单元之间、组件之间或者单元与组件之间的接口进行的测试,验证接口是否符合设计
集成测试又分为三种:
a. 函数间的集成
b. 模块间的集成
c. 子系统之间的集成
(3)系统测试
将通过集成测试的软件部署在真实的用户环境下执行的测试
(国内大部分集中这个阶段)
(4)验收测试
以用户为主的测试,验收组应该由该项目成员、用户代表组成
验收测试又分为三种:
α测试:
在受控环境下执行测试
由用户在开发环境下执行的测试活动,开发者在测试人员身边,发现问题及时沟通解决
β测试:
在不受控环境下进行测试
开发者不在测试人员身边,发现问题由专人统一收集,再由研发人员进行修改,如游戏公测
UAT测试: 用户接收度测试(一般商业用户验证系统可用性进行的测试)
测试学习的思路
打好基础,掌握核心的知识
尽可能拿知识点与生活经验进行整合
(看知识点时,有没有类似的现象和事情,把自己不成熟和不专业的想法用专业的词汇表达出来)
举一反三,不停的琢磨,不停的思考