软工总结(20—23)——软件测试

2024-08-26 04:58
文章标签 总结 软件测试 23 20 软工

本文主要是介绍软工总结(20—23)——软件测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

          在软件的分析、设计、实现等开发阶段尽管开发人员采取了许多保证软件产品质量的方法,但是错误和缺陷是不可避免的,而软件测试时提高软件质量和可靠性的重要手段之一。软件测试人员要确信的是一个系统肯定是有错误的,如果测试阶段没有发现问题,只能证明测试的方法不对。
          而这次视频讲软件测试这部分讲的也比较细,而且设计的知识面也比较广泛。他在讲每一个知识点的时候都会联系到其他的知识点,这是有利于我们学习的。但是也给总结带来了一些难度,为了让总结思路清晰,和方便突出重点。我把软件测试、分为基本概念、找问题和解决问题。
          基本概念
                 重要性和目的: 一个东西为什么存在,它存在的价值是什么?往往会从它的重要性和目的两方面介绍。开始介绍软件测试也是如此,刚开始就以美国飞往火星的火箭爆炸,是因为一个循环中的一个逗号,写成了小数点举例,说明软件测试的重要性。然后又说软件测试的目的:(1)测试是一个程序执行的过程,其目的在发现错误;(2)一个好的测试用例很可能发现至今尚未发现的错误;(3)一个成功的测试用例能发现至今尚未发现的错误。其实总的来说测试用例的目的就是发现错误。
                 特点: 然后想了解这个东西,就要知道它的特点。软件测试的特点是(1)软件测试的开销大。(2)不能进行穷举测试。举例:输入两个整数,输出一个数。假如在32位计算机上运行,1m执行一次。那么穷举测试需要 2^32 x 2 ^32 = 2^64 共需5亿年。 (3)软件测试难度大。是指即不能进行穷举测试,还要找到尽可能多的问题,所以难度大。
                 原则:知道了这个东西的目的、和特点,下面要想用好这个东西,就要知道它的原则。只有遵循它的原则它才能更好地为你服务 。在视频中讲到了很多软件测试的原则,我把它大致分为三个阶段。 
                测试前:(1)应尽早地和不断地对软件进行测试。在视频中也提到,错误发现的越早,连带性越弱,越容易解决。(2)开发人员避免测试。这个我们应该挺有感触的,在敲机房的时候,自己调试没有什么错误,一到师傅那是全部是错啊!(3)注重测试用例的设计和选择。(测试用例解释)(4)严格执行测试计划。测试计划是高技术人员更具系统特性和易出错点还有经验编写的,测试人员一定要严格的执行,才能发现尽可能多的问题。  测试中:(1)注意群集现象。也就是在出错比较多的地方,要重点测试 。(2)全面检查每一个测试结果。对测试用例产生的结果一定要全面、细致的检查。分析结果时候正确、合理。是否存在错误。 测试后:(1)妥善保管测试文档。测试计划、测试用例、测试结果,出错统计等文档都要妥善保管,为以后的维护提供方便。

           找问题:基本概念介绍完后,对软件测试有了一个大致的了解。下面来说一下具体怎样找出软件中可能存在的问题。我把软件测试找系统中可能存在的问题分为三部分:计划、步骤、方法。而其中方法是为步骤服务的,所以将在步骤中穿插讲解,不在单独讲解。
                  计划:凡事预则立不预则废,做任何事情都要有计划,更何况是这个集体合作型的。所以在测试之前要提前编写文档,制定计划。(1)测试计划。测试计划是测试软件的指导性文档,它吧包含了测试的范围、方法、工具、进度、测试的项目于特性。在测试计划中会明确说明需要测试的任务和每个任务的负责人。(2)测试规范。规范测试工作的一些原则。(3)测试用例:所用测试实例。
                  步骤:有了计划之后,接下来就要说一下软件测试的具体步骤。这里需要说一下的是软件测试不想我们平时的代码调试。软件测试涉及到需求分析、软件设计、软件实现这些软件开发的全过程。
                   (1)单元测试也称模块测试。单元测试的目的是检查模块的内部错误。因此,测试方法以白盒法为主。
                     单元测试的内容:模块接口、局部数据结构测试、重要路径测试、边界条件测试、错误处理测试
                     驱动模块:模拟主程序或者调用模块的功能,用于向被侧模块传入数据,或者接受、打印被测模块返回的数据。也就相当于他的上级模块。     桩模块:也称加模块,用于模拟 被测模块的调用模块。相当于下属模块。
                  (2)集成测试。在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试,也叫联合测试或组装测试。 集成测试重点测试模块接口、设计测试所有使用的驱动模块和桩模块。主要方法是黑盒法。
                               集成测试的方法有两种:非渐曾式测试 和渐增式测试。渐增式测试又分为:自顶向下组装、自底向上组装、混合增值。
                 (3)确认测试。验证系统的功能、性能等特性是否满足需求规格说明。  主要运用黑盒法。
                 (4)系统测试。这一步就不在单单的对软件进行测试了,要求软件和硬件结合,构成可以运行的系统进行测试。测试的方面有:功能、性能、安全性、恢复、强度、文档定。
                 (5) α 测试、 β 测试 。 α 测试  主要是用户测试,开发人员在现场记录出现的错误。  β 测试是多个用户实际测试,然后用户反应出错的情况,其实相当于免费使用。 
         (6)验收测试 是测试阶段的最后测试,以用户测试为主,测试方法、测试过程和系统测试基本相同。主要以黑盒测试为主。
          小结:1、软件测试先是以功能为主(白盒法),看功能是否都实现了。然后以结构为主(黑盒测试)看软内部结构是否完整,清晰,合理。2、 软件测试由小到大,由简到繁 。
           
        解决问题
           当问题找出以后接下来就是解决问题,解决问题最重要的还是靠经验和分析。当然这是比较费脑筋的,如果想省事就只有套公式了。
        
          总结:从软件测试的复杂程度,感悟到程序员标准和文档的重要性。如果开发一个软件完全按照自己的思路去编写,那么后面的软件的组合时会出很多问题,而且也不利于后期的维护。所以软件开发要有全心全意为人民服务的理念。
             


                            

这篇关于软工总结(20—23)——软件测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107608

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个