首页 > 其他分享 >软件测试基础介绍

软件测试基础介绍

时间:2024-06-06 21:30:07浏览次数:14  
标签:功能 基础 介绍 测试 设计 软件 缺陷 软件测试

软件测试的定义

依据规范的软件检测过程和检测方法,按照测试计划和测试需求对被检测软件的文档、程序和数据进行测试的活动。

软件测试的重要性

第一,软件测试可以减少软件的不正确执行导致的资金、时间和商业信誉损失,甚至能减少人员伤亡风险。

第二,软件测试可以降低软件开发成本,强化项目进度和质量上的控制。

第三,软件测试的发展推动了软件工程的发展。

软件测试的目的

        测试是完善程序的过程,目的在于使系统更加符合用户的使用习惯,让系统在上线后带给客户极高的用户体验。

        验证软件是否满足软件开发合同或项目开发计划、系统设计文档、软件需求规格说明、软件设计说明和软件产品说明等规定的软件质量要求。

        通过测试,发现软件中的缺陷。

软件测试至少要达到下列目标

        确保产品完成了它所承诺或公布的功能。

        确保产品满足性能和效率的要求。

        确保产品是健壮的、适应用户环境的。

软件测试的对象

  1. 程序:功能正确,性能良好
  2. 文档:包括用户手册和运维手册,内容完整
  3. 数据:系统配置文件,符合国家规范

软件测试的基本原则

1、测试证明软件存在缺陷-Testing shows presence of defects

        ·测试只能证明软件中存在缺陷,但并不能证明软件中不存在缺陷。

        ·软件测试是为了降低存在缺陷的可能性,即便是没有找到缺陷,也不能证明软件是完美的。

2、穷尽测试是不可能的-Exhaustive testing is impossible

        ·穷尽测试是不可能的。如计算器的加法功能的测试。

        ·现在软件的规模越来越大,复杂度越来越高,想做到完全性的测试是不可能的。在测试阶段,测试人员可以根据风险和优先级来进行集中和高强度的测试,从而保证软件的质量。

3、测试尽早介入-Testing early

        ·为什么测试要尽早介入呢,简单的说就是保证软件质量,降低风险和成本。

        ·测试人员一般在需求阶段就开始介入,使缺陷在需求或设计阶段就被发现,缺陷发现越早,修复的成本就越小。

4、缺陷集群性(2/8原则)-Defect clustering

        ·这个也是经验之谈了,一般认为,百分之80的缺陷集中出现在百分之20的核心功能区域。一旦你在某个功能模块找到缺陷,相关附近功能多半也会存在问题。

        ·在项目实战中,在写缺陷报告的时候,做横向对比,比对类似功能,相近模块,版本,机型。指定回归测试策略的时候,也可以重点测试。

5、杀虫剂悖论(杀虫剂效应)-Pesticide Paradox

        ·反复使用相同的杀虫剂会导致害虫对杀虫剂产生免疫而无法杀死害虫。软件测试也一样。如果一直使用相同的测试方法或手段,可能无法发现新的bug。

        ·为了解决这个问题,测试用例应当定期修订和评审,增加新的或不同的测试用例帮助发现更多的缺陷。 测试人员不能一直依赖于现有的测试技术,而要不断的提升测试方法以提高测试效率。

6、测试活动依赖于测试内容-Testing is context dependent

        ·根据业务的不同,软件测试内部也分为不同的行业,比如游戏行业、电商行业、金融行业。不同的行业,测试活动的开展都有所不同,比如测试技术、测试工具的选择,测试流程都不尽相同,所以软件测试的活动开展依赖于所测试的内容。

        ·比如:你在金融公司测试,安全性就是第一位。电子商务测试,功能性则更加重要。

7、不存在缺陷的谬论-Absence of error

        ·软件测试不仅仅是为了找出Bug而存在的活动,而是还需要确认软件是否满足用户的期望和需求,如果产品不能满足用户的需求,即使没有出现任何缺陷,这个产品也是失败的。

        ·“没有错误” 并不是我们的追求,在互联网时代,始终快速给用户创造最大的价值才是我们孜孜不倦的追求。

软件的生命周期

        软件的生命周期是指软件开始研制到最终被废弃不用这一个过程。

        软件生命周期包括问题定义及规划、需求分析、系统设计、软件编程、软件测试、软件维护等阶段。

问题的定义及规划:这个阶段主要是确定软件的开发目标和可行性,包括问题定义、可行性分析,以及制定项目开发计划。

需求分析:明确软件系统必须做什么,确定软件系统的功能、性能、数据和界面等要求。

系统设计:包括概要设计和详细设计,设计软件的结构,明确软件系统由哪些模块组成,以及这些模块的层次结构、调用关系和模块的功能。

软件编程:将设计的结果转换成计算机可接受的程序代码。

软件测试:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、集成测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。

软件维护:软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。

标签:功能,基础,介绍,测试,设计,软件,缺陷,软件测试
From: https://blog.csdn.net/m0_73890953/article/details/139510413

相关文章

  • WrodPress基础之前期7个必要的基本设置
    不管使用宝塔面板搭建WordPress还是1Panel面板的方式,一个新WordPress网站需要做一些基本设置才能正式的去设计页面,填充网站内容。1.确保网站勾选“建议搜索引擎不收录”网站正式上线前,我们需要反复设计页面,打磨文案,填充内容,操作过程中必然会产生一些无用的链接,若这些链接被谷歌......
  • C语言关于预处理的基础介绍
    一:预定义符号    在c语言中有一些预定义的符号,这些符号已经定义好了,用户不需要再次定义只需要使用即可。 __FILE__:显示当前进行编译的源文件__LINE__:显示当前代码行号__DATE__:显示当前文件被编译的日期__TMIE__:显示当前文件被编译的时间__STDC__:查看当前编译......
  • ChatGPT Prompt技术全攻略-入门篇:AI提示工程基础
    系列篇章......
  • Qt中图表图形绘制类介绍
    接上篇介绍QChart相关的类,本片主要在QChart载体上进行图表图形绘制使用各种形状的图类。一.QXYSeries类QXYSeries类是QLineSeries折线图,QSplineSeries样条曲线图,QScatterSeries散点图的基类;QXYSeries类的使用都可以参考下面详细介绍的折线图,样条曲线图,散点图等的应用。......
  • CUDA程序优化-1.基础介绍
    简介本合集主要介绍我在开发分布式异构训练框架时的CUDA编程实践和性能优化的相关内容。主要包含以下几个部分:介绍CUDA的基本概念和架构,帮助读者建立对CUDA的初步认识,包括硬件架构/CUDA基础等内容介绍一些性能优化技巧和工具,帮助读者优化CUDA程序的执行效率结合具体的代码示......
  • 学习笔记——路由网络基础——浮动静态路由(路由备份和冗余)
    2、浮动静态路由(路由备份和冗余)(1)基本概念浮动静态路由是两条或多条链路组成浮动路由。当到达某一网络有多条路径,通过为静态路由设置不同的优先级,你可以指定主用路径和备用路径。当主用路径不可用时,走备用路径的静态路由进入路由表,数据包通过备用路径转发到目标网络,这就是......
  • Vue3基础知识语法
    Vue3基础知识目录Vue3基础知识一、创建Vue3项目1、创建方式通过vue_cli创建通过vite创建2、项目文件3、源码解析二、Vue语法1、API风格选项式API(OptionsAPI)组合式API(CompositionAPI)2、setupsetup简介setup语法糖3、响应式数据refreactiveref对比reactiv......
  • nginx mirror流量镜像详细介绍以及实战示例
    nginxmirror流量镜像详细介绍以及实战示例1.nginxmirror作用2.nginx安装3.修改配置3.1.nginx.conf3.2.conf.d目录下添加default.conf配置文件3.3.nginx配置注意事项3.3.nginx重启4.测试1.nginxmirror作用为了便于排查问题,可能希望线上的请求能够同步到测试环境,以......
  • 算法课程笔记——并查集基础
    算法课程笔记——并查集基础......
  • flutter基础
    创建的flutter项目组件MaterialDesignFlutter中无状态组件(StatelessWidget)和有状态组件App结构内容点击查看代码import'package:flutter/material.dart';voidmain(){runApp(constMyApp());}classMyAppextendsStatelessWidget{constMyApp({super.key});......