软工总结(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

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义