软件测试—进阶篇(上)

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


🔎根据测试对象划分

界面测试

界面测试(简称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

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

相关文章
|
SQL 监控 网络协议
线上故障如何快速排查?来看这套技巧大全
有哪些常见的线上故障?如何快速定位问题?本文详细总结工作中的经验,从服务器、Java应用、数据库、Redis、网络和业务六个层面分享线上故障排查的思路和技巧。较长,同学们可收藏后再看。
线上故障如何快速排查?来看这套技巧大全
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
286 0
|
虚拟化
VMware虚拟机和主机互相ping不通排查以及解决
VMware虚拟机和主机互相ping不通排查以及解决
VMware虚拟机和主机互相ping不通排查以及解决
|
1月前
|
前端开发 Java API
利用 Spring WebFlux 技术打造高效非阻塞 API 的完整开发方案与实践技巧
本文介绍了如何使用Spring WebFlux构建高效、可扩展的非阻塞API,涵盖响应式编程核心概念、技术方案设计及具体实现示例,适用于高并发场景下的API开发。
170 0
|
23天前
|
人工智能 API 语音技术
免费版的配音软件,支持童声男声女声不同声音选项,语音转文字软件推荐支持多种声音
免费版的配音软件,支持童声男声女声不同声音选项,语音转文字软件推荐支持多种声音
242 2
|
jenkins Java Shell
使用 Docker 安装 Jenkins 并实现项目自动化部署
Jenkins 是一款开源的持续集成(DI)工具,广泛用于项目开发,能提供自动构建,测试,部署等功能。作为领先的开源自动化服务器,Jenkins 提供了数百个插件来支持构建、部署和自动化任何项目。
34944 3
使用 Docker 安装 Jenkins 并实现项目自动化部署
|
6月前
|
存储 缓存 Java
极速启动,SAE 弹性加速全面解读
本文将深入探讨 SAE 如何通过镜像加速、应用启动加速、CPU Burst 等核心技术手段,实现极速启动与高效运行,帮助用户构建更加稳定、高效的云端应用。
334 107
|
11月前
|
数据建模 网络安全
阿里云申请SSL证书价格多少钱一年?免费版和付费版价格手动整理
阿里云SSL证书提供多种类型和品牌的证书选择,包括免费和付费选项。付费证书如WoSign单域名SSL证书238元/年,DigiCert通配符DV证书1500元/年,GlobalSign企业型1864元/年。免费证书由Digicert提供,有效期3个月,适用于单域名。更多详情见阿里云官网。
2543 1
|
10月前
|
机器学习/深度学习 数据采集 人工智能
从零构建:深度学习模型的新手指南###
【10月更文挑战第21天】 本文将深入浅出地解析深度学习的核心概念,为初学者提供一条清晰的学习路径,涵盖从理论基础到实践应用的全过程。通过比喻和实例,让复杂概念变得易于理解,旨在帮助读者搭建起深度学习的知识框架,为进一步探索人工智能领域奠定坚实基础。 ###
252 3
|
敏捷开发 Devops 测试技术
深入探索软件测试:保障质量的终极策略
【4月更文挑战第18天】在软件开发生命周期中,确保最终产品的质量至关重要,而软件测试则是达成这一目标的关键步骤。本文将探讨软件测试的多维度作用,包括其在不同开发阶段的应用、面临的挑战以及未来趋势。通过分析自动化测试工具的选择、测试用例设计的最佳实践和持续集成的重要性,文章为读者提供了一套全面的质量保证策略,旨在帮助团队提升测试效率并优化产品质量。