12 软件测试新技术

Posted on Wed, 25 Dec 2024 17:09:03 +0800 by LiangMingJian


1.物联网

1.1 物联网的定义

  • 物联网是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。
  • 物联网的作用是把所有物品通过信息传感设备与互联网连接起来,进行信息交换,即物物相息,以实现智能化识别和管理。

1.2 物联网的三个典型特征

  • 普适服务智能化
  • 自治终端互联化
  • 普通对象设备化

1.3 物联网的三项关键技术

  • 感知层
  • 网络传输层
  • 应用层

1.4 物联网的安全架构

  • 设备层:指部署物联网的解决方案时所使用到的硬件,即物的实体。
    • 要求:物理安全,芯片安全,安全引导。
    • 原则:处理复杂的、安全性要求高的任务的前提条件;边缘处理应具有安全优势。
  • 通信层:指安全发送/接受数据的媒介,即物联网解决方案中的连接网络。
    • 要求: 数据加密,访问控制。
    • 原则:启动与云端的连接安全保障;信息的安全保障。
  • 云平台:指物联网解决方案的后端,主要用于对接收到的数据进行分析和处理。
    • 要求:数字证书,完整性校验。
    • 原则:设备需要具备识别、认证和加密的功能。
  • 全生存周期管理层:指保证从设备制造、安装到物品处置的整个过程中都有足够高的安全级别,是一个整体性的层级。
    • 要求: 设计,策略执行,定期审核,供应商控制。
    • 原则:远程控制和更新的安全保障。

1.5 物联网测试中面临的挑战

  • 软硬件协同网络挑战
  • 模块交互强连接挑战
  • 实时数据测试挑战
  • 网络可用性测试挑战

1.6 物联网测试类型

  • 可用性测试
  • 物联网安全测试
  • 性能测试
  • 兼容性测试
  • 监管测试

1.7 物联网渗透测试技术

  • 威胁建模
  • 漏洞利用
  • 攻击技术

1.8 物联网测试流程

  • 信息收集
  • 进行分析
  • 针对性开发
  • 生成报告

2.大数据

2.1 大数据的概念

  • 大数据是指无法在一定时间内用常规的软件工具来进行捕捉、管理和处理的数据的集合。

2.2 大数据的特点

  • 数据类型多样:可能是文字、图片、视频,也可能是语法连贯的、语法不连贯的数据。
  • 数据体量大
  • 数据的增长速度快
  • 处理速度高速
  • 价值密度低:大数据中存在很多没有用的、不相关的数据。

2.3 大数据面临的挑战

  • 数据的多样性和不完整性
  • 高度扩展性
  • 测试数据管理

2.4 大数据测试类型

  • 功能测试
  • 性能测试
  • 数据提取测试
  • 数据处理测试
  • 数据存储测试
  • 数据迁移测试

2.5 大数据测试流程

  • 用户使用
  • 数据收集
  • 大数据分析
  • 缺陷挖掘

2.6 大数据测试工具

  • Hadoop:开源框架,可以存储大量数据,且具有分布式的处理能力
  • HPCC:高性能的计算机集群,是一个免费的完整的大数据的应用解决方案
  • Cloudera:企业级技术部署比较理想的测试工具
  • Cassandra:免费开源的工具,提供自动的复制、线性的可扩展、无单点故障的相关服务
  • Storm:免费开源的工具,支持非结构化数据实时的处理,并且能够与任何编程语言兼容

3.可信软件

3.1 可信软件的概念

  • 可信软件是指在存在错误、环境存在故障、系统遭受破坏的情况下,设计者、实现者、用户都能够极大地去保证系统不失效、或表现良好的软件。

3.2 可信软件的特征

  • 系统在运行过程中受到相关的干扰(木马攻击、病毒攻击、窃听、网络攻击等)还是能够满足预期,系统的质量特性还是满足要求的。
  • 对软件可信度的评估是主观与客观的结合(传统测试客观性比较强)

3.3 可信软件的验证技术

  • 形式化系统分析与验证
  • 形式化建模

3.4 可信软件验证工具

  • Spin:开源的形式化软件验证工具,用来分析和验证并发系统的逻辑是否一致的一种辅助检验性工具。
  • NuSMV:开源的形式化软件验证工具。
  • Atelier-B:主要用于达到S2L3、S2L4功能安全复杂性的系统建模与验证。

4.人工智能

4.1 人工智能的概念

  • 人工智能是指使用与人相似思维和响应的计算机技术。
  • 人工智能可以像人一样去描述或完成具体的任务。

4.2 人工智能的测试特性

  • 当前对人工智能系统得到的测试结论,很难保证对演化后的系统也能够成立。
  • 人工智能系统的输出正确性判别具有一定的不确定性。

4.3 人工智能对软件测试技术发展的影响

  • 测试工作前移。
  • 自动化程度提高。
  • 测试更可靠。

4.4 人工智能是否会取代软件测试人员

  • 会取代很大一部分流程性体力工作的岗位。
  • 减少技能要求低的岗位,增加高技能的需求。
  • 但软件测试人员不可能完全被取代

4.5 人工智能辅助测试技术

  • 基于约束的技术:将被测程序或模型以及测试的准则转换成相关的约束,然后基于约束的消除性去消除约束,最终获得测试用例。
  • 启发式搜索算法:比如遗传算法,蚂蚁算法,模拟退火算法。
  • 机器学习:比如软件测试设计推荐,模式识别,软件脆弱性测试。