分为:
瀑布模型(需求分析-->设计(ui(ps))-->编码-->实现-->软件测试-->完成-->维护)
瀑布模型是线性模型的一种,是其他模型的一个基础
瀑布模型的优点:开发的各个阶段都比较清晰 强调早期计划及需求调查
适合需求稳定的产品开发
瀑布模型的缺点:做新的产品不适合用瀑布模型 依赖于早期的需求调查,不适合需求的变化
单一流程不可逆 风险往往延到后期才显露,失去及早纠正的机会 问题在项目后期才暴露
前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败
改良:用瀑布模型的线性思想,细化各个阶段,逐步在某些重要关注的阶段融入小的迭代工作
快速原型模型
实现一个基本原型让用户对原型进行评价,逐步调整,使其满足用户最终需求
大白话讲的话就是先做个大纲出来再一步一步抠细节
优点:克服了瀑布模型的缺点,更好地满足用户的需求并减少由于软件需求不明确带来的项目开发风险,适合预先不能确切定义需求的软件系统的开发(适合需求不明确,原来有个客户来了就说我要做个网站别的需求几乎没有,说按照人家优酷的去做,结果做的当中我们按照这种快速原型模型,因为这种抄别人的又不能一样所以我们先做出来了一个大纲)
缺点:不适合大项目使用,只适合小项目,而且灵活度比较高的,就是简单的项目。
螺旋模型
螺旋模型用的相当少
和瀑布模型相符合也就是把瀑布模型的测试执行若干遍
优点:螺旋模型循环之前都必须首先进行风险测试评估
缺点:用的人经验必须经验丰富有丰富的风险评估,不然会耗费客户大量的时间和金钱
描述测试用例设计的完整过程?
首先根据需求文档、概要设计、测试计划、测试方案细分出各功能模块的测试项,再根据各测试项,按照概要设计、详细 设计以及测试方案中测试的覆盖率细分出测试子项,最后按照测试子项、根据测试用例的设计方法(等价类划分法、边界 分析法、因果图和错误猜测法)书写测试用例!
软件测试和软件工程息息相关
软件测试的模型
v模型
设计就是要出一个设计稿(psd设计稿)
单元测试就是模块测试比较独立,就是软件设计测试的最小的单位-程序模块 假如网站上一些下拉菜单、轮播图那些独立的小模块进行测试就是单元测试也叫模块测试
集成测试又叫组装模式,通常是在单元测试的基础之上,就是把单元测试的东西合在一起再测一遍
系统测试分为前期、后期。前期是做功能测试,后期看性能和在不同的软硬件环境中兼容性
验收测试 :
alefa测试 是内测版本,不面向普通用户,内部交流版本,可能存在很多bug,不建议用户安装。
bata测试是公测版本,面向所有用户,通过用户将结果反馈给开发人员,然后开发人员有针对的改下
gama测试是软件正式发行的候选版,这个版本也就是一个后选正式版,与正式版相差无几。
V模型:
类似于开发模型里面的瀑布模型,只不过v模型是分为左半边右半边而已,详细的描述了开发过程和测试过程的阶段对应的关系
优点:既包含了底层测试(单元测试)有包含了高层测试(系统测试),各个阶段也非常清晰。采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段
缺点:自上而下的顺序导致了错误不能及时的进行修改,跟瀑布模型线性缺点一样,需求经常变化,导致v模型步骤反复执行,灵活度低!
改良:每个步骤都融入小型的迭代工作!
w模型:
就是在需求和设计阶段加入了测试活动
别名双v模型 把开发和测试放在一起并行实现,尽早进入测试工作越早完成的就越快,一般中大型企业用w模型,小中型公司一般用v模型
优点:开发伴随着整个开发周期,需求和设计同样要测试,可以发现初期的缺陷,修复成本低,分阶段工作,方便项目整体管理。
确点:开发和测试依然是线性的关系,需求的变更和调整,依然不方便,如果没有文档,根本无法执行w模型,对于项目组成功的技术要求更高!
H模型:
是完全独立的模型。
测试准备,所有测试执行活动的准备,判断是否到测试就绪点
对整体流程都必须懂才行
软件测试分类:
按测试阶段划分:单元测试、集成测试、系统测试
是否覆盖源代码:白盒测试、黑盒测试、和灰盒测试
是否运行:静态测试、动态测试
其他:回归测试、冒烟测试、随机测试、验收测试
是否自动化:人工测试、自动测试
黑盒测试又分为:功能测试和性能测试 功能测试又分为逻辑功能测试、界面测试、易用性测试、安装测试、兼容测试
性能测试又分为一般时间性能、空间性能、性能测试、稳定性能测试、负载测试、压力测试
黑盒测试:又称数据驱动测试,注重测试软件的功能需求,只关心软件的输入数据和输出数据,不考虑程序内部结构和内部特征
白盒测试:研究里面的程序结构和源代码
一般都是用黑盒和白盒相结合简称灰盒测试
按照是否来运行分类的测试:
静态测试 指不实际运行被测软件,而是静态地检查程序代码、界面或者文档中可能存在的错误过程
动态测试 指时间运行被测程序,输入相对应的测试数据,检查输出的结构和预期的结构是否相符的过程
回归测试:就是给程序员提了一个bug,然后人家改了之后二次进行检测,我们在二次进行检测的时候不光要测试这个bug然后 把和他有关联的也测一遍这叫回归测试
随机测试:针对被测软件的重要功能、新增加的功能、特殊情况和以前发生过重大bug的模块进行二次测试,可以结合回归测试一起进行,也叫探索测试
冒烟测试:冒烟测试就是在一个新版本出来的时候,将软件的全部功能过一遍,看有没有什么大问题。如果功能可以正常运行,不会影响测试进行,那么这个版本就可以真正开始测试了。如果功能有重大问题或影响测试进行,那么这个版本就是不合格的,不用进行进一步的测试。则打回开发那边重新开发;