type
status
date
slug
summary
tags
category
icon
password
😀
文章前言:本文主要讲述系统测试方法。
 

系统测试概述

系统测试是将经过集成测试后的软件,作为计算机系统的一个部分,与计算机硬件、某些支持软件、数据和人员等系统元素结合起来,在实际运行环境下对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题,保证系统的运行。
目的
  • 软件是否按需求规格说明中确定的软件功能、性能、约束及限制等技术要求进行工作,以及软件安装到系统中以后,能否与系统的其余部分协调运行。
任务
  • 测试是否功能满足需求
  • 测试是否与硬件协调运行
  • 测试是否和原来就有的其它软件协调运行
  • 测试是否完成系统需求对它的要求
 

系统测试内容

1 回归测试

回归测试的目的:在程序有修改的情况下保证原有功能正常的一种测试策略和方法。
回归测试的方法:
再测全部测试用例
比较安全的软件测试方法,但测试成本最高
基于风险的选择测试
运行最重要的、关键的和可疑的测试,而跳过那些非关键的、优先级别低的或者高稳定的测试用例,这些用例即便可能测试到缺陷,这些缺陷的严重性也仅有三级或四级
基于操作剖面选择测试
操作剖面是描述用户如何使用软件的一种技术
优先选择那些针对最重要或最频繁使用功能的测试用例,以释放和缓解最高级别的风险,但实施起来有一定的难度
再测试修改的部分
当测试者对修改的局部化有足够的信心时,可以通过相依性分析识别软件的修改情况并分析修改的影响,将回归测试局限于被改变的模块和它的接口上

2 用户界面测试

一般与功能测试同时进行
  • 验证界面显示内容的完整性
  • 验证界面显示内容的一致性
  • 验证界面显示内容的准确性
  • 验证界面显示内容的友好性
  • 验证界面提示信息的指导性
  • 验证界面显示内容的合理性
分别对文本框、按钮、菜单、复选框等控件进行测试
 

3 压力测试与性能测试

两种测试虽然测试目的有所不同,但手段和方法在一定程度上比较相似,通常会使用特定测试工具来进行模拟测试,并且一同进行。
  • 压力测试
压力测试也叫负荷测试,即获取系统能正常运行的极限状态。
压力测试的主要任务是:模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作。构造正确的输入,使劲折腾系统却让它刚好不瘫痪。
  • 性能测试
测试软件能否在真实环境中满足性能要求。
测试正常使用时系统完成一个任务需要的时间,多人同时使用的时候响应时间是否都在接受范围内。
  • 压力测试与性能测试
压力测试是为了发现系统能支持的最大负载,其前提是要求系统性能处在可以接受的范围内(比如经常规定的页面3秒钟内响应)。
在性能可以接受的前提下,测试系统可以支持的最大负载。
性能测试是为了检查系统的反应、运行速度等性能指标,其前提是要求在一定负载下(如检查一个网站在100人同时在线的情况下)的性能指标,每个用户是否都还可以正常的完成操作等。
在不同负载下(负载一定)时,通过一些系统参数(如响应时间等)检查系统的运行情况。
针对一个网站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试。
 

4 安全性测试

在测试软件系统中对程序的危险防止和危险处理进行的测试,以验证其是否有效。
安全性测试我们要做哪些工作呢?
  • 全面检验软件在软件需求规格说明中规定的防止危险状态措施的有效性和在每一个危险状态下的处理反应情况。
  • 对软件设计中用于提高安全性的逻辑结构、处理方案,进行针对性测试。
  • 在异常条件下测试软件,以表明不会因可能的单个或多个输入错误而导致不安全状态。
  • 用错误的安全性关键操作进行测试,以验证系统对这些操作错误的反应。
  • 对安全性关键的软件单元功能模块要单独进行加强的测试以确认其满足安全性需求。
安全性测试的方法
  • 功能验证
    • 功能验证是采用软件测试当中的黑盒测试方法,对涉及安全的软件功能,如:用户管理模块,权限管理模块,加密系统,认证系统等进行测试,主要验证上述功能是否有效,具体方法可使用黑盒测试方法。
  • 漏洞扫描
    • 安全漏洞扫描主要是借助于特定的漏洞扫描器完成的。通过使用漏洞扫描器,系统管理员能够发现系统存在的安全漏洞,从而在系统安全中及时修补漏洞的措施。一般漏洞扫描分为两种类型:主机漏洞扫描器(Host Scanner)和网络漏洞扫描器(Net Scanner)。
    • 主机漏洞扫描器是指在系统本地运行检测系统漏洞的程序。如著名的COPS、Tripewire、Tiger等自由软件。
    • 网络漏洞扫描器是指基于网络远程检测目标网络和主机系统漏洞的程序。如Satan、ISS Internet Scanner等。
  • 模拟攻击
    • 对于安全测试来说,模拟攻击测试是一组特殊的黑盒测试案例,我们以模拟攻击来验证软件或信息系统的安全防护能力。
  • 侦听技术
    • 侦听技术实际上是在数据通信或数据交互过程,对数据进行截取分析的过程。目前最为流行的是网络数据包的捕获技术,通常我们称为 Capture,黑客可以利用该项技术实现数据的盗用,而测试人员同样可以利用该项技术实现安全测试。
 

5 可靠性测试

可靠性(reliability)指在规定条件下,在规定时间内,软件不引起系统失效的概率。
软件可靠性测试是在有使用代表性的环境当中,为进行软件可靠性估计而对该软件进行的功能测试。
软件可靠性测试的主要目的有:
  • 通过在有使用代表性的环境中执行软件,以证实软件需求是否正确实现。
  • 为进行软件可靠性估计采集准确的数据。估计软件可靠性一般可分为四个步骤,即数据采集、模型选择、模型拟合以及软件可靠性评估。可以认为,数据采集是整个软件可靠性估计工作的基础,数据的准确与否关系到软件可靠性评估的准确度。
  • 通过软件可靠性测试找出所有对软件可靠性影响较大的错误。
软件可靠性测试的特点:
  • 软件失效是由设计缺陷造成的,软件的输入决定是否会遇到软件内部存在的故障。因此,使用同样一组输入反复测试软件并记录其失效数据是没有意义的。
  • 软件可靠性测试强调按实际使用的概率分布随机选择输入,并强调测试需求的覆盖面。
  • 软件可靠性测试也不同于一般的软件功能测试。软件可靠性测试必须按照使用的概率分布随机地选择测试实例,这样才能得到比较准确的可靠性估计,也有利于找出对软件可靠性影响较大的故障。
  • 此外,软件可靠性测试过程中还要求比较准确地记录软件的运行时间。它的输入覆盖一般也要大于普通软件功能测试的要求。
用时间定义的软件可靠性数据可以分为四类(可互相转化)
  • 失效时间数据:记录发生一次失效所累积经历的时间
  • 失效间隔时间数据:记录本次失效与上一次失效间的间隔时间
  • 分组数据:记录某个时间区内发生了多少次失效
  • 分组时间内的累积失效数:记录某个区间内的累积失效数
 

6 容错性测试

容错性测试是检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段,包括故障转移与数据恢复。
这里,“异常条件”包括:
  • 输入异常数据或进行异常操作。
  • 灾难:通过各种手段,让软件强制性地发生故障。
前者比较温柔,通常构造一些不合理的输入来引诱软件出错;后者非常粗暴,俗称“大猩猩”测试。

基于线索的系统测试

1 线索的不同层次

  • 单元级线索:源指令路径或DD-路径。
  • 集成级线索:MM-路径。
  • 系统级线索:原子系统功能序列,即端口输入和端口输出的交替序列。
 

2 线索的定义

原子系统功能(ASF):是一种在系统层可以观察得到的端口输入和端口输出事件的行为。
ASF由事件静止点分开,当系统空闲、等待端口输入时会出现事件静止。
SATM中的事件静止:SATM主程序开始时的循环,系统显示欢迎屏幕。
ASF开始于一个端口输入事件,遍历一个或多个MM-路径的一部分,以一个端口输出事件结束。
  • 给定通过原子系统功能定义的一个系统,系统的ASF图是一种有向图,其中的节点表示ASF,边表示串行流。
  • 源ASF是一种原子系统功能,在系统ASF图中作为源节点出现。汇ASF也是一种原子系统功能,在系统ASF图中作为汇节点出现。
    • SATM中“ATM卡输入”是源ASF,会话结束是汇ASF。
  • 系统线索在系统的ASF图中,是一种从源ASF到汇ASF的路径。
  • 给定通过系统线索定义的一个系统,系统的线索图是一种有向图,节点表示系统线索,边表示单个线索的顺序执行。
 

3 用例

高级用例相当于用户故事
notion image
基本用例添加了端口输入和输出事件
notion image
 
 

案例研究

示例

notion image
notion image
notion image
notion image
notion image
分析线索
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image

例题

写出一个线索或者用例测试屏幕12。
 
 
 
 
💡
有关问题,欢迎您在底部评论区留言,一起交流~
软件工程:面向对象的概念和记号软件测试:测试管理
Loading...
Koreyoshi
Koreyoshi
一个无可救药的乐观主义者
Latest posts
软件测试:集成测试
2025-3-25
软件测试:控制流测试
2025-3-25
软件测试:系统测试
2025-3-25
软件测试:数据流测试
2025-3-25
软件测试:测试驱动开发
2025-3-25
软件工程:面向对象的概念和记号
2025-3-24
Announcement
🎉写给自己的2025心愿🎉
保研
国奖
完善博客
学一门乐器
发表一篇论文
拍摄人生照片
去3个城市旅游
专业课知识视频
拍摄毕业季视频
----- 2025 ------
👏希望我们一起变好👏