软件测试入门随笔——软件测试基础知识(二)

POINT one:软件测试生命周期——V模型

  • V模型左边为开发阶段,右边为测试阶段。单元测试和功能测试应检测程序的执行是否满足程序设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。
  • 单位测试:对单元模块的功能、性能进行测试,比如能不能完成登录功能等等。主要由开发人员完成,要求具备一定的读、改代码的能力,有静态测试方法(代码分析)和动态测试方法(白盒、或黑盒)
  • 集成测试:以《软件概要设计说明书》为依据,检验软件单元和已集成的软件系统之间的接口关系,并验证已集成软件系统是否符合设计要求。测试对象是软件单元集成到软件系统的组装过程,以及组装过程中的(中间、部分)软件系统。比如注册后能不能登录或者充值等等。

集成方法:

  1. 一次性集成方式:首先对每个模块分别进行模块测试,然后再把所有模块集成在一起进行测试,最终得到要求的软件系统。

优:不需要驱动和桩模块

    缺:问题难以定位

  2. 增量式集成方式:首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题,通过增量逐步加入,组装成为要求的软件系统。

  3. 自顶向下的增量方式

  4. 自底向上的增量方式

注意:在集成测试时,应当确定关键模块,对这些关键模块及早进行测试。

  • 系统测试:将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在模拟/实际环境下,对计算机系统进行系列的测试活动。也就是搭建测试环境,根据需求文档和测试用例来进行测试,验证《系统规格说明书》(项目级或系统级)中所规定的个功能和其它质量属性是否正确实现。

方法:黑盒测试(功能/业务流程、系统联调、性能/非功能)

   功能测试、协议一次性测试、性能测试、压力测试、容量测试、安全性测试、失效恢复测试、备份测试、GUI测试、健壮性测试、兼容性测试、易用性测试、安装测试、文档测试、在线帮助测试、数据转换测试

  • 验收测试:由用户执行,研发人员不在场。
  1. Alpha测试:一种前期的用户测试,在开发环境下进行。
  2. Beta测试:一种后期的用户测试,在实际使用环境下进行。

POINT two:软件测试方法分类

测试方法 黑盒测试(功能测试、数据驱动测试) 白盒测试(结构测试、逻辑驱动测试)
 概念  完全不考虑程序内部的结构和处理过程,只是检查程序功能是否符合需求规格说明书  完全了解程序结构和处理过程,按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作
测试目的  是否有不正确或遗漏了的功能      对程序模块的所有独立的执行路径至少测试一次
 在接口上,输入能否正确地接收?输出是否正确?  对所有的逻辑判定,取“真”与取“假”的所有情况都能至少测试一次
 是否有数据结构错误或外部信息(例如数据文件)访问错误?  在循环的边界和运行界限内执行循环体
 性能上是否能够满足要求?  测试内部数据结构的有效性等
是否有初始化或终止性错误?  
  集成测试 系统测试
测试内容 各个单元模块之间的接口 整个系统的功能和性能
测试目的 发现单元间接口的错诨,发现集成后软件不需求的不一致 通过与系统需求规格说明相比较之后发现软件与系统定义不符合或矛盾的地方
测试对象  由通过了单元测试的各个模块所集成起来的构件  除了软件之外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统
测试时间  介于单元测试和系统测试之间的测试  集成测试之后
测试角度  偏重于技术检核  偏重于业务检核
  • 回归测试:指错误被修正后或软件功能、环境发生变化后进行的重新测试,其困难在于不好确定哪些内容应当被重新测试。(相当于返工,需要扩大范围,检查周边功能是否受影响)
  • 压力测试、负载测试:测试软件系统的最大负载
  • 性能测试:测试软件在各种状况下的性能,如在正常或最大负载下的状况
  • 易用性测试:测试软件是否易用,主观性比较强,一般要根据很多用户的测试反馈信息,才能评价易用性
  • 安装与卸载测试:在APP及CS系统的测试会用到,看安装、在线升级安装以及卸载、重复安装是否会有问题
  • 安全性测试:测试该系统防止非法入侵的能力
  • 兼容性测试:测试该系统与其他软件硬件兼容的能力,一般也是用在APP与CS系统中

补充:

  • C/S与B/S架构的区别

一定要安装一个客户端才能够用的软件,就叫C/S。每次更新,都需要更新服务端与客户端。(eg:excel、超市收银系统...)

只需要一个浏览器就可以访问服务的,就是B/S。更新时只需要更新服务器就OK,不需要去更新浏览器,用户主动性比较高。(爱奇艺、qq空间...)

时间: 11-14

软件测试入门随笔——软件测试基础知识(二)的相关文章

软件测试入门随笔——软件测试基础知识(六)

初步接触性能测试啦!!学习书籍<loadrunner 性能测试巧匠训练营> 针对不同系统,性能测试有不同的关注点 C/S架构的产品更关注系统资源使用情况.数据库性能以及运行的配置要求等等.如:内存.用户连接数.数据库死锁.数据库cache命中率.运行的最低配置等等.   B/S架构的产品关注web服务器的相关指标.如:每秒点击率.吞吐量.尝试连接数.事务成功率等等.B/S架构的较为复杂. 性能测试的目的(know how fast & how much) 1.评估当前系统 2.寻找瓶颈

软件测试入门随笔——软件测试基础知识(三)

About 黑盒测试 key:完全不考虑程序内部结构和内部特性,在程序接口处进行测试. 主要依据:规格说明书(软件验证).用户手册(软件审核) 黑盒测试是通过输入数据.进行操作.观察输出结果,检查软件系统是否按照需求规格说明书的规定正常运行,软件是否能适当地接收输入数据并产生正确的输出结果,且保持外部信息(如数据库或文件的完整性) 黑盒测试 方法 功能测试 等价类划分.边值分析.因果图.错误推测法等 非功能测试 性能测试.强度测试.兼容性测试.配置测试.安全测试.安装与卸载测试等 等价类划分 等

软件测试入门随笔——软件测试基础知识(七)

测试性能模型分析 1.曲线拐点模型 这个图中X轴为并发用户数,随着并发用户数的增大,二维空间被划分为三个区域:轻压力区.重压力区和拐点区. Y轴表示资源利用率.吞吐量和响应时间,应该以X为自变量来逐一分析这三个指标的变化,再综合分析. ①随着并发用户数的增加,资源利用率逐步上升,最后达到饱和. ②随着并发用户数的增加,吞吐量增加.进入重压力区后逐步平稳,达到拐点区后急剧下降,说明系统已达到处理极限. ③随着并发用户数的增加,在轻压力区的响应时间变化不大,比较平缓,进入重压力区后呈现增长的趋势,最

Java基础知识二次学习-- 第一章 java基础

基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一章  JAVA简介 时间:2017年4月24日10:23:32 章节:01章_02节 内容:jdk的配置与安装 完成情况:已经完成,cmd中javac提示出相关命令 时间:2017年4月24日10:30:39 章节:01章_04节 内容:输出HelloWorld 完成情况: 已经完成 javac先将

Powershell基础知识(二)

上一节主要介绍Powershell可发现,面向对象,一致性等特性,以及Powershell命令是基于.Net对象等重要概念,以及Powershell命令的命名规范,详细内容点击这里. 这一节的Powershell基础知识主要包含以下知识点 获取命令的摘要信息. 获取命令的帮助信息. 总结. 获取命令的摘要信息 Powershell命令 Get-Command 可检索当前shell中所有可用的命令名称.在Powershell提示符输入 Get-Command ,输出的内容类似以下内容(以下只写出输

SQL server从入门精通---- 数据基础知识

数据库入门: 数据库的发展:人工管理阶段-----文件管理阶段-----数据库系统阶段 数据系统的组成: 1.数据库(数据)db 2.数据管理系统(软件)dbms 3.数据库管理人员  dba 4.硬件平台   5.软件平台        数据库的3级模式 模式   外模式   内模式   简单点说 模式就是表 外模式就是视图 内模式是物理结构和存储方式一般你是用不到的   3级模式之间的2级映射 模式/外模式映射(逻辑独立性) 外模式/内模式映射(物理独立性) 数据模型 层次模型   网状模型

Java基础知识二次学习-- 第二章 基础语法与递归补充

第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下划线,$,数字组成,应该由字母,下划线$开头,同时应该避开java保留字符 变量是内存中的一小块区域,使用变量名来访问这块区域 执行过程中的内存管理(疑问:这里的内存和Jvm的一样吗?) code segment 存放代码 data segment 静态变量 字符串常量 stack 栈 局部变量 h

jsp基础知识二(jsp动作指令)

动作指令与编译指令不同,编译指令是通知servlet引擎的处理消息,而动作指令只是运行时的动作.编译指令在将JSP编译成Servlet时起作用,而动作指令通常可替换成JSP脚本,它只是JSP脚本的标准化写法. (1)JSP:forward  执行页面转向,将请求的处理转发到下一个页面. (2)JSP:param  用于传递参数,必须与其他支持参数的标签一起使用 (3)JSP:include  用于动态引入一个JSP页面 (4)JSP:plugin 用于下载JavaBean或者Applet到客户端

css基础知识二

1.盒模型: 实际宽度:外边距*2+内边距*2+边框*2+内容宽度(注意这点,可解决界面元素轻微浮动问题,如hover有边框,以前没的时候会有轻微浮动) 作用:他规定了网页元素如何显示以及其相互关系 2.padding会撑大容器,而margin不会. 这点巧用(自己总结的):① 能用margin的别用padding ② 网页中为一个元素添加一边的下划线时候用padding ③ 导航栏中,用<ul><li>写的时候,先调节<li>的padding:npx,再调节<u