什么是软件测试

一、软件测试的定义

软件测试的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。因为软件是由文档、数据以及程序组成的,所以软件测试的对象也就不仅仅是程序本身,而是包括软件形成过程的文档、数据以及程序。
随着软件工程化越来越被重视以及软件规模的不断扩大,软件分析、设计的作用越来越突出,而在实践中,越来越多的错误是在刚开始的分析与设计阶段就已经存在,所以对于软件需求和设计阶段的测试就显得非常重要,这就是测试概念的扩大化以及软件全生命周期测试的理念。

二、软件质量

软件质量有下面几个定义:

1991年,ISO 9126中定义

软件质量是软件满足规定的或潜在用户需求特性的总和

1999年,ISO 14598定义

软件质量是软件特性的总和,软件满足规定或潜在用户需求的能力。

一般对质量的理解是一个实体的“属性”,“属性”好就是质量好,但是这不够全面,因为“属性”是内部特性,而内部特性好不代表一定能够完成好用户的任务,所以软件质量也是关于软件特性具备“能力”的体现。
软件质量包括“内部质量”、“外部质量”、“使用质量”三个部分,也就是说,软件满足规定的或潜在的用户需求的能力要这三个方面去衡量。

三、软件测试与质量保证的区别

质量保证: 质量保证的工作是通过预防、检查和改进来保证软件质量。QA使用“全面质量管理”和“过程改进”的原理开展质量保证工作。所关注的是软件质量的管理与测量。虽然QA活动也有些测试活动,但所关注的主要是软件质量的检查与测量。
软件测试: 测试和质量保证同样都是与软件的开发过程紧密相关,但不同的是其并不关心软件开发过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试活动必须假设软件中存在潜在问题,测试中所有的操作都是为了找出更多的问题,而不仅仅是为了验证每一件事是正确的。对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作,所以说软件测试是保证其质量的重要一环。

四、软件测试的目的

在早期,软件定义指出软件测试的目的是寻找错误,并且尽可能找出更多的错误。后面,有人提出了以下几个目的:

1.测试是程序的执行过程,目的在于发现错误

2.一个好的测试用例在于能够发现至今为止未发现的错误

3.一个成功的测试是发现了至今未发现的错误的测试

4.也有人提出软件测试不仅仅是为了发现缺陷,更重要的是要通过对软件质量的度量以提高软件的质量。
综上所述,软件测试的目的可以概括如下:软件测试是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。 同时,测试是以评价一个程序或者系统属性为目标的活动,测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度,为用户选择和接收软件提供有力依据。
备注: 测试是为了证明软件是否可以使用,即是符合用户的需求的。

五、软件测试的原则

原则1: 所有的测试都应追溯到用户需求
由于软件设计和开发的目的就是使用户完成预定的任务,并满足用户的需求,而软件测试所揭示的缺陷和错误使软件达不到用户的目标,满足不了用户的需求。
原则2: 应该尽早地和不断地进行软件测试
因为软件生命周期的各个阶段都有可能产生错误,所以不能把软件测试仅仅看作为软件开发活动中的一个独立阶段的工作,而应该将其贯穿于开发的各个阶段中。同时还应尽可能早的开始测试,只要测试在生命周期中进行得足够早,就能够提高被测软件的质量,这就是预防性测试的基本原则。
原则3: 完全测试是不可能的,测试需要终止
在有限的时间和资源条件下,找出所有的软件缺陷是不可能的,主要有三个方面的原因:

1.输入量太大

2.输出结果太多

3.路径组合太多

原则4: 测试不能显示软件潜在的缺陷
也就是说测试只能证明软件中存在缺陷而不能证明软件中没有缺陷。
原则5: 充分注意测试中的集群现象
经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成正比。根据这个规律,应对错误集群的程序段进行重点测试,以提高测试效益。
原则6: 程序员应避免检查自己写的程序
这有两个原因,一个是心理原因,一个是思维定式原因,一个使人不大愿意承认自己的错误以及思维定式导致难以发现自己的错误,因此为达到测试目的,应该避免这种情况出现。
原则7: 尽量避免测试的随意性
应该从工程的角度去理解软件测试,他是有组织、有计划、有步骤的活动

附: 内容来自《软件评测师教程》

总结

 感谢每一个认真阅读我文章的人!!!


那么在这里我也精心准备了软件测试、自动化测试的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。需要的点击1150305204加入群聊与我一起学习交流。谢谢大家。

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

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

相关文章

什么是博若莱新酒节?

在红酒圈儿里混,一定不能不知道博若莱新酒节,这是法国举世闻名的以酒为主题的重要节日之一。现已成为世界范围内庆祝当年葡萄收获和酿制的节日,被称为一年一度的酒迷盛会。 云仓酒庄的品牌雷盛红酒LEESON分享博若莱位于法国勃艮第南部&#x…

Spark Core------算子介绍

RDD基本介绍 什么是RDD RDD:英文全称Resilient Distributed Dataset,叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合。 Resilient弹性:RDD的数据可以存储在内存或者磁盘…

C# OpenCvSharp DNN FreeYOLO 目标检测

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN FreeYOLO 目标检测 效果 模型信息 Inputs ------------------------- name:input tensor:Float[1, 3, 192, 320] --------------------------------------------------------------- Outp…

Eureka注册中心Eureka提供者与消费者,Eureka原理分析,创建EurekaServer和注册user-service

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Eureka提供者与消费者二、Eureka原理分析eurekaeureka的作用eureka总结 三、创建EurekaServer和注册user-service创建EurekaServer总结 服务的拉取总结-Eur…

docker拉取镜像提示 remote trust data does not exist for xxxxxx

1、How can I be sure that I am pulling a trusted image from docker 2、docker: you are not authorized to perform this operation: server returned 401. 以上两个问题可以试试以下解决办法 DOCKER_CONTENT_TRUSTfalse 本人是使用jenkins部署自己的项目到docker容器出现…

Spring MVC参数接收、参数传递

Springmvc中,接收页面提交的数据是通过方法形参来接收: 处理器适配器调用springmvc使用反射将前端提交的参数传递给controller方法的形参 springmvc接收的参数都是String类型,所以spirngmvc提供了很多converter(转换器&#xff0…

Contingency Planning学习记录

Contingency Planning over Probabilistic Hybrid Obstacle Predictions for Autonomous Road Vehicles Contingency Planning over Probabilistic Hybrid Obstacle Predictions for Autonomous Road Vehicles - 知乎 Contingency Planning over Probabilistic Hybrid Obstac…

QT第二天

使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为&…

赠送葡萄酒:为别人选择合适的葡萄酒

葡萄酒可以在许多不同的场合成为很好的礼物,因为它可以用来庆祝许多不同的事情。当被邀请去别人家时,你可以带酒去吃饭。葡萄酒可以用来纪念婚礼、出生、毕业和各种纪念日,来自云仓酒庄品牌雷盛红酒分享这是一个非常合适的专业礼物。但是你怎…

1878_emacs company backend的选择尝试

Grey 全部学习内容汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 1872_emacs company backend的选择尝试 从C语言开发的使用场景角度,通过测试尝试看看这个company的backend应该来如何配置。 主题由来介…

React Native 桥接原生实现 JS 调用原生方法

一、为什么需要桥接原生 为了满足在React 层无法实现的需求 复杂高性能的组件:复杂表格、视频播放原生层开发能力:传感器编程、widget平台属性:系统信息、设备信息对接第三方应用:相机、相册、地图 真实的开发过程中是不可能完…

Spring循环引用和三级缓存

前言 Spring 解决 Bean 之间的循环引用关系用到了三级缓存,那么问题来了。三级缓存是怎么用的?每一层的作用是什么?非得用三级吗?两级缓存行不行? 理解循环引用 所谓的“循环引用”是指 Bean 之间的依赖关系形成了一…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷④

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷4 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷4 模块一 …

一键搭建elk

一键启动elk 1. 生成环境的脚本 setup.sh #!/usr/bin/bash# logstash enviroment mkdir -p logstash touch logstash/logstash.conf # shellcheck disableSC1078 echo input {tcp {mode > "server"host > "0.0.0.0"port > 4560codec > jso…

多PC文件夹同步方案

在多个工作终端独立具备svn版本库的情况下,可使用本工具进行一键同步。 相较于传统的SVN中心检出更新方案中移动存储设备硬件及文件目录系统多终端间易损坏,本方案更加稳定 资料同步结构: 使用步骤: 1.修改config.ini配置文件 2…

【C++】HP-Socket(二):框架介绍、功能说明

1、接口 1.1 接口模型 1.2 三类接口 HP-Socket 定义了三类接口 组件接口(如:ITcpServer / IUdpClient):声明组件操作方法,应用程序创建组件对象后通过该接口来使用组件组件实现类(如:CTcpSer…

Mac 安装Nginx教程

Nginx官网 Nginx官网英文 1.在终端输入brew search nginx 命令检查nginx是否安装了 2. 安装命令:brew install nginx 3. 查看Nginx信息命令brew info nginx 4. 启动 nginx方式:在终端里输入 nginx 5.查看 nginx 是否启动成功 在浏览器中访问http://l…

powerdesigner导出sql将name放到comment注释上

1. 批量设置 2. 脚本 Option Explicit ValidationMode True InteractiveMode im_Batch Dim mdl the current modelget the current active model Set mdl ActiveModel If (mdl Is Nothing) ThenMsgBox"There is no current Model " ElseIf Not mdl.IsKindOf(PdPD…

JSON数据处理

1.添加json依赖 springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置&#xff0c;只需引入以下类库springmvc就可以处理json数据&#xff1a; <!--spring-json依赖--> <dependency><groupId>com.fasterxml.jackson.c…

构建自己的私人GPT-支持中文

上一篇已经讲解了如何构建自己的私人GPT&#xff0c;这一篇主要讲如何让GPT支持中文。 privateGPT 本地部署目前只支持基于llama.cpp 的 gguf格式模型&#xff0c;GGUF 是 llama.cpp 团队于 2023 年 8 月 21 日推出的一种新格式。它是 GGML 的替代品&#xff0c;llama.cpp 不再…