一个简单的软件测试流程(附带流程详解)

该流程为笔者整理的一个小型项目的测试流程,不代表测试的全部。更适合于一些小公司的测试流程。

仅供参考。

流程图

流程分解

  • 目的:本活动的意图
  • 负责人:负责执行本活动的角色
  • 参与人:配合执行本活动的角色
  • 进入准则:能够开展本活动所须满足的因素或条件
  • 输入:执行本活动需要使用的数据或文档
  • 活动:将本活动的输入转化为输出的一系列行动
  • 输出:本活动所产生的数据或文档
  • 完成准则:标志本活动完成的因素或条件

1、设计用例

  • 目的:确保为发现至今未发现的缺陷提供依据
  • 负责人:用例设计师
  • 参与人:主测人
  • 进入准则:《详细设计》评审通过
  • 输入:《需求规格说明书》《概要及详细设计》《业务逻辑流程图》《现场应用场景》
  • 活动: ①依据输入文件运用设计方法设计用例; ②部门内对用例进行Review;
  • 设计标准: ①可读性高 ②覆盖全部需求点,考虑到各边界值、异常条件
  • 输出:测试用例
  • 完成准则:部门内Review通过

2、评审用例

  • 目的:确保对需求规格场景覆盖率达到100%
  • 负责人:用例设计师
  • 参与人:主测人、开发代表、项目经理、应用工程师、测试经理
  • 进入准则:部门内Review通过
  • 输入:测试用例
  • 活动: ①评审用例设计的结构是否清晰,是否有效对需求规格覆盖 ②是否从用户角度来设计测试场景和使用流程的用例 ③是否有效覆盖业务逻辑,对程序要求是否合理
  • 输出:评审通过的用例
  • 完成准则:对需求规格和业务逻辑流程的覆盖率达到100%

3、版本转测

  • 目的:严把转测入口,控制版本转测质量
  • 负责人:主测人
  • 参与人:主测人、测试代表、测试配合人,项目经理
  • 进入准则:部门内Review通过
  • 输入:转测单据
  • 活动: ①测试人员核对转测单据的版本号是否否和立项要求 ②测试人员核对转测单据附件是否包含完整的《研发自测试报告》《转测说明》 ③测试人员核对转测单据是否填写功能描述,缺陷修复情况
  • 输出:转测单据
  • 完成准则:转测单据审核通过,不通过打回,重新转测审核。

4、澄清范围

  • 目的:确保覆盖修改点和风险点及影响范围
  • 负责人:测试代表
  • 责任人:主测人、开发代表、项目经理
  • 进入准则:版本转测
  • 输入:《需求规格说明书》《业务逻辑流程图》《修复缺陷清单及影响范围》
  • 活动: ①基于需求规格及业务逻辑流程,分析新增需求及修复缺陷的影响范围;undefined② 依据可能影响的模块,划分版本测试范围,明确测试重点;
  • 输出: 版本测试范围
  • 完成准则:项目干系人对版本测试范围澄清一致

5、制定计划

  • 目的:指导测试过程
  • 责任人:测试代表
  • 参与人:主测人、开发代表、项目经理
  • 进入准则:测试范围澄清完毕
  • 输入:项目里程碑计划
  • 活动: ①明确范围 ②规划时间 ③设定策略 ④关联用例
  • 输出:测试计划
  • 完成准则:项目组审核通过

6、评估版本

  • 目的:确保版本具备可测试性
  • 负责人:主测人
  • 进入准则:版本转测
  • 输入:转测版本、开发自测报告、转测说明文档
  • 测试活动: ①核实输入文档是否完整和正确; ②抽检开发自测报告执行情况; ③对转测版本进行冒烟测试; ④冒烟测试包括自动化测试,手工重点功能测试
  • 输出:转测版本是否具备可测试性
  • 完成准则:冒烟测试通过

7、执行测试

  • 目的:发现问题
  • 负责人:主测人
  • 参与人:其他测试人员
  • 进入准则:转测版本具备可测试性
  • 输入:转测版本、测试计划
  • 活动: ①按计划执行测试提交缺陷; ②反馈版本测试进展和情况;
  • 输出:缺陷列表、产品风险、测试情况
  • 完成准则:用例执行率100%,且在测试最后一天主测全人力投入未发现严重及以上缺陷。

8、产品培训

  • 目的:产品使用和推广
  • 负责人:应用工程师
  • 参与人:应用工程师,前端技术人员
  • 进入准则:测试完成
  • 输入:《硬件新品培训文档》、《操作软件类培训文档》、《硬件程序包培训文档》、《原理性培训文档》
  • 活动: ①硬件新品技术参数,操作,功能培训; ②操作软件升级,操作,功能培训; ③硬件程序包升级使用说明; ④服务,软件实现原理说明。
  • 输出:《培训总结》
  • 完成准则:部门内Review通过

9、编写报告

  • 目的:呈现测试过程
  • 负责人:测试代表
  • 参与人:主测人
  • 进入准则:测试完成
  • 输入:测试过程所有输入、输出文件和过程数据
  • 活动: ①记录整个测试过程和结果; ②分析过程数据和产品质量; ③部门内对报告进行Review;
  • 输出:《测试报告》
  • 完成准则:部门内Review通过

10、发布评审

  • 目的:评审是否达到发布状态
  • 负责人:测试代表
  • 参与人:项目组相关干系人
  • 进入准则:《测试报告》部门内Review通过
  • 输入:《测试报告》和《发布评审表》
  • 活动: ①评审过程质量;undefined②评审遗留缺陷影响; ③评审产品风险项影响;
  • 输出:《评审意见表》
  • 完成准则:所有评审组成员签字确认可以结束测试

11、支持现场

  • 目的:独立和协助解决现场问题
  • 负责人:应用工程师
  • 参与人:研发同事、前端同事
  • 进入准则:前端反馈现场问题
  • 输入:现场问题基本信息
  • 活动: ①通过信息分析和独立解决问题; ②复现现场协助开发解决问题;
  • 输出:《现场问题解决办法和规避措施》
  • 完成准则:问题闭环
本文转载于网络 如有侵权请联系删除

相关文章

  • 一个用户反馈看问题分析定位

    起因收到一条用户反馈问题描述:在软件A中使用输入法卡死跟进过程获取用户出现问题的系统和架构获取用户出现问题的输入法版本测试小S在本地环境复现问题跟进结论用户反馈可以复现,提交bug给开发bug描述:在软件A中使用输入法,触发B功能后,输入法卡死开发跟进开发小X接到bug后查找问题原因,尝试修改,在此过程中,小X联系了用户方,反馈给测试小S说复现的问题不对,跟用户的现象不一致,两方说的不是同一个问题修正后的用户描述:在软件A中使用输入法,进行了C操作,输入法卡死问题分析收到这个信息后,小W和小S一起跟小X进行了沟通确认,小X始终咬定两边不是同一个问题,要求重新复现用户的问题用户描述:在软件A中使用输入法,进行了C操作,输入法卡死小S描述:在软件A中使用输入法,触发B功能后,输入法卡死小W对问题重新进行了梳理,觉得从问题的现象上应该就是同一个问题,但是如何说服开发呢?(@[]@!!)小W将重点放在了触发C操作和触发B功能上,觉得这两个动作应该有什么未想到的神秘关系存在 小W对两个动作进行了比较,进行了如下思考分析:这两个动作的区别是什么呢?这两个动作对输入法的影响分别是什么呢?小W在本地环

  • 硅光芯片的耦合封装

    这篇笔记整理下硅光芯片的耦合封装方案。硅光芯片的耦合器主要分端面耦合和光栅耦合两种,对应的封装方案可谓五花八门,这里选取一些典型的方案。Intel选取了片上异质集成激光器的方案,因而不存在耦合封装这一问题。1.端面耦合a)IBM方案关于IBM的耦合封装方案,之前的笔记IBM的硅光封装方案介绍过。IBM走的技术路线是端面耦合,并结合它们自己的foundry,开发了两种对应的耦合封装方案。其一,如下图所示,(图片来自文献1)在硅光芯片端面处进行刻蚀,形成V型槽阵列,用于放置光纤阵列。绿色小长方体是聚合物lid,将其压在FA上,使得FA落入V型槽中。每根光纤的位置可进一步精细调节,使光纤完全落入V型槽中,达到最优的耦合效率。另一种方案借助于聚合物波导,如下图所示,聚合物波导充当单模光纤与硅波导之间的桥梁,光从单模光纤耦合进聚合物波导,再由聚合物波导耦入硅波导中。(图片来自文献1)b)Interposer方案该方案与IBM的方案二类似,采用二氧化硅制成的PLC波导作为interposer,将光纤里较大模斑转换为较小的模斑,再耦合进硅光芯片中,如下图所示。下图中的中间物体即为PLCinterpo

  • ConfigMap 使用 | Kubernetes篇

    笔记分享|NoteShareNomatterwhereIam,IwillreplyyouimmediatelywhenIseetheemail.MyEmail:echo"YUBzYW1lZ28uY29tCg=="|base64-d目的应用程序部署的信息和程序进行模块分离特点生成为容器内的环境变量设置容器启动的命令参数volume 形式挂载成容器内的文件或目录示例使用文件创建 configmap#创建configmap ➜kubectlcreateconfigmapone.json--from-file=/Users/alicfeng/demo/configmap/one.json configmap/one.jsoncreated ➜kubectlcreateconfigmapone.json--from-file=/Users/alicfeng/demo/configmap/one.ini configmap/one.jsoncreated #查看configmap ➜kubectlgetconfigmap NAMEDATAAGE one.ini143m on

  • PowerBI公式-Earlier函数

    Earlier函数这是一个让很多初学者困惑的函数,尤其是看到下面这样的句型。许多人是在学习了DAX很久之后才领悟了Earlier的使用方法,其实我认为有时候我们把它想复杂了。Earlier=当前行我们第一阶段学习的Filter是一个行上下文函数,Earlier也是一个行上下文函数。主观地讲,Earlier这个函数的命名很容易让人困惑,英文直译为“更早”,它的本义是指前面用到的行上下文,基于这个语义的命名没毛病,然而这个概念很抽象,在使用中是很难体会到更早的含义。 所以学习这个公式最好方法是我们先忽略它的命名,把它看做CurrentRow,即Earlier=当前行,至少99%的应用情况可以这样去理解,相信我,这是入门理解Earlier公式的最快办法。我们现在就来看看是不是这样。前些日子有一位读者问了我一个关于顺序计数的问题,正好就用它来做个举例说明。下面的表每行都是一位顾客的订单,索引是以时间顺序排序,我们想要添加一列,求每笔订单是该顾客的第几次购买。不难想到的一个方法是先筛选一张表(使用Filter),筛选条件是与当前行顾客同名字,索引号<=当前行的索引号,再求这张表的行数。有了

  • Debian Live 项目的剧变

    尽管围绕DebianLive项目发生了很多戏剧性事件,关于DebianLive项目结束的公告的影响力甚至小于该项目首次出现时的公告。主要开发者的离开是最显而易见的损失,而社区对他本人及其项目的态度是很令人困惑的,但是这个项目也许还是会以其它的形式继续下去。所以Debian仍然会有更多的工具去创造启动光盘和其他介质。尽管是用这样一种有遗憾的方式,项目创始人DabielBaumann和DebianCD团队以及安装检测团队之间出现的长期争论已经被「解决」了。在11月9日,Baumann发表了题为「DebianLive项目的突然结束」的一篇公告。在那篇短文中,他一一列举出了自从这个和他有关的项目被发起以来近10年间发生的不同的事件,这些事件可以表明他在DebianLive项目上的努力一直没有被重视或没有被足够重视。最具决定性的因素是因为在「包的含义」上存在冲突,R.Learmonth申请了新的包名,而这侵犯了在DebianLive上使用的命名空间。考虑到最主要的DebianLive包之一被命名为live-build,而R.Learmonth申请的新包名却是live-build-ng,这简直是对

  • 响铃:百度发布智能小程序,开放+AI或是最大利器

    文|曾响铃 来源|科技向令说(xiangling0815)百度APP里那个悄悄上线、备受关注的“优信二手车”小格子背后的布局,已经尘埃落地。5月22日,2018百度联盟峰会上,百度APP业务部总经理、百度小程序负责人平晓黎对小程序进行了“预热”,将其正式抛出,同时回应所有对小程序的猜测。 至此,BAT都有了自己的小程序,从搜索、电商、社交三种互联网粘性最强的功能上,都衍生出“即点即用”模式的应用。不同的是,或者说不出所料的是,转型完成、技术立身的百度这次给小程序也带上了智能的“帽子”,即将上线的是所谓“智能小程序”。在小程序这件事上,百度在流量、技术及生态方面肯定会有自己的优势,但是,A\T都玩了很久的内容,要做出点不一样来,百度也面临必然少不了的挑战。1“超级APP”中,小程序已经成为标配做“入口”替代操作系统,曾经是移动浏览器们的伟大梦想,后来梦想变成了闷响,原因在于这些浏览器们并没有变成“超级APP”。1、“超级APP”推出小程序是互联网生态演进的必然目前为止推出的小程序还算上道的APP,都是王牌级的产品,微信、支付宝莫不如是。百度敢于做小程序,与百度APP成为信息流日活过亿、集

  • [1164]python用numpy计算均值,方差,标准差

    文章目录均值(mean)方差(variance)标准差(standarddeviation) numpy自带一些函数接口,可以用来很方便的计算一组数据的均值(mean),方差(variance)和标准差(standarddeviation)。均值(mean)>>>a=np.array([1,2,3,4,5,6,7,8,9]) >>>np.mean(a) 5.0复制除了np.mean函数,还有np.average函数也可以用来计算mean,不一样的地方时,np.average函数可以带一个weights参数:>>>np.average(a) 5.0 >>>np.average(a,weights=(1,1,1,1,1,1,1,1,1)) 5.0 >>>np.average(a,weights=(1,1,1,1,1,1,1,6,1)) 6.071428571428571复制mean函数有axis参数可以使用:>>>a array([[0,1,2,3,4], [5,6,7,8,9],

  • 腾讯云数据安全审计查询可售卖地域列表api接口

    1.接口描述接口请求域名:cds.tencentcloudapi.com。 本接口(DescribeDbauditUsedRegions)用于查询可售卖地域列表。 默认接口请求频率限制:20次/秒。 APIExplorer提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成SDK调用示例。 2.输入参数以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。 参数名称 必选 类型 描述 Action 是 String 公共参数,本接口取值:DescribeDbauditUsedRegions。 Version 是 String 公共参数,本接口取值:2018-04-20。 Region 否 String 公共参数,本接口不需要传递此参数。 3.输出参数 参数名称 类型 描述 RegionSet ArrayofRegionInfo 可售卖地域信息列表 RequestId String 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的R

  • linux中 vm.overcommit_memory 的含义

    vm.overcommit_memory表示内核在分配内存时候做检查的方式。 这个变量可以取到0,1,2三个值。对取不同的值时的处理方式都定义在内核源码mm/mmap.c的__vm_enough_memory函数中。 取1的时候:此时宏为OVERCOMMIT_ALWAYS,函数直接return0,分配成功。 取2的时候:此时宏为OVERCOMMIT_NEVER,内核计算:内存总量×vm.overcommit_ratio/100+SWAP的总量,如果申请空间超过此数值,则分配失败。vm.overcommit_ratio的默认值为50。 取0的时候:此时宏为OVERCOMMIT_GUESS,内核计算:NR_FILE_PAGES总量+SWAP总量+slab中可以释放的内存总量,如果申请空间超过此数值,则将此数值与空闲内存总量减掉totalreserve_pages(?)的总量相加。如果申请空间依然超过此数值,则分配失败。 以上为粗略描述,在实际计算时,如果非root进程,则在计算时候会保留3%的空间,而root进程则没有该限制 vm.overcommit_memory 默认

  • 深入理解Java:SimpleDateFormat安全的时间格式化

      这一篇我什么都不写,只推荐一篇大牛的博客,这篇博客给了我很多灵感,让我对多线程理解的更加透彻了; http://www.cnblogs.com/chenying99/articles/3331950.html   ctgu_czy

  • 【阿里云IoT+YF3300】7.物联网设备表达式运算

      很多时候从设备采集的数据并不能直接使用,还需要进行处理一下。如果采用脚本处理,有点太复杂了,而采用表达式运算,则很方便地解决了此类问题。 一.  设备连接    运行环境搭建:Win7系统请下载相关的设备驱动,下载地址为:请安装VS2010/VS2015及拓展包 准备材料:YF3300设备套装,组态key(购买产品时厂家会附赠一个月体验版)官方下载YFIOsManager组态管理软件。下载链接: http://www.yfiot.com/content/downsort?current=1&title=1    设备连接:a.将组态key插入电脑,将附赠GPRS天线连接好,插入附赠的物联网卡(也可使用自己购买的物联网卡)                    b.将YF3300通过Type

  • 更改Ubuntu的apt源

    转:https://blog.csdn.net/l18710006370/article/details/78180467复制 万万没想到有一天我会在下载上出问题(*/ω\*) (好的运维应该不会让碰到这个坑,如果必须自己维护,更新一下下载源吧)   以下是apt的各种源,但是目前清华源是最好用的 更换方式: 编辑源列表文件 sudovim/etc/apt/sources.list 删除里面的源列表,替换为以下 清华大学源 debhttp://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenialmainmultiverserestricteduniverse debhttp://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-backportsmainmultiverserestricteduniverse debhttp://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenial-proposedmainmultiverserestricteduni

  • 剑指offer-翻转单词顺序列

    题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student.aamI”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“Iamastudent.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? ac代码; 1publicclassSolution{ 2publicStringReverseSentence(Stringstr){ 3String[]ss=str.split(""); 4if(ss.length==0) 5returnstr; 6Stringt=""; 7for(inti=ss.length-1;i>=0;i--){ 8if(i!=ss.length-1) 9t+=""+ss[i]; 10else 11t+=ss[i]; 12 13} 14returnt; 15} 16}复制  

  • presentation: friendship and growth

    Welcome!!!tomypresentation!,Aboutfriendship,andgrowth. Wheniwaslittle(靠过来正式),iusedtomakemanyfriends.nomatterwhotheyare!,wecaneasilybuildintimaterelationship,bysharingalmosteverything. Atthattime,friendsmeanawholeworldtome, Sowheniwentintothecollege!,iwantedtobuildandmaintainthesamekindofrelationship (平淡)Butsoonifoundmyselfwrong.incollege,friendshipseemstobemorecomplicateandsometimesutilitarian. Evenmyhighschoolbestfriends,arelosingcontactwithme(担心)becauseofourdecreasingintersection. Itseemsthat?

  • 科普帖:深度学习中GPU和显存分析

    知乎的一篇文章: https://zhuanlan.zhihu.com/p/31558973 关于如何使用nvidia-smi查看显存与GPU使用情况,参考如下链接: https://blog.csdn.net/Mr_HHH/article/details/80083803 其中在知乎的那篇文章中,有一处,我认为有错: 应为: 先乘后加算一次MACC(multipy-accumulateoperation),有的也叫MADD。 每一次乘算一次flop,每一次加算一次flop。 其中flop大约是MACC的两倍!!!

  • js常考之数组选择排序

    选择排序:    两个for循环嵌套,外循环记录每次循环开始的位置,内循环查找本次循环内的最小值;   实质是每循环一次将查到的最小值放在每次循环的最初开始的位置; 代码: //选择排序 functionarrSort3(arr){ varlen=arr.length, minIndex,nu; for(vari=0;i<len-1;i++){ minIndex=i;//记录每次循环的第一个数为该次循环的最小值索引 for(varj=i+1;j<len;j++){ if(arr[j]<arr[minIndex]){ minIndex=j;//找到每次循环到的最小值, } } nu=arr[i]; arr[i]=arr[minIndex];//将找到的最小值放在每次循环的最开始的地方; arr[minIndex]=nu; } console.log(arr); } 复制     

  • 百度搜索屏蔽csdn内容方法

    搜索内容-site:csdn.net 效果如下

  • imx6Q Android7.1 Udisk Mount

    diff--gita/core/res/res/xml/storage_list.xmlb/core/res/res/xml/storage_list.xmlindexc0cebdd..c61fc12100644---a/core/res/res/xml/storage_list.xml+++b/core/res/res/xml/storage_list.xml@@-26,11+26,11@@        android:storageDescription="@string/storage_usb"        android:primary="true"/>    <storage+       android:mountPoint="/storage/otg_storage"  

  • 图像的卷积和滤波

      图像卷积与滤波的一些知识点 1174548879@qq.com          一、线性滤波与卷积的基本概念     线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。     对图像和滤波矩阵进行逐个元素相乘再求和的操作就相当于将一个二维的函数移动到另一个二维函数的所有位置,这个操作就叫卷积或者协相关。卷积和协相关的差别是,卷积需要先对滤波矩阵进行180的翻转,但如果矩阵是对称的,那么两者就没有什么差别了。     Correlation和Convolution可以说是图像处理最基本的操作,但却非常有用。这两个操作有两个非常关

  • UART协议详解

    UART协议详解   UART简介 通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),通常称作UART。UART通信在工作中相当常见,项目中需要生成uart信号,在博客中记录下。uart是异步通信,因为它只有一根线就可以数据的通信。不像SPI,I2C等同步传输信号。所以串口的传输速度和其它协议的速度相比是比较慢的。下面具体讲解一些uart协议以及是如何通信的。  图-1 图-2 上图是uart协议传输一个”A”字符通过示波器的uart解码而得到的波形示意图。根据此图来介绍一下uart的一些基本参数。 波特率:此参数容易和比特率混淆,其实他们是由区别的。具体可以百度更清楚。但是我认为uart中的波特率就可以认为是比特率,即每秒传输的位数(bit)。一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数(bit)。 起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。 数据位:可以选择的值有5,6,7,8这四个值

  • 不想被打扰

    总是试图在找寻一个属于自己的空间,偶然发现博客园,感觉挺好,记录自己的点滴,鞭策自己的成长......时间一点点的溜走,希望在能抓住的时候,握紧多少是多少。加油!!

相关推荐

推荐阅读