软件测试06:软件测试原则和黑盒测试用例设计方法

news2024/10/6 8:24:37

 

软件测试原则

  • 所有测试的标准都是建立在用户需求之上
  • 软件测试必须基于"质量第一"的思想去开展各项工作,当时间和质量冲突时,时间要服从质量
  • 事先定义好产品的质量标准,只有有了质量标准,才嫩如果根据测试的结果,对产品的质量进行分析和评估
  • 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试
  • 穷举测试是不可能的
  • 第三方进行测试会更客观,更有效
  • 软件测试计划是做好软件测试工作的前提
  • 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性。
  • 对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数较多,其中存在的错误概率也就越大
  • 重视文档,妥善保护一切测试过程文档(测试计划、测试用例、测试报告等)
  • 应当把“尽早和不断地测试”作为测试人员的座右铭
  • 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见
  • 测试应从“小规模”开始,逐步转向“大规模”
  • 不可将测试用例置之度外,排除随意性
  • 必须彻底检查每一个测试结果
  • 一定要注意测试中的错误集中发现现象,这和程序员的编程水平和习惯有很大的关系
  • 对测试错误结果一定要有一个确认的过程

什么是测试用例

  • 简单地说,测试用例就是:
    • 设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果
    • 如果程序在这种情况下不能正常运行,而且这种问题会重复发生,那就表现软件程序人员已经测出了软件有缺陷,这时候就必须将这个问题标示出来,并且通知软件开发人员。软件开发人员接获通知后,将这个问题修改完成于下一个测试版本内
    • 软件测试工程师取得新的测试版本后,必须利用同一个用例来测试这个问题,确保该问题已修复完成

  • 测试用例应该包含以下内容:
    • 标识符:由测试设计过程说明和测试程序说明引用的唯一标识符
    • 测试项:描述被测试的详细特性、代码模块等,应该比测试设计说明中所列的特性更加具体。还要指出引用的产品说明书或者测试用例所依据的其他设计文档。
    • 输入说明:该说明列举执行测试用例的所有输入内容或者条件。
    • 输出说明:描述进行测试用例预期的结果。
    • 环境要求:是指执行测试用例必须要的硬件、软件、测试工具、人员等。
    • 特殊要求:描述执行测试必须的特殊要求。
    • 用例之间的依赖性:如果一个测试用例依赖于其他用例,或者受其他用例的影响,就应该再次注明。
  • 用例设计和编写的作用
    • 有效性:测试用例是测试人员测试过程中重要参考依据。
    • 可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,提高测试效率。
    • 易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。
    • 可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。
    • 可管理性:测试用例也可以作为检验测试人员的进度、工作量以及跟踪/管理测试人员的工作效率的标准。
  • 测试用例编写注意事项
    • 不要设计“穷举测试用例”
    • 在详细测试用例与有效测试时间中找到平衡点
    • 好的测试用例应该多关注“反向测试问题”
    • 测试用例库应该不断更新和维护
    • 测试用例可以复用,但要注意测试数据有效性与环境变化
    • 测试用例是设计出来的,不是写出来的
    • 多去学习测试丰富的测试工程师所设计的测试用例
    • 针对不同的需求类型和测试对象,灵活采用不同的测试用例设计方法

黑盒测试用例设计方法

  • 测试数据选择

    • 等价类划分法

      • 等价类划分法原理(言之有理即可)

        • 把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例
        • 每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也可能发生同样的错误
        • 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误
      • 等价类划分法设计步骤

        • 确认等价类的原则

          • 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类

          • 在输入条件规定的输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类

          • 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类

          • 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类

            例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。

          • 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

          • 在确知已划分的等价类中,各元素在程序处理中的分类不同的情况下,则应再将该等价类进一步地划分为更小的等价类

      • 划分等价类和列出等价类表

        • 有效等价类
        • 无效等价类
      • 确认测试用例

        • 为每个等价类规定一个唯一的编号
        • 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖
        • 设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类被覆盖
    • 边缘值分析法

      • 如果输入条件规定了值的范围,则应曲刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据

      • 如果输入条件规定值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据

      • 分析规格说明,找出其他可能的边界条件

      • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例

      • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例

        举例:

        ​ 1)6<=x<=12,请问测试中x的边界值要选取哪几个进行测试?

        ​ 答案:5,6,7,11,12,13

        ​ 2)6<x<12,请问测试中x的边界值要选取哪几个进行测试?

        ​ 答案:6,7,8,10,11,12

测试步骤设计

因果图法

  • 因果图法是一种适合于描述对于多种输入条件组合的测试方法

  • 根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例和方法

  • 它适合于检查程序输入条件涉及的各种组合情况

    • 画图方法如下:

      • 第一步:根据功能说明书中规定的原因和结果之间的关系画出因果图

        • 恒等。原因a成立,结果b一定成立。
        • 非。原因a成立,结果b一定不成立。
        • 或。原因a、b、c三者其中之一成立,结果d就成立。
        • 与。原因a、b、c三者都成立,结果d才成立。

      • 第二步:根据功能说明在因果图中加上约束条件

        • 其中互斥、包含、唯一、要求是对原因之间的约束(假如原因成立为1,不成立为0),屏蔽是对结果的约束(假如结果成立为1,不成立为0)。他们的含义如下:
          • 互斥(exclusive):表示不同时为1,即a,b,c中至多有一个为1。例:a+b+c<=1。
          • 包含(include):表示至少有一个1,即a,b,c中不同时为0。例:3=>a+b+c>=1。
          • 唯一(only):表示a,b,c中有且仅有一个为1。例:a+b+c==1。
          • 要求(require):表示若a=1,则b必须为1。即不可能a=1且b=0。原因b成立,要求a一定先成立
          • 屏蔽(mask):表示若a=1,则b必须为0。

  • 因果图法示例

    • 阅读和分析功能说明书,识别出“原因”和“结果”,并加以编号
    • 案例:有一个饮料自动售后机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下。
      • 若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就会出来。
      • 若投入1元钱的硬币,同样也会是按下“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时推出5角钱的硬币
  • 判定表法

  • 正交实验法

  • 功能图法

  • 场景法

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

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

相关文章

今年找工作真的好难啊,一秒泪崩

在入行前端开发之前&#xff0c;我看过了很多从学校毕业之后一事无成的人&#xff0c;而我心气比较高&#xff0c;接受不了自己也一样浑浑噩噩地过。偶然机会接触到了前端开发&#xff0c;觉得很有意思&#xff0c;思考再三之后&#xff0c;决定去做这件自己喜欢又能有所成就的…

散热差、设计古板,因循守旧的联想Thinkpad还能获得忠粉的青睐吗?

拥有航天梦想的联想ThinkPad&#xff0c;在5月18日的新品发布会上&#xff0c;再次与中国航天太空创想达成了合作&#xff0c;将整场发布会的格调提升到了没有“边际”的高度。 发布会上&#xff0c;联想ThinkPad宣布了几款新品的面世&#xff0c;产品性能的升级和优化必不可少…

ICASSP 2023 | 深度窄带网络消除实时语音通信中的干扰音

来源&#xff1a;ICASSP 2023 作者&#xff1a;Feifei Xiong, Jinwei Feng等 论文题目&#xff1a;Deep Subband Network for Joint Suppression of Echo, Noise and Reverberation in Real-Time Fullband Speech Communication 本文由阿里巴巴钉钉蜂鸣鸟音频实验室&#xff08…

使用vuex记住当前页面页码信息,以便从详情页返回列表页时能还原到上一次页面

文章目录 一、在vuex中需要完成的工作二、在需要记住页面信息的列表页组件中添加如下代码&#xff0c;比如list.vue:三、在详情页添加返回按钮&#xff08;可选&#xff09;四、顺便来总结下&#xff0c;能返回上一级页面的方法有2类5种&#xff1a;五、总结&#xff0c;记住当…

移动设备管理:自带设备办公(BYOD)管理

什么是自带设备办公&#xff08;BYOD&#xff09; 自带设备办公&#xff08;BYOD&#xff09;指一些企业允许员工携带自己的笔记本电脑、平板电脑、智能手机等移动终端设备到办公场所&#xff0c;并可以用这些设备获取公司内部信息、使用企业特许应用的一种政策&#xff0c;企…

支持AUTOSAR Classic以及Adaptive平台的DEXT诊断数据库

一 DEXT、DCM、DEM和FIM的概述 DEXT&#xff08;Diagnostic Extract Template&#xff09;是AUTOSAR定义的诊断提取模板&#xff0c;用于DCM&#xff08;Diagnostics Communication Manager&#xff09;、DEM&#xff08;Diagnostics Event Manager&#xff09;和FIM&#xff…

【数据库原理与应用 - 第六章】T-SQL 在SQL Server的使用

目录 一、数据库定义语言DDL 1、数据库的定义 &#xff08;1&#xff09;创建数据库 &#xff08;2&#xff09;管理数据库 2、基本表的定义 &#xff08;1&#xff09;创建基本表 &#xff08;2&#xff09;修改基本表 3、索引的定义 &#xff08;1&#xff09;创建索…

东北小胖丫华夏受邀拍摄“沈水之阳,我心向往,寻美沈阳”宣传片

6月1日-4日&#xff0c;东北小胖丫华夏带领华夏星闪闪爱心公益服务队的小志愿者们&#xff0c;在沈阳的地标性建筑——沈阳故宫、中街、五里河公园等地&#xff0c;拍摄了“寻美沈阳”宣传片。 宣传片以“沈水之阳&#xff0c;我心向往&#xff0c;我爱沈阳&#xff0c;我爱家乡…

希尔贝壳邀您参加2023深圳国际人工智能展览会

2023深圳国际人工智能展览会“AIE”将于2023年5月16-18日在深圳国际会展中心 (宝安)举办&#xff0c;希尔贝壳受邀参加&#xff0c;展位号&#xff1a;A331。 伴随着智能行业的快速发展&#xff0c;展会已被越来越多的企业列入每年必选展会&#xff0c;也成为各采购商选购的理…

互联网 Java 高级工程师面试 1000 题 + 答案汇总(社招最新版)

作为一个 Java 程序员&#xff0c;你平时总是陷在业务开发里&#xff0c;每天噼里啪啦忙敲着代码&#xff0c;上到系统开发&#xff0c;下到 Bug 修改&#xff0c;你感觉自己无所不能。然而偶尔的一次聚会&#xff0c;你听说和自己一起出道的同学早已经年薪 50 万&#xff0c;而…

web期末大作业--网页设计 HTML+CSS+JS(附源码)

目录 一&#xff0c;作品介绍 二.运用知识 三.作品详情 四.部分作品效果图 我的&#xff1a;​编辑 五.部分源代码 六.文件目录 七.源码 一&#xff0c;作品介绍 作品介绍&#xff1a;该作品是一个是一个关于影视作品的网页&#xff0c;一共有五个页面&#xff0c;主页&a…

安全狗(云)工作负载安全保护解决方案护航电信运营商多云环境下的数字安全

随着互联网技术的发展&#xff0c;云计算、大数据、物联网、微服务、容器等新技术的尝试和应用&#xff0c;基础设施架构呈现出更加“混合化”的趋势&#xff0c;虚拟化、微服务、容器等工作负载成为了新的业务载体。 一 保护&#xff08;云&#xff09;工作负载安全迫在眉睫…

迪赛智慧数——柱状图(极坐标扇图):我国民众普遍面临的睡眠问题

效果图 常见的睡眠问题&#xff0c;你占了哪一样? 在网络科技发达的今天&#xff0c;伴随着高压快节奏的生活状态&#xff0c;各阶层各年龄段的睡眠问题接踵而至&#xff0c;甚至只增不减&#xff0c;一觉到天亮的好睡眠变得无价。据最新睡眠报告数据显示&#xff0c;75%的受…

华为OD机试真题 JavaScript 实现【最多提取子串数目】【2023Q1 100分】

一、题目描述 给定由[a-z] 26 个英文小写字母组成的字符串 A和 B&#xff0c;其中A中可能存在重复字母&#xff0c;B 中不会存在重复字母&#xff0c;现从字符串 A 中按规则挑选一些字母&#xff0c;可以组成字符串 B。 挑选规则如下: 同一个位置的字母只能被挑选一次&#…

快速上手Opencv:HighGUI图形用户界面

HighGUI图形用户界面 1.图像的载入、显示和输出到文件 1.1 图像的载入&#xff1a;imread()函数 Mat imread(const string &filename,int flags1) 第一个参数&#xff1a;图片路径第二个参数&#xff1a;载入标识&#xff0c;指定一个加载图像的颜色类型。可以看到它自…

解决@Transactional事务不回滚问题

1、事务不回滚情况 - 演示 1.1 情况说明&#xff1a; service层加了事务管理器Transactional &#xff0c;报错后&#xff0c;事务并没有同时回滚&#xff1b; service层调用了两个dao层的方法&#xff0c;执行第一个dao层方法&#xff0c;正常往数据库插入数据。执行第二个d…

selenium4-获取页面元素相关信息

引言 现在&#xff0c;越来越多的公司和企业开始将业务转移到线上平台。而对于网站或者应用的测试、开发人员来说&#xff0c;获取页面元素相关信息是解决很多问题的关键之一。 如果您正为此而苦恼&#xff0c;那么恭喜您&#xff0c;因为这篇文章将会为您揭秘Selenium4获取页…

HAProxy概述、搭建Web群集

HAProxy概述、搭建Web群集 一、HAProxy概述1、HAProxy的主要特性2、常见的Web集群调度器3、Haproxy应用分析4、Haproxy调度算法原理 二、LVS、Nginx、HAproxy的区别三、LVS、Nginx、HAproxy的优缺点1、Nginx的优点&#xff1a;2、Nginx的缺点&#xff1a;3、LVS的优点&#xff…

数据抓取,驱动商业智能的密码|HTTP代理的应用

在信息爆炸的时代&#xff0c;数据无疑成为了推动行业发展的重要动力。而数据抓取作为一种强大的工具&#xff0c;已经成为众多行业的秘密武器&#xff0c;为商业决策提供了前所未有的洞察力和竞争优势。让我们揭开数据抓取的神秘面纱&#xff0c;探索它在各个行业中的高级应用…

SpringCloud microservice-student-provider-1001服务提供者项目建立(三)

新建一个服务器提供者module子模块&#xff0c;类似前面建的common公共模块&#xff0c;名称是 microservice-student-provider-1001 pom.xml改成&#xff1a; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSc…