软件测试基础篇

一、 软件测试基本概念

1. 软件测试定义

软件测试就是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

2. 软件=程序+文档,软件测试=程序测试+文档测试

程序做了该做的,没有做不该做的

3. 软件测试目的

业界有两种权威定义:
评价一个程序和系统的特性或能力,并确定它是否达到预期的结果。
是在软件分发到最终用户手中之前,以最少的时间和人力找出软件中潜在的各种错误和缺陷。

4. 软件分类

按功能分:系统软件,应用软件
按技术架构分:单机版软件、C/S结构软件、B/S结构软件
按照用户划分:产品软件、项目软件
按开发规模划分:小、中、大型

5. Bug的定义

软件的bug指软件中(包括程序和文档)不符合用户需求的问题。
常见的软件bug分三种类型:完全没有实现的功能;基本实现了用户需求的功能;实现了用户不需要的功能。

6. 测试环境=软件+网络+硬件。

搭建环境:真实、干净、无毒、独立

7. 测试用例

指在测试执行之前设计的一套详细测试方案,包括测试目的,测试环境,测试步骤,测试数据和预期结果。

二. 软件测试分类

1. 按测试方法分类: 黑盒和白盒

黑盒测试:指的是把被测软件看成是一个黑盒子,我们不用去关心盒子里面的结构是什么样子的,只关心输入结果和输出结果。
主要是为了发现几类错误:
是否有不正确或遗漏的功能;
接口处的输入输出是否正确;
是否有数据结构错误或外部信息访问错误;
性能是否满足实际要求;
是否有初始化或终止性错误。
黑盒测试方法:
功能划分
等价类划分
边界值分析
因果图法
错误推测
白盒测试:指的是把盒子打开,研究里面的源代码和程序结构。测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。
白盒测试主要对程序模块进行如下检查:
对程序模块的所有独立的执行路径至少测试一遍;
对所有的逻辑判定,取‘真’或取‘假’两种情况都能至少测一遍;
在循环的边界和运行的界限内执行循环体;
测试内部数据结构的有效性。
白盒测试方法:
语句覆盖法
分支覆盖法
逻辑覆盖法
灰盒测试:是介于黑、白测试之间的,关注输出对于输入的正确性,同时也关注内部表现。结合了黑盒及白盒测试的要素,它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。

2. 按运行程序与否分类: 静态和动态

静态测试:指不实际运行被测软件,只是静态的检查程序代码、界面或文档中可能存在的错误的过程。
动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态还是静态唯一的标准就是看是否运行程序。
注:同一个测试,既有可能属于黑盒测试,也有可能属于动态测试;既有可能属于静态测试也有可能属于白盒测试。他们之间也有可能交叉。

3. 按测试阶段划分

单元测试:编译运行程序——静态测——-动态测试
集成测试:是单元测试下的一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。
系统测试:指的是将整个软件系统看作一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分α测试和β测试,α测试指的是由用户、测试人员、开发人员等共同参与的内部测试。而β测试指的是内测后的公测,即完全交给最终用户测试。

4. 按类型划分

功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。功能测试又可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
容错测试: 数据长度、数据类型、非法此操作
接口测试: 接口测试也叫业务流程测试(包括功能模块之间、模块与模块之间、子系统之间). 通俗的讲是接口就是调用.
性能测试:软件的性能包括很多方面,主要有时间性能和空间性能两种。时间性能:主要指软件的一个具体事务的响应时间。空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分为一般性能测试、稳定性测试、负载测试和压力测试。一般性能测试指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。稳定性测试,也叫可靠性测试,是指连续运行内测系统,检查系统运行时的稳定程度。我们通常用MTBF(错误发生的平均时间间隔)来衡量系统的稳定性,越大稳定性越强。负载测试是性能测试的一种,通常是指让被测系统在其能忍受的眼里的极限范围之内连续运行,来测试系统的稳定性。压力测试是性能测试的一种,通常是指连续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。
假设一个人很轻松的就能背一袋米,背两袋米很吃力,最多就能背三袋米,那么:一般性能测试我们就让他背一袋米;稳定性测试我让他背一袋米但要去操场跑圈看多久会累倒;负载测试我让他背两袋米去操场跑看多久会累倒;压力测试我让他背两袋米,三袋米,四代迷…发现他最多就能背三袋米。
并发测试: 指多个用户在同一时间对同一条数据的删除或者修改等处理
恢复测试: 突然断电(系统触发正常启动;数据包要在断电的地方继续进行处理)
回归测试:指对软件的新版本测试时,重复执行上一个版本测试时的用例。
冒烟测试:是指在对一个新版本进行大规模测试之前,先验证一下软件的基本功能是否可以实现,是否具备可测性
安装配置测试: 安装过程, 升级更新, 卸载过程
文档测试: 交给用户的文档。例如:系统帮助、用户使用手册、用户安装手册
数据完整性: 是指当主表的某一条件信息被删除后,和这一条相关的从表的信息都应该被删除。如果某些数据的主键是由数据库本身而实现的,可以不用删除,如果有些主从表是由程序员写的代码而实现,则要进行数据完整性的测试。
随机测试:是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘的错误

三. 软件测试基本素质

1.测试工程师应该具备的基本职业素质:三心二意一能力。三心:细心、耐心、信心;二意:服务意识、团队意识;一能力:沟通能力。
2.如何成为一名优秀的测试工程师:内功(基础知识:计算机硬件、网络、OS、DB)、测试技术(黑盒测试中等价类、边界值、因果图等,白盒测试中的语句覆盖、分支覆盖、路径覆盖等)还要不断学习充电,阅读原版书籍,阅读缺陷管理系统中的缺陷报告、阅读高手写的测试用例、学习产品相关的业务知识

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值