软件测试入门随笔——软件测试基础知识(二)
POINT one:软件测试生命周期——V模型
- V模型左边为开发阶段,右边为测试阶段。单元测试和功能测试应检测程序的执行是否满足程序设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。
- 单位测试:对单元模块的功能、性能进行测试,比如能不能完成登录功能等等。主要由开发人员完成,要求具备一定的读、改代码的能力,有静态测试方法(代码分析)和动态测试方法(白盒、或黑盒)
- 集成测试:以《软件概要设计说明书》为依据,检验软件单元和已集成的软件系统之间的接口关系,并验证已集成软件系统是否符合设计要求。测试对象是软件单元集成到软件系统的组装过程,以及组装过程中的(中间、部分)软件系统。比如注册后能不能登录或者充值等等。
集成方法:
- 一次性集成方式:首先对每个模块分别进行模块测试,然后再把所有模块集成在一起进行测试,最终得到要求的软件系统。
优:不需要驱动和桩模块
缺:问题难以定位
2. 增量式集成方式:首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题,通过增量逐步加入,组装成为要求的软件系统。
3. 自顶向下的增量方式
4. 自底向上的增量方式
注意:在集成测试时,应当确定关键模块,对这些关键模块及早进行测试。
- 系统测试:将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在模拟/实际环境下,对计算机系统进行系列的测试活动。也就是搭建测试环境,根据需求文档和测试用例来进行测试,验证《系统规格说明书》(项目级或系统级)中所规定的个功能和其它质量属性是否正确实现。
方法:黑盒测试(功能/业务流程、系统联调、性能/非功能)
功能测试、协议一次性测试、性能测试、压力测试、容量测试、安全性测试、失效恢复测试、备份测试、GUI测试、健壮性测试、兼容性测试、易用性测试、安装测试、文档测试、在线帮助测试、数据转换测试
- 验收测试:由用户执行,研发人员不在场。
- Alpha测试:一种前期的用户测试,在开发环境下进行。
- Beta测试:一种后期的用户测试,在实际使用环境下进行。
POINT two:软件测试方法分类
测试方法 | 黑盒测试(功能测试、数据驱动测试) | 白盒测试(结构测试、逻辑驱动测试) |
概念 | 完全不考虑程序内部的结构和处理过程,只是检查程序功能是否符合需求规格说明书 | 完全了解程序结构和处理过程,按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作 |
测试目的 | 是否有不正确或遗漏了的功能 | 对程序模块的所有独立的执行路径至少测试一次 |
在接口上,输入能否正确地接收?输出是否正确? | 对所有的逻辑判定,取“真”与取“假”的所有情况都能至少测试一次 | |
是否有数据结构错误或外部信息(例如数据文件)访问错误? | 在循环的边界和运行界限内执行循环体 | |
性能上是否能够满足要求? | 测试内部数据结构的有效性等 | |
是否有初始化或终止性错误? |
集成测试 | 系统测试 | |
测试内容 | 各个单元模块之间的接口 | 整个系统的功能和性能 |
测试目的 | 发现单元间接口的错诨,发现集成后软件不需求的不一致 | 通过与系统需求规格说明相比较之后发现软件与系统定义不符合或矛盾的地方 |
测试对象 | 由通过了单元测试的各个模块所集成起来的构件 | 除了软件之外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统 |
测试时间 | 介于单元测试和系统测试之间的测试 | 集成测试之后 |
测试角度 | 偏重于技术检核 | 偏重于业务检核 |
- 回归测试:指错误被修正后或软件功能、环境发生变化后进行的重新测试,其困难在于不好确定哪些内容应当被重新测试。(相当于返工,需要扩大范围,检查周边功能是否受影响)
- 压力测试、负载测试:测试软件系统的最大负载
- 性能测试:测试软件在各种状况下的性能,如在正常或最大负载下的状况
- 易用性测试:测试软件是否易用,主观性比较强,一般要根据很多用户的测试反馈信息,才能评价易用性
- 安装与卸载测试:在APP及CS系统的测试会用到,看安装、在线升级安装以及卸载、重复安装是否会有问题
- 安全性测试:测试该系统防止非法入侵的能力
- 兼容性测试:测试该系统与其他软件硬件兼容的能力,一般也是用在APP与CS系统中
补充:
- C/S与B/S架构的区别
一定要安装一个客户端才能够用的软件,就叫C/S。每次更新,都需要更新服务端与客户端。(eg:excel、超市收银系统...)
只需要一个浏览器就可以访问服务的,就是B/S。更新时只需要更新服务器就OK,不需要去更新浏览器,用户主动性比较高。(爱奇艺、qq空间...)