【软件测试学习】—软件质量需求(四)

简介: 【软件测试学习】—软件质量需求(四)

1 软件质量需求的分类

  • 软件质量需求用于确定测试目标。
  • 测试目标包括:功能、性能、界面、易用性、兼容性、安全性、可用性/可靠性、可维 护性、可扩展性等。
  • 功能以外统称非功能

2 功能

 软件能做什么?

 需要做什么?

 怎么做是正确的?

 哪些功能要测试、哪些功能不需要测试?

 哪些功能重要,哪些不重要?

 哪些功能先实现或先测试?

3 性能

 反映软件运行时的效率和占用资源情况的能力。

 时间特性:时间短、速度快、效率高。

 资源特性:占用资源(CPU、内存、硬盘、网络)少。

4 界面(UI)

布局合理;

控件位置恰当;

文字没有乱码、字体大小合适;

颜色使用恰当;

5 易用性

在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。

6 兼容性/可移植性

  • 指软件产品从一种环境迁移到另一个环境的能力,反映一个软件与不同的硬件环境、操作平台、其他软件的共同使用的能力。
  • 包括与不同硬件、平台、软件自身不同版本、其他软件、数据的兼容

7 安全性

 指软件产品保护信息和数据的能力

8 可用性/可靠性

 指系统正常运行的能力或程度,可用性=正常运行时间/(正常运行时间+非正常运行时间)×100%。

 可用性指标一般要求达到 4 个 9 即 99.99%(全年 52 分钟不正常工作)或 5 个 9 即99.999%(全年 5 分钟),对一些军事系统,可用性高达 7 个 9(99.99999%(全年失效时间不超过两秒)。

 一般测试时间不足,可以采用空间换时间的办法,如在高负载情况下进行为期一周或一个月的测试,以判断其可靠性。

 关注 MTTF(平均无故障时间)、MTTR(平均恢复时间)、MTBF(平均失效间隔时间)

9 可维护性

 指软件产品可被修改的能力。

 修改可能包括修正、改进或软件对环境需求和功能规格说明变化的适应。

 可维护性的软件应该是易改变的、稳定的、易测试的。

10 可扩展性/可伸缩性测试

 通过很少的改动就能实现整个系统处理能力的增长。

 如在部署两台服务器时测试系统性能(容量,即最大负载),再部署四台、八台服务器时分别进行系统容量的测试,看其容量是否为上次(两台、四台)实验值的两倍或接近两倍。如果是,系统就具有良好的可伸缩性。

三、 研读需求文档

1 测试需求分析的过程

 收集与研读文档,提出并解决问题,整理需求信息

 功能拆分、功能描述/需求整理

 编写测试点

 需求评审

2 研读需求文档

2.1 研读文档主要任务

 提取有用的需求信

提出需求中不清晰、不理解、不明白的问题

 和用户、业务人员、产品经理或产品设计人员、开发人员等沟通

2.2 怎么研读文档

分析思路

 分析软件的用户群,分析用户的实际需要;

 分析软件的开发环境、开发语言、数据类型;

 分析软件架构、软件的运行环境和平台、数据库类型;

 分析软件要实现哪些目标(功能、性能、界面、易用性、兼容性、安全性)以及具体的要求是什么;

 分析软件有哪些功能,每种功能要完成什么业务,这些业务应该怎么实现,业务逻辑是什么,业务流程是怎样的,业务规则有何要求;

 分析功能或业务间的联系,哪些业务更关键或重要;

 明确测试周期,测试目标,测试范围。

 实施

 以情景再现的形式写出需求信息。

2.3 研读需求文档案例

 拿到一个项目,怎么入手?

 即时贴程序部分需求说明

 便签的数量最多为 50 个

 便签标题字数最多为 40 个字节

 便签的正文文字数量最多为 200 个

 年份只能设置在 1900-2100 之


相关文章
|
28天前
|
测试技术 持续交付 UED
软件测试的艺术:确保质量的实战策略
在软件开发的舞台上,测试是那把确保每个功能如交响乐般和谐奏响的指挥棒。本文将深入探讨软件测试的重要性、基本类型以及如何设计高效的测试策略。我们将通过一个实际的代码示例,展示如何运用这些策略来提升软件质量和用户体验。
|
28天前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
33 4
|
1月前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
1月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
22天前
|
测试技术 持续交付
探索自动化测试在软件质量保证中的关键作用
本文深入探讨了自动化测试在现代软件开发生命周期中的重要性,以及它是如何成为确保软件产品质量的不可或缺的一环。通过分析自动化测试的优势、挑战和最佳实践,本文旨在为读者提供对自动化测试全面而深刻的理解,从而帮助他们在实际工作中更有效地应用自动化测试策略。
30 2
|
25天前
|
敏捷开发 监控 测试技术
软件测试中的自动化策略:提升效率与质量
在软件开发过程中,测试是确保产品质量的关键环节。随着敏捷开发模式的普及,自动化测试成为提升测试效率和质量的重要手段。本文将介绍自动化测试的基本概念、实施步骤以及如何通过自动化测试提高软件测试的效率和质量,同时分享一些实用的自动化测试工具和技巧。
56 3
|
28天前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
58 3
|
1月前
|
前端开发 JavaScript 安全
学习如何为 React 组件编写测试:
学习如何为 React 组件编写测试:
40 2
|
1月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现