软件测试基本理论

软件开发流程

了解软件测试,有必要先了解软件开发的一般流程

软件开发的一般流程:用户需求→需求分析→概要设计→详细设计→编码→测试

常见软件开发模型:V模型,W模型


V模型

(图片来源网络)

V模型通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。V模型很明确地标明了测试阶段和开发过程期间各阶段的对应关系。

缺点:V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证。需求是否得到满足,要到后期的验收测试才能知道。


W模型

(图片来源网络)

相对于V模型,W模型增加了软件开发各阶段中同步进行的验证和确认活动。W模型中,测试与开发是同步进行的,测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等开发输出的文档同样要测试。W模型可以尽早发现软件缺陷,节约开发成本。

缺点:在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。

软件测试类型分类

按开发阶段分类

根据开发的阶段,可以将测试分为:单元测试、集成测试、系统测试、确认测试

• 单元测试

单元测试:指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,会根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。单元测试一般由开发人员完成。

测试内容:模块接口测试、局部数据结构测试、边界条件测试、执行路径测试和出错处理测试。

• 集成测试

集成测试:指在单元测试的基础上,将已测试过的模块按照设计要求进行组装集成。目的在于检验与软件设计相关的程序结构问题。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。

测试内容:模块间数据传输是否丢失、模块间功能是否冲突、全局数据结构是否被异常修改、模块集成功能是否符合预期、单模块缺陷对系统的影响是否可控。

• 系统测试

系统测试(确认测试):指在集成测试的基础上,检验软件是否满足需求规格说明中的功能和性能需求,确定软件配置完全、正确。同时,检验软件产品能否与实际运行环境中整个系统的其他部分(如:硬件、数据库及操作人员)协调工作。

测试内容:系统是否符合需求规格说明、软件配置复查、健壮性(容错能力、恢复能力)

• 验收测试

验收测试:是检验软件产品质量的最后一道工序,主要让用户对软件进行测试,并重新执行已经做过的测试的某个子集,保证没有引入新的错误。验收测试是以用户为主的测试,软件开发人员和质量保证人员也应参加。验收测试由用户参加设计测试用例,通过用户界面输入测试数据,分析测试的输出结果。一般使用生产中的实际数据进行测试。在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。α测试β测试用于发现可能只有最终用户才能发现的错误。

α测试可以是一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试是在受控制的环境下进行的测试。

β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。

按代码是否运行分类

根据测试是否运行代码,可以分为静态测试、动态测试

•静态测试

静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

测试内容:代码检查(包括代码走查、桌面检查、代码审查)、静态结构分析、代码质量度量。

•动态测试

动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。

测试内容:构造测试用例、执行程序、分析程序的输出结果

按是否查看代码分类

根据是否关注产品内部代码,可以分为白盒测试、灰盒测试、黑盒测试

•白盒测试

白盒测试:又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异

•灰盒测试

灰盒测试:介于白盒测试与黑盒测试之间,灰盒测试多用于集成测试阶段,它不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。

•黑盒测试

黑盒测试:也称功能测试,是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的,黑盒测试不关注代码内部构造,主要检查UI和功能是否符合设计书。

其他测试分类

•冒烟测试

冒烟测试:是指在正式测试前,在新编译的版本中对软件基本的功能进行测试,确保软件基本的功能正常,整体流程可以通,可以进行后续的正式测试工作。

•回归测试

回归测试:贯穿整个测试的各个阶段的测试活动,其目的是检验已经发现的缺陷有没有正确修改和修改过程中有没有引发新的缺陷。策略:1)完全重复测试2)选择性重复测试

•随机测试

随机测试:是指测试者根据经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。

【参考】

《软件测试基础 》西安电子科技大学出版社.周元哲.2011.6

软件测试概念及分类整理汇总 - Findyou - 博客园

集成测试常见策略 - CSDN博客

系统测试

静态测试

黑盒测试

随机测试

V模型

W模型

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容

  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,190评论 2 126
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,723评论 5 100
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 21,956评论 7 278
  • 1****、问:你在测试中发现了一个bug****,但是开发经理认为这不是一个bug****,你应该怎样解决? 首...
    蛋炒饭_By阅读 5,292评论 1 94
  • 清晨,太阳还未跨过地平线,虫儿还未结束一天的鸣唱,一道身影开始穿梭在城市的林荫道上。黄鹂喜欢奔跑,习惯流汗,那是她...
    周不比尔阅读 463评论 0 0