软件测试—进阶篇(上)

简介: 软件测试—进阶篇(上)


🔎根据测试对象划分

界面测试

界面测试(简称UI测试)
指按照界面的需求(一般是UI设计稿)和界面的设计规则
对我们软件界面所展示的全部内容进行测试和检查

界面测试一般包括

  • 验证界面内容显示的完整性, 一致性, 准确性, 友好性
    (例如界面内容对屏幕大小的自适应, 换行, 内容是否全部清晰展示)
  • 验证整个界面布局和排版是否合理, 不同板块字体的设计, 图片的展示是否符合需求
  • 对界面不同控件的测试
    (例如对话框, 文本框, 滚动条, 选项按钮等是否可以正常使用. 有效和无效的状态是否设计合理)
  • 界面的布局和色调符合当下的发展
    (例如汶川地震的日子, 界面是否应呈现黑白色展示)

可靠性测试

可靠性即可用性
指系统正常运行的能力或程度, 一般用正常向客户提供软件服务的时间占总时间的百分比表示

可靠性 = 正常运行时间 / (正常运行时间 + 非正常运行时间) * 100%

系统非正常运行的时间可能是由于硬件, 软件, 网络故障或任何其他因素(断电, 地震, 火灾…)造成的, 这些因素能让系统停止工作, 或者连续中断不能访问, 或者性能急剧下降导致不能使用软件现有的服务

可靠性指标一般要求达到

(1)

4个9 --> 99.99%

(2)

5个9 --> 99.999%

  • 对于一个全年不间断(7 * 24 h)运行的系统, 全年时间为252600 min
  • 如果可用性达到99.99%, 意味着全年不能正常工作的时间只有52 min
  • 如果可用性达到99.999%, 意味着全年不能正常工作的时间只有5 min

容错性测试

容错性测试
指系统能够处理异常, 由于用户的错误操作而不至于系统崩溃, 从而提高系统的可用性

容错性测试一般包括

  • 输入异常数据或进行异常操作, 以校验系统的保护性. 如果系统的容错性较好, 系统只给出提示或内部消化掉, 而不会导致系统出错甚至崩溃
    (例如数据级测试, 校验测试, 环境容错性测试, 界面容错性测试)
  • 灾难恢复性测试
    (例如通过各种手段, 让软件强制性地发生故障, 然后验证系统已保存的用户数据是否丢失, 系统和数据能否尽快恢复)

文档测试

文档测试
指检验样品用户文档的完整性, 正确性, 一致性, 易理解性, 易浏览性

文档一般可分为

  • 开发文件
    (例如可行性研究报告, 软件需求说明书, 数据要求说明书, 概要设计说明书, 详细设计说明书, 数据库设计说明书, 模块开发卷宗)
  • 用户文件(例如用户手册, 操作手册)
  • 用户文档的作用
    (改善易安装性, 改善软件的易学性与易用性, 改善软件可靠性, 降低技术支持成本)
  • 管理文件
    (例如项目开发计划, 测试计划, 测试分析报告, 开发进度月报, 项目开发总结报告)

文档测试的关注点

(1)

文档的术语

(2)

文档的正确性

(3)

文档的完整性

(4)

文档的一致性

(5)

文档的易用性

兼容性测试

兼容性测试
指明确要测试的兼容环境, 考虑软, 硬件的兼容

对于软件的兼容性, 一般要考虑

  • 系统自身的兼容版本, 用户已有数据的兼容
    (数据兼容是重中之重. 对于用户来说, 数据是最有价值的)
  • 测试与应用环境的兼容
    (与操作系统, 应用平台, 浏览器的兼容…)
  • 测试与第三方系统以及第三方数据的兼容性

对于环境(操作系统, 应用平台)兼容性的测试不仅仅局限在操作系统, 浏览器这两个因素

还包括

(1)

32位, 64位的CPU

(2)

支持不同的Internet连接速度

对于IOS 和 Android这两个平台, 还要区分手机和平板, 考虑不同的型号(屏幕尺寸, 分辨率…)

易用性测试

易用性
指容易发现, 容易学习和容易使用

易用性包含七个要素

  • 符合标准和规范
  • 直观性
  • 一致性
  • 灵活性
  • 舒适性
  • 正确性
  • 实用性

符合标准和规范

对于现有的软件运行平台, 通常其UI 标准已经不知不觉地被确立了, 成为大家的共识

多数用户已经习惯并且接受了这些标准和规范, 或者说已经认同了这些信息所代表的含义

(例如安装软件的界面外观, 在什么场合使用恰当的对话框…)

直观性

要求软件功能特性清晰, 易懂. 用户界面布局合理, 对操作的响应在用户的预期之中, 对操作的响应在用户的预期之中

(例如数据统计结果用报表的形式(条形图, 扇形图…)展示清晰直观)

灵活性

软件可以有不同的选项以满足不同使用习惯的用户来完成相同的功能

但是灵活性的设计要把握好度, 不然可能由于太多的用户状态和方式的选择, 增加了软件设计的复杂性和程序实现的难度

(例如手机键盘有九宫格和全键盘, 还支持手写, 满足了不同用户的需求)

舒适性

主要强调界面友好, 美观, 操作过程顺畅, 色彩运用恰当, 按钮的立体感…

(例如左手鼠标的设置给习惯用左手的人带来了便利, 也为右手十分劳累时提供了另一种途径)

安装卸载测试

安装卸载测试主要考虑

  • 软件不同的安装和卸载方式
  • 应用是否可以在不同系统, 版本下安装(安装兼容性)
  • 安装或卸载过程种是否可以手动暂停, 或者取消
  • 安装空间不足时否系统是否会提示
  • 是否可以正常的卸载, 以及应用软件的各种卸载方式
  • 卸载和安装过程中出现环境问题, 软件是否可以正常并且合理的应对
    (例如死机, 断电, 断网…)

安全性测试

安全性
指信息安全, 即计算机系统或网络保护用户数据隐私, 完整, 保护数据正常传输和抵御黑客, 病毒攻击的能力

系统常见的安全漏洞和威胁包括

  • 输入域
    (例如输入恶性或者带有病毒的脚本或长字符串)
  • 代码中的安全问题
    (例如SQL注入, XML注入…)
  • 不安全的数据存储或者传递
  • 数据文件, 邮件文件, 系统配置文件等里面有危害系统的信息或数据
  • 有问题的访问控制, 权限分配等
  • 假冒ID
    (例如身份欺骗)
  • 篡改, 对数据的恶意修改, 破坏数据的完整性

安全性测试的方法有代码评审, 渗透测试, 安全运维等

常用的静态安全测试工具有

(1)Coverity (2)IBM Appscan Source (3)HPFortify…

常用的动态安全测试工具有

(1)OWASP 的ZAP (2)HP WebInspect

其中静态安全测试是常用的安全性测试的方法

相关文章
|
7月前
|
jenkins 测试技术 持续交付
软件测试:基础概念
软件测试:基础概念
129 0
|
7月前
|
测试技术 UED
软件测试/测试开发|软件测试基础概念
软件测试/测试开发|软件测试基础概念
|
1月前
|
监控 安全 jenkins
探索软件测试的奥秘:自动化测试框架的搭建与实践
【10月更文挑战第24天】在软件开发的海洋里,测试是确保航行安全的灯塔。本文将带领读者揭开软件测试的神秘面纱,深入探讨如何从零开始搭建一个自动化测试框架,并配以代码示例。我们将一起航行在自动化测试的浪潮之上,体验从理论到实践的转变,最终达到提高测试效率和质量的彼岸。
|
3月前
|
监控 安全 测试技术
『软件测试1』你需要了解的软件测试基础知识
该文章介绍了软件测试的基础知识,涵盖了软件缺陷的定义、类型、处理流程以及软件测试的目标和重要性等内容。
|
4月前
|
测试技术
探索软件测试的奥秘:如何构建有效的测试策略
在软件开发的海洋中,测试是确保航船不沉没的灯塔。本文将带你领略测试的魅力,从基础概念到高级策略,我们将一起航行在软件测试的广阔海域,探寻那些隐藏在代码深处的秘密。准备好了吗?让我们启航吧!
56 1
|
7月前
|
编解码 安全 Java
【软件测试】进阶篇 -- 详解
【软件测试】进阶篇 -- 详解
|
测试技术
软件测试开发的基本概念
软件测试开发的基本概念
|
7月前
|
算法 测试技术
【软件测试学习】—软件测试知识点总结(二)
【软件测试学习】—软件测试知识点总结(二)
【软件测试学习】—软件测试知识点总结(二)
|
编解码 测试技术 程序员
软件测试—进阶篇(下)
软件测试—进阶篇(下)
|
编解码 测试技术 数据库连接
下一篇
DataWorks