软件测试(一)
软件测试(一)
总所周知,软件测试是也是一门技术活,相对于Web开发而言,软件测试则相对来说,对于代码要求并没有那么高。
不过这并不能说明做软件测试并不需要技术,恰恰相反,软件测试工作严谨,和软件开发一样需要对工作抱有高度的精力,更甚要用更多的耐心和观察力。
能够在成千上万条码海中去寻找出那一部分出现BUG、错误、内容不正确、需求不达标的功能。这往往需要着更高的精力。
软件开发,一般情况下是会划分出3种模型,分别为:瀑布型、快速原型模型、螺旋模型。
软件测试和软件开发模式有着密不可分的联系,作为一个合格且出色的软件测试人员,要充分的理解软件开发模式。从而在其中发挥自己的价值。
瀑布模型:(如图)
是所有其他模型的一个基础模型。占有模型中重要地位。
软件测试人员往往会在实现功能上进行切入,然后开始对软件进行BUG测试。
快速原型模型:(如图)
螺旋模型:(如图)
三模型优点及其缺点:
模型名称 | 优点 | 缺点 |
瀑布模型 |
|
|
快速原型模型 |
|
|
螺旋模型 |
|
|
测试模型:
软件测试和软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分。
在软件工程、项目管理、质量管理得到规范化应用的企业,软件测试也会进行的比较顺利,软件测试发挥的价值也更大。
随着测试过程的管理和发展,常见的模型分为三种:V模型、W模型、H模型。
V模型:
优点:
测试V模型包含底层测试、高层测试:
底层测试:检验源代码质量的测试,如:单元测试;
高层测试:检验整个系统的需要,如:系统测试;
V模型清楚标识出了软件的多个开发阶段。
采用自顶向下逐步求精的方式,当所有阶段都完成之后,软件开发过程也随之结束。
缺点:
最大的缺点就是它自身的顺序问题。一般在软件开发前期,软件测试没有切入,到后期的时候,错误就已经很多,导致时间不够,甚至无法发现,往往无从修改。
返工量非常大,灵活性比较低
W模型:
优点:
软件开发和软件测试同步,测试不仅仅是程序,还包括:需求、概要设计。
更早地接入测试,可以在开发初期发现却行,降低成本进行修改。
便于控制项目过程。
缺点:
软件开发和软件测试互相依赖,保持一前一后的关系,无法支持迭代、自发性、和需求变更调整。
很多产品项目,在执行过程中不产生文档,W模型无法适用。
技术含量太高,对于小型公司要求很高,很难实践。
H模型:
优点:
揭示了软件测试除测试执行外,还有很多工作。
软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行。
软件测试活动可以尽早准别、尽早执行,具有很强灵活性。
可以根据测物不同而分层次,分阶段,分成次序执行,也可以被迭代。
缺点:
管理学要求高。
技能要求高。
测试就绪点分析困难。
对整个项目组的人员要求非常高。
软件测试分类:
单元测试:
又称模块测试,针对软件设置中的最小单位——程序模块,对程序中某个特定、指定的模块进行单独的、精准的测试,能够更精准的找出在这个模块中的错误BUG。
集成测试:
又称组装测试,通常在单元测试的基础上进行有序的、递增的测试。简单来说,就是将很多个单元、模块合并在一起,进行一个较大、较多的单元测试。
系统测试:
将整个软件系统看为一个整体进行测试,包括对功能、性能、软件运行的软硬件环境进行测试。
软件测试分类:(黑盒、白盒、灰盒)
软件测试一般分为三种测试方法:黑盒测试、白盒测试、灰盒测试。
黑盒测试:
又称数据驱动测试,完全不考虑代码内部结构和内部特性,更加注重测试软件的功能需求,只关心数据输入和输出。
白盒测试:
与黑盒测试相反,白盒测试则会去注重内部结构和内部特性。一般情况而言,白盒测试要求较高,需要有一定程序代码知识含量的技术人员从业。
灰盒测试:
灰盒测试介于两者之间,只会介入一小部分源代码进行查看。
验收测试:(常见)
α测试:内侧版本
β测试:公测版本