软件测试理论(一)

软件开发过程模型:瀑布模型、快速原型模型、螺旋模型。

一、开发模型—瀑布模型

1、定义:瀑布模型是线性模型的一种。每一个阶段执行一次,按线性顺序进行软件开发。
2、测试的切入点:测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露。
3、优点:开发阶段,各个阶段比较清晰;强调早期计划及需求调查;适合稳定需求的产品开发;
缺点:依赖于早期的需求调查,不适应需求的变化;
单一流程不可逆;
风险往往延至后期才显露,失去及早纠正的机会;
问题在项目后期才开始暴露;
前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败。
改良:每个阶段都可以融入小的迭代工作!
在这里插入图片描述

二、快速原型模型

1、定义:实现一个基本原型,让用户对原型进行评价,逐步调整,使其满足用户最终需求。
2、优点:适合预先不能确切定义需求的软件系统的开发。
3、缺点:不适合开发大型系统(适合开发小型的、灵活性高的系统)。
补充:螺旋模型
定义:螺旋模型将开发周期分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,螺旋模型沿着螺旋线旋转。四个方面活动:制定计划、风险分析、实施开发、客户评估。
优点:螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。
缺点:采用螺旋模型需要具有相当丰富的风险评估经验和专门知识。在风险较大的项目开发中,如果为能够及时标识风险,势必造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间。

测试模型:v模型、w模型、h模型

三、V模型

需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试
1、单元测试:又称模块测试,针对单一的程序模块进行测试。
2、集成测试:又叫组装测试,在单元测试的基础上,对所有模块进行测试。
3、系统测试:将整个软件看做一个整体来进行测试,包括功能、性能、兼容性。
4、验收测试:
(1)内测版(alpha)内部交流版本,可能存在很多bug,不建议用户安装。
(2)公测版(beta)面向所有用户,通过用户的反馈再去修改细节。
(3)候选版(gamma)与正式软件相差无几。
在这里插入图片描述
补充:
单元测试(模块测试):针对软件设计中的最小单位——程序模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可平行地独立进行单元测试。
集成测试(组装测试):在单元测试的基础上,将所有程序模块进行有序的、递增的测试,重点测试不同模块的接口部分。
系统测试:将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所允许得到软硬件环境进行测试。
系统测试在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。
阿尔法测试主要是测试人员在开发环境下的测试,贝塔测试是在实际环境中的测试,或者公司内部人员在模拟真实环境中的测试。

四、测试V模型优缺点

1、优点:包含了底层测试(单元测试)和高层测试(系统测试);清楚的标识了开发和测试的各个阶段;自上而下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段分工明确,便于整体项目的把控。
底层测试:检验源代码质量的测试。
高层测试:检验整个系统的需要。
2、缺点:自上而下的顺序导致了,测试工作在编码之后,就导致错误不能及时的进行修改;实际工作中,需求经常变化,导致v模型步骤,反复执行,返工量很大,灵活度较低。
3、改良:每个步骤都可以进行小的迭代工作。

五、W模型

1、优点:开发伴随者整个开发周期,需求和设计同样要测试;更早地接入测试,可以发现开发初期的缺陷,修复成本低;分阶段工作,方便项目整体管理。
2、缺点:开发和测试依然是线性关系,需求的变更和调整,依然不方便;如果没有写文档,根本无法执行w模型;对于需求和设计的测试要求很高,实践起来困难。
3、定义:开发一个v;测试一个v组合起来的模型(w模型也叫双v模型)
4、总结:v模型适用于中小企业,w模型适用于中大型企业(因为人员要求高),h模型人员要求非常高,很少有公司使用。

补充:h模型
测试流程
测试准备:所有测试执行活动的准备;判断是否到测试就绪点;
测试就绪点:测试准入准则,即是否可以开始执行测试的条件;
测试执行:具体的执行测试的程序。
优点:软件测试执行外,还有很多工作;软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行;软件测试可以尽早准备、尽早执行,具有很强的灵活性;软件测试可以根据被测物的不同而分层次,分阶段、分次序的执行,同时也是可以被迭代的。
缺点:管理型要求高;技能要求高;测试就绪点分析困难;对于整个项目组的人员要求非常高。
在这里插入图片描述

六、黑盒测试

1、定义:又称数据驱动测试,完全不考虑程序内部结构和特性,注重测试软件的功能需求(不管代码),只关心软件的输入数据和输出数据。
2、可发现的错误:功能不对或功能遗漏;界面错误;数据库功能访问或者处理错误;性能问题。
3、优点:不需要了解实现细节;测试人员和编程人员是相互独立的;从用户的角度进行测试,很容易接受和理解;有助于暴露任何与规格不一致或者歧义的地方。
4、缺点:不能测试程序内部特定的部位;如果程序未执行的代码无法发现;不可能做到穷举测试。

七、白盒测试

把盒子打开研究里面的程序结构和源代码。
按是否查看源代码:往往采用黑盒测试和白盒测试相结合的方式。
软件的整体功能和性能进行黑盒测试
软件的源代码采用白盒测试

八、黑盒测试分类

1、功能测试:检查实际软件的功能是否符合用户的需求。
(1)逻辑功能测试
(2)界面测试
(3)易用性测试
(4)安装测试
(5)兼容性测试
2、性能测试
(1)时间性能(事务响应时间等)
(2)空间性能(系统资源消耗)
(3)一般性能
(4)稳定性
(5)负载测试(通过负载测试来去定在各种工作负载下,系统各项性能指标的变化情况)
(6)压力测试(通过确定一个系统的瓶颈或刚好不能接受的性能点,来获得系统能够提供的最大服务级别)
补充:
静态测试:指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

九、随机测试

针对重要功能、新增加的功能、特殊情况、以前发现过重大bug的模块进行二次测试;也叫探索测试,它可以结合回归测试来使用。

十、软件测试分类

1、按测试阶段划分:单元测试、集成测试、系统测试。
2、是否覆盖源代码:
(1)白盒测试
(2)黑盒测试:1、功能测试;2、性能测试
3、是否运行:静态测试(不运行测试)、动态测试(运行程序)
4、其他:1、回归测试 2、冒烟测试 3、随机测试 4、验收测试(内测、公测、候选版)
5、是否自动化:1、人工测试 2、自动测试
补充:
灰盒测试:介于白盒测试与黑盒测试之间的一种测试,既可保证黑盒的关注点又可掌控白盒的内部结构,但不会去对内部程序功能和运行做详细了解。

十一、测试用例——测什么?怎么测?

定义:是为特定的目的而设计的一组测试输入、执行条件和预期的结果,以便测试是否满足某个特定需求。通过大量的测试用例来检验软件的运行效果,它是指导测试工作进行的依据。

十二、等价类划分法

1、定义:属于黑盒测试,不需要考虑程序内部结构,只需要考虑程序的输入规格即可。它将不能穷举的测试过程进行分类,从而保证设计出来的测试用例具有完整性和代表性。
2、思考步骤:
1、确定有效等价类和无效等价类
2、有效等价类划分(题目条件,还要注意边界值(极值),中间再随意找个值)
3、无效等价类划分(跟有效等价类相反,其他特殊情况(中文、英文、特殊符号、空格、空))
注意:两个框要一个正确,一个错误,这样才能准确的判断;一定要根据需求要判断预期结果。

十三、等价类细节

1、考虑输入长度;2、考虑输入类型;3、组成规则;4、是否为空;5、是否区分大小写;6、是否重复;7、是否去除空格

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值