软件测试理论框架与发展:分类、原则与质量保障策略

第一章

一、计算机软件的发展分类

早期软件开发的特点:

        软件规模小、复杂程度低、开发过程不规范

测试的情况:

        测试等同于调试

        目的纠正软件的已经知道的故障

        投入少,介入晚

        成为一种发现软件的活动(1957)

测试不等于调试

调试:在已知条件下,对软件程序代码做检查

测试:在未知错误的情况下,检查程序代码是否有误

软件测试从软件质量保证的角度检查代码是否有问题,调试是为了解决当前错误,调试无法代替测试

正向思维针对软件功能特点,逐个验证正确性,被称为第一类方法

认为软件有问题,使用逆向思维去发现问题

对软件测试的定义

测试是为了发现错误而执行的一个程序或者系统的过程

1980年质量的概念融入软件测试

测试是为了度量和提高被测试软件的质量。

软件测试的概念

软件测试是对软件形成过程的文档,数据以及程序进行测试,而不仅仅是对程序进行的测试

软件测试的目的

对开发:软件测试通过找到问题缺陷帮助开发人员找到开发过程中存在的问题,包括软件开对测试:发模式,工具,技术等方面存在的问题与不足,预防下次缺陷的产生

使用最少的人力物力时间找到软件的隐藏缺陷,保证软件质量1,为后面测试积累经验

对用户:软件测试能够检验软件是否符合客户需求,对软件进行质量评估

软件测试的分类

单元测试

又称模块测试,针对软件设计的最小单位——程序模块 进行准确性检验的测试工作

目的在于检查每一个程序单元能否满足详细设计说明中的模块,性能,接口和设计约束等要求,发现模块内部中可能存在的错误。单元测试需要从内部结构出发设计测试用例,多个模块可以平行的独立进行单元测试

集成测试

也叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的,递增的测试。集成测试检验程序单元或部件接口的关系,使他们逐步符合概念设计要求的程序部件或整个系统。

系统测试

将测试软件在实际环境中运行,与其他的系统成分(数据库,硬件和操作人员)组合在一起进行测试,用于评估整个系统的行为并确保系统符合用户需求。

验收测试

主要对软件产品进行验证,逐行逐字的按照说明书的描述对软件产品说明进行测试,确保客户的各项需求。

按照测试环境

α测试:

是一个用户在开发环境下进行的测试,也可以是开发机构用户在模拟实际操作下进行的测试。

β测试:

是在软件的一个或多个用户的实际使用环境下进行的测试。

白盒测试

通过对程序内部结构分析、检测来寻找问题。它将测试对象看成一个透明的盒子,即清楚了解内部结构和处理过程,以此检查软件内部动作是否按照设计说明的规定正常进行。

黑盒测试

通过软件外部表现来发现其缺陷和错误。它把测试对象看成一个黑盒子,不考虑内部结构和处理过程。在程序界面处进行测试,它只是检查程序是否按照规定的说明书正常运行。

灰盒测试

介于黑白之间。灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种内部关注不像白盒那么完整,通过表象性的现象,事件,标志来测试。

功能测试

逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试。

性能测试 --时间&空间

一般性能测试

稳妥性能测试

负载测试:通过测试系统资源超负荷情况下的表现,来验证一步一步加

压力测试:直接超负载

了解:

回归测试

对修改后的重新测试

冒烟测试

先验证是否具有可测性

随机测试

基于经验和直觉测试,模拟用户真实操作,并发现边缘性错误

测试项目:

需求测试、界面测试、功能性、安全性、可靠性、可维护性、兼容性、压力测试、疲劳测试

软件测试的原则

  1. 所有测试的标准都建立在用户需求上
  2. 基于“质量第一”的思想去开展工作,时间要服从质量
  3. 事先定义质量标准,对产品质量进行分析评估
  4. 软件项目启动,测试就开始
  5. 穷举测试不可能,不可能运行路径的每一个组合
  6. 第三方测试更有效
  7. 软件测试计划是做好软件测试工作的前提
  8. 测试用列是设计出来的,不是写出来的,需要根据测试目的,采用相应的方法去设计,提高测试效率,更多的发现错误,提高可靠性
  9. 对发现错误多的程序段,应该更深入测试,一般来说,一段程序中错误数越多,软件错误概率越大
  10. 重视文档,妥善保存一些测试过程文档(测试设计,测试用例,测试报告)
  11. 回归测试的关联性要注意,修改一个错误可能会引起过多错误
  12. 小规模->大规模
  13. 不能将测试用例置之度外,排除随意性
  14. 必须彻底检查每个测试结果
  15. 注意测试错误集中发生的现象
  16. 对测试结果要有一个确认的过程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87122.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

未知威胁攻击原理和架构

大家读完觉得有帮助记得关注和点赞!!! 未知威胁(Unknown Threats)指利用零日漏洞、合法工具滥用、高级逃逸技术等**绕过传统特征检测**的攻击,其核心在于**动态对抗防御体系的认知盲区**。以下从攻击原理、…

基于Netty-WebSocket构建高性能实时通信服务

引言:WebSocket在现代应用中的重要性 在当今实时交互应用盛行的时代,WebSocket协议已成为实现双向通信的核心技术。相比传统的HTTP轮询,WebSocket提供了: 真正的全双工通信极低的延迟(毫秒级)高效的连接管…

咸虾米项目总结1--const用法

在 UniApp(或 Vue 3)中,声明一个空对象可使用下面这2种写法: // 写法1 const a ref(null);// 写法2 const a ref({}); 在UniApp中,const a ref()用法概述: 用途: 创建一个响应式引用&#x…

在mac下手动编译迁移的android版webrtc组件

我原先使用的android版webrtc是在linux下编译的,现在因为某些原因需要把整个库迁移到mac下编译。 把代码迁移完后,正常是需要通过gclient sync 重新构建编译环境,但是由于网络限制等方面原因,会导致完成的比较慢。 在摸索一阵后…

Linux 命令:mkdir

Linux mkdir 命令详细教程 一、mkdir 命令的基本功能 mkdir(Make Directory)是 Linux 系统中用于创建新目录(文件夹)的基础命令。它支持一次性创建单个或多个目录,以及递归创建多层目录结构,是文件系统操…

Django 数据迁移全解析:makemigrations migrate 常见错误与解决方案

1. 迁移机制与底层原理 在 Django 中,ORM(Object-Relational Mapping)是连接模型(Model)和数据库结构的桥梁。Django 鼓励开发者通过编写 Python 类(模型)来定义业务数据结构,而不是…

SuperGlue:使用图神经网络学习特征匹配

摘要 本文提出了 SuperGlue,一种神经网络,用于通过联合寻找对应关系并排除不可匹配点来匹配两组局部特征。匹配结果通过求解一个可微的最优传输问题来估计,该问题的代价由一个图神经网络预测。我们引入了一种基于注意力的灵活上下文聚合机制…

ssh -T git@github.com失败后解决方案

这个错误表示你的 SSH 连接无法到达 GitHub 服务器。以下是详细解决方案,按照优先级排序: 首选解决方案:使用 SSH over HTTPS(端口 443) 这是最有效的解决方案,因为许多网络会阻止 22 端口: …

从苹果事件看 ARM PC市场的未来走向

最近,苹果宣布部分搭载 Intel 处理器的 Mac 不再支持最新的 macOS 系统更新,这一消息犹如一颗石子投入平静湖面,激起层层涟漪。它不仅让 Intel 芯片在 Mac 产品线上彻底成为历史,也促使我们重新审视 PC 行业的发展脉络&#xff0c…

vue + element ui 实现超出宽度展示..,鼠标移入显示完整内容

vue element ui 实现超出宽度展示…&#xff0c;鼠标移入显示完整内容 代码理念&#xff1a; 当高度大于对应行数的高度 则说明需要展示"…" 子组件 <template><div class"tooltip"><div ref"tooltipRef" :class"[tooltip…

HarmonyOSNext应用无响应全解析:从机制到实战的卡死问题排查

HarmonyOSNext应用无响应全解析&#xff1a;从机制到实战的卡死问题排查 ##Harmony OS Next ##Ark Ts ##教育 本文适用于教育科普行业进行学习&#xff0c;有错误之处请指出我会修改。 喂喂喂&#xff01;应用卡成PPT了&#xff1f;点啥都没反应&#xff1f;别慌&#xff01…

git 迁移之获取原库所有分支

以下是一个安全的 Bash 脚本&#xff0c;用于将远程 Git 仓库的所有分支检出到本地&#xff08;自动跳过已存在的分支&#xff09;&#xff1a; #!/bin/bash# 获取所有远程分支&#xff08;排除 HEAD&#xff09; remote_branches$(git branch -r | grep -v HEAD\|->)# 循环…

设计模式 | 适配器模式

适配器模式&#xff08;Adapter Pattern&#xff09; 是结构型设计模式中的连接器大师&#xff0c;它允许不兼容接口的类能够协同工作。本文将深入探索适配器模式的核心思想、实现技巧以及在C中的高效实践&#xff0c;解决现实开发中的接口兼容性问题。 为什么需要适配器模式 …

RTL 级机器人电机控制器的 FPGA 设计

借助Verilog&#xff0c;在FPGA中实现了带编码器的两台电机的电机控制系统的RTL级设计。 介绍 借助硬件描述语言 (HDL) Verilog 和 AMD Vivado 设计套件&#xff0c;在 AMD Spartan-7 FPGA 中实现带编码器的两个电机的控制器系统的 RTL 设计。 在这个项目中&#xff0c;使用了搭…

4_Flink CEP

Flink CEP 1、何为CEP&#xff1f; CEP&#xff0c;全称为复杂事件处理&#xff08;Complex Event Processing&#xff09;&#xff0c;是一种用于实时监测和分析数据流的技术。 CEP详细讲解&#xff1a; CEP是基于动态环境的事件流的分析技术&#xff0c;事件是状态变化&am…

容器基础知识2-K8s 和 Docker 的关系与管理逻辑详解

K8s 和 Docker 的关系与管理逻辑详解 一、先搞懂&#xff1a;Docker 和 K8s 分别是做什么的&#xff1f; Docker&#xff08;容器工具&#xff09;&#xff1a;好比「集装箱工厂」&#xff0c;负责把应用和依赖打包成标准化容器&#xff08;类似集装箱&#xff09;&#xff0…

QT MaintenanceTool 登录无法找到 QtAccount 凭据

亲测有效&#xff1a;QT6 Maintenance Tool 登录问题_qt6 maintenancetool-CSDN博客 将ini这个配置文件移出文件夹后&#xff0c;在切换自己账户登录即可

华为云Flexus+DeepSeek征文|利用华为云一键部署 Dify 平台并接入 DeepSeek 大模型,构建长篇文章生成助手

目录 前言 1 华为云一键部署 Dify 平台 1.1 华为云 Dify 平台介绍 1.2 部署过程介绍 1.3 登录 Dify 平台 2 接入华为云 ModelArts Studio 中的 DeepSeek 大模型 3 构建长篇文章生成助手 3.1 简要介绍长篇文章生成助手 3.2 开始节点 3.3 生成标题和大纲&#xff08;LL…

js的一些基础概念总结

1.变量声明 首先js变量声明有三种&#xff0c;var&#xff0c;const&#xff0c;let&#xff0c;这三种变量声明中我们第一优先使用const&#xff0c;需要改变这个值的时候我们用ley&#xff0c;var是尽量不去使用。 那么我们现在来总结一下三种声明变量的区别。首先是var let …

防 XSS和CSRF 过滤器(Filter)

会话管理存在问题&#xff1a; 1.服务集群部署或者是分布式服务如何实现会话共享 2.会话的不同存储地方的安全性问题 答&#xff1a; 会话共享 可以使用后端集中管理(redis)或者客户端管理 &#xff08;jwt&#xff09;&#xff1b; 存储安全性 这个还真的没有太好的方式&…