软件测试知识总结
什么是软件测试呢?
主要就是通过软件测试这一步骤去查找发现预期效果和实际效果的区别和问题,对软件进行评估衡量是否能够满足设计的要求和特点。
说通俗点就是为了找出软件里面有没有bug,比如一个公司里面开发了一个购物的软件,然后我在里面买东西发现不用付款就能够结账成功然后很多人通过这软件去购买东西就会对公司造成大量的损失。
软件开发过程模型
软件开发模型分为了三个模型,首先呢是瀑布模型、快速原型模型、螺旋模型。下面我一一给大家讲讲各模型的特征。
瀑布模型
瀑布模型是线性模型的一种,在所有模型中占有重要地位,是所有其他模型的一个基础。每一个阶段执行一次,按线性顺序进行软件开发。
瀑布模型的切入点:
瀑布模型的优点:
1、开发的各个阶段比较清晰。
2、严格规定了每个阶段必须提交的文件等等。
缺点:
1、依赖于早期的需求调查不适应需求的变化。
2、瀑布模型的突出缺点是不适应用户需求的变化等等。
快速原型模型
快速原型模型是增量模型的另一种形式,在开发真实系统之前,迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,在该原型的基础上,逐渐完成整个系统的开发工作。
快速原型模型的优点:
1、克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
2、适合预先不能确切定义需求的软件系统的开发。
缺点:
1、不适合大型系统的开发(适合开发小型的、灵活性高的系统)。
2、使用前提是要有一个展示性的产品原型,一定程度上可能会限制开发人员的创新。
螺旋模型
优点:
1、减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险
2、对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标
缺点:
1、采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失
2、过多的迭代次数会增加开发成本,延迟提交时间
测试模型
测试模型分为了V模型、W模型、H模型下面我给大家简单的讲一下。
V模型
V模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件测试的V模型。
V模型大体可以划分为以下几个不同的阶段步骤:需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。
需求分析:用户需求、业务需求、需求规格说明书。
概要设计:系统架构、模块划分、模块与模块之间的接口。
详细设计:模块内部实现的逻辑和方法。
编码:实现上面的设计。
单元测试:检测代码的开发是否符合详细设计的要求。
集成测试:检测此前测试过得各组成部分是否能完好地结合到一起。
系统测试:检测已集成在一起的产品是否符合系统规格说明书的要求。
验收测试:检测产品是否符合最终用户的需求。
V模型的优点:
1、测试V模型即包含了底层测试又包含了高层测试。底层测试:单元测试,高层测试:系统测试。
2、将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束了。
缺点:
1、容易让人误解为测试是在开发完成之后的一个阶段。
2、由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难。
W模型
W模型由两个V字型模型组成,分别代表测试与开发过程。
W模型的优点:
1、更早的介入到软件开发中,能尽早的发现缺陷进行修复。
2、将测试贯穿到整个软件的生命周期中,除了代码要测试,需求、设计等都要测试
缺点:
1、对于需求和设计的测试技术要求很高,实践起来很困难。
2、对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
H模型
H模型的优点:
1、开发的H模型揭示了软件测试除测试执行外,还有很多工作;
2、软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行;
3、软件测试活动可以尽早准备、尽早执行,具有很强的灵活性;
4、软件测试可以根据被测物的不同而分层次、分阶段、分次序的执行,同时也是可以被迭代的;
缺点:
1、管理型要求高:由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将非常难以管理和控制;
2、技能要求高:H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小;
3、测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大困难;
4、对于整个项目组的人员要求非常高:在很好的规范制度下,大家都能高效的工作,否则容易混乱;
边界值
什么是边界?
因果图的基本符号