如何去开展软件测试工作

1. 软件测试

在一般的项目中,一开始均为手动测试,由于自动化测试前期投入较大,一般要软件项目达到一定的规模,更新频次和质量均有一定要求时才会上自动化测试或软件测试。

1.1. 项目中每个成员的测试职责

软件测试从来不是某一个职业,某一个环节,某一个人应该做的,应该是整个项目团队都要参与的,只是每个人承担的责任付出的时间精力的多少决定的。一个项目中的每个岗位,每个成员都应该有自己的需要测试的内容,重点和方向。

那么也就包括,项目经理、需求人员、设计人员、软件架构师、开发人员(分为各个层面和方向的开发人员)、数据人员、测试人员以及运维人员,在整个项目中每个岗位职责的不同,就要将其工作一定程度的体现在软件上,通过各个人员不同角度的测试实现对软件全方面,尽可能多的测试,不应该是寄希望于某一个人或某一个环节上。因为如果寄希望于一个人则会导致:

  • 整个项目的所有内容,测试环节的负责人均要知悉,这种可能只能是专业团队下的理想情况,但是随着软件开发模型的不同,这种理想情况的可能性是非常小的
    • 软件因为一些主观、客观的因素总会发生修改,而这些修改在软件过程中很难详细的记录下来
    • 整个软件项目的背景、技术瓶颈、设计或架构人员的设计习惯、实现方法等均有一定程度的差异,在项目的开发完成过程中发生了一定程度的化学反应。寄希望于一个人完全的了解是不太可能的
  • 在前一条的基础上,则不可避免的导致测试覆盖面小,不完善,甚至理解错误,得出错误的结论。
  • 如果要解决前一条,则避不可免的需要询问相关的人员,则会产生不可见的隐形开销
  • 工作量剧增,在规定的工作时间内全面的``保质保量的完成,在用人成本和人员素质上是不切实际的。

所以需要在项目中的每个岗位基于自己所处项目的职责,去关注每个角度所体现在软件上的模块和功能,需要根据岗位去决定测试覆盖的广度和深度。

序号责任岗位深度和广度测试任务描述
1项目经理注重广度可以适当忽略深度确认软件的项目边界内容是否实现、基于项目经理的角度分析软件的弹性是否能够支撑后续各类变化,如:数据的变化(包括频次、数据格式等等)、业务的变化、与其他项目的关联方式
2需求设计人员注重广度,一定程度需要关注深度确认软件的实现是否实现了需求设计、需要从整体的角度去关注业务在系统的体现是否是一个相较完整的闭环
3软件架构师关注广度也需要关注深度1. 协助测试人员设计测试友好的测试框架 2. 从安全性、可用性和可伸缩性的方向制作测试用例 3. 确认每类数据流转在架构中是否存在问题,包括并发并行等情况、适当考虑软件运行效率
4开发人员关注深度也需要关注广度1. 完成自我的功能后是否编写一定的测试代码进行了测试 2. 对自己实现的代码成果一方面需要完成设计的内容,另一方面要考虑和测试软件在实际运行中的可能,在不同的输入中,最终是否都能够得到正确的结果 3. 需要对功能完成所选择的实现方式对不同数据量数据内容进行考虑甚至是测试 4. 需要考虑和其他模块之间的关系,是否只是单纯的完成而没有交互
5测试人员关注广度基于上述各类人员在项目中的完成和成果,制作不同的数据、不同的测试样例对软件进行系统化的整体测试

1.1.1 举例说明

  1. 开发人员需要使用不同数据进行测试?

数据是软件的生命,不同的数据由于算法的实现可能得出的结果可能不是完全正确的,如下案例:

  • 地理信息中矢量图形的表达有点、多点、线、多线、面、多面。其在OGC标准WKT或GeoJson的表达上均有一定的表达,算法实现中(比如读取显示)是否兼顾了各类数据格式;面状数据存在天井图斑(内外环)的图斑,是否存在问题
  • 在数据为王的软件中,比如采集软件、数据质检软件、数据库管理软件中需要对不同的数据依据数据特性进行测试(当然也要结合实际情况进行测试,比如软件面向的是全国则需要测试全国的情况,如果软件面对的这个地方没有则可以适当的测试延后甚至可以考虑不做测试),比如:
    • 三调质检软件中存在一个规则,相邻图斑属性不相同(此用例结合下一个举例再次说明),软件算法是否考虑节点图斑、天井图斑等等数据的不同得到结果不一样。
    • 全国不同的坡度数据采集方式不一样,有的是小图斑、有的是等级图斑(全区域只有10条)则会导致一个图斑的内存大小非常的大,是否会出现内存溢出的情况。
    • 数据读取时不同的数据存放是否标准,如在房屋安全数据中,默认约定是数据全量提供,但是由于一些情况,可能只提供警告数据的,在算法实现中,是否能够兼容不同的数据体量得到一直的结果。
  1. 开发人员需要对不同体量的数据进行考虑甚至是测试?
  • 结合相邻图斑属性不相同的案例,数据的节点个数大小不同,在算法中是否会出现内存放大的问题,相邻图斑的层数量多,算法实现方式结合时间复杂度和空间复杂度是否会出现时间长度内无法得到结果
  • 数据入库的方式,是否存在数据条数较多时会出现效率慢的情况(会导致在项目在比较紧张的情况下应对效果较差)
  1. 开发人员和需求人员的系统化和结构化思维

软件要想一步就位是可遇不可求的理想状态,基本上是不可能的,总会有需求变更和产品迭代,每次变更都要考虑变更对整体的系统性的影响

1.2. 如何开始一个软件的测试

开始进行软件测试是一个重要的步骤,它有助于确保您的软件在交付给用户之前具备良好的质量和稳定性。以下是一些步骤,可以帮助您开始一个软件项目的测试过程:

  1. 理解项目需求

    • 首先,深入理解软件项目的需求,包括功能需求、性能需求、安全性需求等。这将有助于确定需要测试哪些方面。
  2. 制定测试计划

    • 制定详细的测试计划,包括测试范围、测试目标、测试策略、测试资源、时间表和风险评估。测试计划是测试活动的路线图,有助于确保测试进程有条不紊。
  3. 确定测试环境

    • 确定测试所需的硬件、软件和网络环境。测试环境应该与生产环境相似,以确保测试结果的准确性。
  4. 选择测试方法和技术

    • 根据项目需求和测试目标,选择适当的测试方法和技术。常见的测试方法包括功能测试、性能测试、安全测试等。
  5. 创建测试用例

    • 基于需求和设计文档,编写详细的测试用例,包括输入数据、预期结果和执行步骤。测试用例是用于执行测试的指南。
  6. 设置测试环境

    • 配置测试环境,包括安装和设置必要的测试工具和测试数据。确保测试环境准备就绪。
  7. 执行测试

    • 根据测试计划和测试用例,执行测试。记录测试结果、问题和缺陷,并跟踪测试进度。
  8. 自动化测试(如果适用):

    • 对于重复性高的测试用例,考虑自动化测试。编写自动化测试脚本并集成到测试流程中,以提高效率。
  9. 问题管理

    • 使用问题跟踪工具(如JIRA、Bugzilla等)来记录和管理测试中发现的问题和缺陷。确保问题被及时修复和验证。
  10. 性能测试和安全测试(如果适用):

    • 如果项目需要,执行性能测试和安全性测试,以确保软件在负载和安全方面表现良好。
  11. 测试报告

    • 生成详细的测试报告,包括测试结果、问题汇报、测试覆盖率等信息。测试报告应该清晰、易于理解,以便团队做出决策。

1.2.1. 测试用例

  1. 公用测试用例
    在这里插入图片描述

  2. 软件性能测试用例

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

每天学习3个小时能不能考上浙大MBA项目?

不少考生经常会问到上岸浙大MBA项目想要复习多长时间,这个问题其实没有固定答案。在行业十余年的经验总结来看,杭州达立易考教育认为基于每一位考生的个人复习时间、个人学习能力以及原有基础情况等不同,复习上岸的预期分数目标也会有差异&am…

112. 路径总和

力扣题目链接(opens new window) 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum 22&#xf…

Unity中Shader用到的向量的乘积

文章目录 前言一、向量的乘法1、点积2、差积 二、点积(结果是一个标量)1、数学表示法2、几何表示法 三、叉积1、向量叉积的结果 与 两个相乘的向量互相垂直2、判断结果正负方向的方法:右手法则 前言 Unity中Shader用到的向量的点积 一、向量…

手机能搜到某个wifi,电脑搜不到解决方法(也许有用)

方法一:更新驱动 下载驱动大师、驱动精灵等等驱动软件,更新网卡驱动 方法二 按 win 键,打开菜单 搜索 查看网络连接(win11版本是搜这个名字) 点击打开是这样式的 然后对 WLAN右击->属性->配置->高级 这…

unittest单元测试框架使用

什么是unittest 这里我们将要用的unittest是python的单元测试框架,它的官网是 25.3. unittest — Unit testing framework — Python 2.7.18 documentation,在这里我们可以得到全面的信息。 当我们写的用例越来越多时,我们就需要考虑用例编写…

如何使用 API 接口获取商品数据,从申请 API 接口、使用 API 接口到实际应用,一一讲解

在当今的数字化时代,应用程序接口(API)已经成为数据获取的重要通道。API 接口使得不同的应用程序能够方便地进行数据交换,从而促进了信息的广泛传播和利用。在众多的数据源中,商品数据是一个非常重要的领域&#xff0c…

Win/Mac版Scitools Understand教育版申请

这里写目录标题 前言教育版申请流程教育账号申请 前言 上篇文章为大家介绍了Scitools Understand软件,通过领取的反馈来看有很多朋友都想用这个软件,但是我的网盘里只存了windows的pojie版,没有mac版的,我没有去网上找相关的资源…

【Java 进阶篇】数据定义语言(DDL)详解

数据定义语言(DDL)是SQL(结构化查询语言)的一部分,它用于定义、管理和控制数据库的结构和元素。DDL允许数据库管理员、开发人员和其他用户创建、修改和删除数据库对象,如表、索引、视图等。在本文中&#x…

tcp/ip协议2实现的插图,数据结构

(1)以上是插图第2章和3章 的 mbuf 与 ifnet 与 ifaddr 与 le_softc 与 sockaddr_dl结构体 (2) 以下是 二章mbuf的宏和函数和三章函数下 (3) 以下是 三章接口层的宏和函数上 (4)4 四章1:以太网接…

Blender 之创建一个简单的笔筒

文章目录 成品图实现步骤 你是不是想创建一个笔筒捏? follow me! 成品图 实现步骤 先添加一个柱体 选中柱体,然后按tab 进入编辑模式 切换到面模式 (可以按主键盘的 3 键) 分别选中上下面,鼠标右键,选…

【Linux】【网络】传输层协议:UDP

文章目录 UDP 协议1. 面向数据报2. UDP 协议端格式3. UDP 的封装和解包4. UDP 的缓冲区 UDP 协议 UDP传输的过程类似于寄信。 无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接。不可靠:没有确认机制,没有重传机制&am…

接口测试总结

一、了解一下HTTP与RPC 1. HTTP(HyperText Transfer Protocol) 说明:超文本传输协议,是互联网上应用最为广泛的一种网络协议。 优点:就是简单、直接、开发方便,利用现成的http协议进行传输。 流程图: 2. R…

第二证券:栽了!这几人操纵市场吃罚单

证监会日前发布一则“罚单”,再次剑指操作商场。 证监会对时任国银新投实践控制人苏剑锋,时任国银新投投研部总监曾帅,时任道尔智控董事长、实践控制人王志刚操作“道尔智控”的行为进行了立案查询、审理,发现上述当事人一同操作…

聚势共赢!爱创科技喜获“腾讯健康年度优秀合作伙伴”!

2023年9月7日—8日,2023腾讯全球数字生态大会在深圳国际会展中心成功举办。来自行业的重磅院士学者、企业代表、生态伙伴等共赴大会,围绕“智变加速,产业焕新”这一活动主题进行了深层次、全方位的交流和探讨,共话大模型时代下数智…

如何制作gif动图gif (多图合成gif、GIF录制软件、视频制作成GIF动图)

文章目录 1 在线制作多图合成gif动画2 GIF录制软件3 将现有的视频 制作成GIF动图 1 在线制作多图合成gif动画 在线制作gif动画链接:https://www.matools.com/gif ①选择需要制作gif动画的图片将其添加 ②调整时间间隔,图片宽高等设置 ③一键生成gif ④下载到本…

阿里云服务器新手教程_省钱购买_配置_搭建网站全教程

阿里云服务器使用教程包括云服务器购买、云服务器配置选择、云服务器开通端口号、搭建网站所需Web环境、安装网站程序、域名解析到云服务器公网IP地址,最后网站上线全流程,阿里云百科分享阿里云服务器详细使用教程: 目录 阿里云服务器使用教…

为什么 0.1 + 0.1 !== 0.2

总结了几个很有意思的基础题目,分享一下。 为什么 0.1 0.1 ! 0.2 看到这个问题,不得不想到计算机中的数据类型,其中浮点数表示有限的精度。那么它就无法精确的表示所有的十进制小数,所以在在某些情况下,浮点数的运算…

基座向量施密特正交化

最近再次细细的阅读了向量施密特正交化,重新系统梳理一下 一、正交基地与向量的正交分解 二、基化成标准正交基,是什么意思 将一个向量空间中的基向量通过某种方式转化为一组标准正交基,是指将原有的基向量进行调整,使得它们满足…

安卓:解决AndroidStudio导出Unity的Apk(APP)出现2个显示图标

用AndroidStudio打开该项目 实现只保留1个app图标 AndroidManifest.xml的改法如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android" package"com.fru…

IO流(字节流与字符流) 和 File对象 详解与使用

IO流 和 File对象 理论概念 为什么需要io流呢&#xff1f; 如上图这些基本数据类型和对象以及列表都是内存中的数据&#xff0c;只要断电或者程序停止&#xff0c;这些数据将会永久消失。 那么如果我需要长久保存一些数据怎么办&#xff1f;(持久化) 那么就需要使用File对象…