软件工程中软件测试的必要性

合集下载

软件工程(简答题)

软件工程(简答题)

1、简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

答:结构化范型要点:结构化范型也称生命周期方法学,属于传统方法学。

传统的软件开发方法大部分采用瀑布模型。

这种模型要求每一阶段都以前一阶段形成的文档为基础完成工作。

每一阶段将要完成时,都要求开发人员进行验证或确认。

瀑布模型要求在软件产品生成之前对用户需求进行尽可能精确的、完全的刻画。

但要完成这种任务相当困难。

优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度.缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化时,开发出的软件往往不成功;而且维护起来仍然很困难。

面向对象范型四个要点:(1)面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由简单的软件对象组合而成。

(2)所有对象划分成各种对象类,每个对象都定义了一组数据和一组方法。

(3)按照子类(派生类)和父类(基类)的关系,把若干个对象类组成一个层次结构的系统(类等级)。

在派生类中对某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准,也就是说,低层的特性将屏蔽高层的同名特性。

(4)对象彼此之间仅能通过传递消息互相联系。

面向对象范型主要优点(1)按照人类习惯的思维方法,对软件开发过程所有阶段进行综合考虑;(2)软件生存期各阶段所使用的方法、技术具有高度的连续性;(3)软件开发各个阶段有机集成,有利于系统的稳定性】6、非渐增式测试与渐增式测试有什么区别?答:【区别:1、非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。

而渐增式测试往往把单元测试与集成测试和在一起,同时完成。

2、非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。

渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的三要素不包括以下哪一项?A. 工具B. 方法C. 过程D. 环境答案:D2. 软件需求分析阶段的主要任务是确定软件的()。

A. 功能需求B. 性能需求C. 界面需求D. 所有选项答案:D3. 软件测试的目的是()。

A. 发现软件中的错误B. 证明软件是正确的C. 验证软件是否满足需求D. 所有选项答案:D4. 以下哪一项不是软件维护的类型?A. 纠错性维护B. 适应性维护C. 完善性维护D. 开发性维护答案:D5. 软件项目管理的主要目标是()。

A. 提高软件质量B. 控制成本C. 缩短开发周期D. 所有选项答案:D6. 瀑布模型的主要缺点是()。

A. 缺乏灵活性B. 难以适应需求变化C. 无法并行开发D. 所有选项答案:D7. 敏捷开发方法的核心理念是()。

A. 以文档为中心B. 以人为中心C. 以过程为中心D. 以工具为中心答案:B8. 软件配置管理的主要目的是()。

A. 确保软件的一致性B. 跟踪软件的变更C. 控制软件的版本D. 所有选项答案:D9. 以下哪一项不是软件工程的原则?A. 抽象B. 模块化C. 复用D. 随机性答案:D10. 软件工程的目标是()。

A. 开发高质量的软件B. 提高软件生产率C. 降低软件成本D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件需求分析阶段可能包括以下哪些活动?A. 需求收集B. 需求分析C. 需求规格说明D. 需求验证答案:ABCD2. 软件测试的类型包括以下哪些?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD3. 软件维护的常见原因包括以下哪些?A. 适应环境变化B. 修正软件缺陷C. 提高软件性能D. 增加新功能答案:ABCD4. 软件项目管理的关键活动包括以下哪些?A. 项目规划B. 项目监控C. 项目沟通D. 风险管理答案:ABCD5. 软件工程中的常见开发模型包括以下哪些?A. 瀑布模型B. 螺旋模型C. 敏捷模型D. 增量模型答案:ABCD三、判断题(每题2分,共10分)1. 软件工程的目标是开发出零缺陷的软件。

软件测试在Web开发中的应用

软件测试在Web开发中的应用

软件测试在Web开发中的应用作者:沈敏敏来源:《计算机光盘软件与应用》2013年第20期摘要:Web开发在网页应用中起到了很重要的作用,促进了计算机网络的不断发展。

Web 开发作为一门程序设计开发语言,在程序开发中难免会遇到开发质量及应用质量问题,因此,为了提高Web开发质量,本文结合实际情况,对软件测试进行了概括分析,介绍了软件测试的测试方法,并分析了软件测试在Web开发中的一些应用情况,有利于更好的促进Web开发。

关键字:软件;测试;web;开发中图分类号:TP311.521 Web开发进行软件测试的必要性Web开发在网页设计中应用颇为广泛,给人们的网络生活带来了无穷的乐趣,而Web开发作为一门程序语言,利用javascript以及html5等开发语言,在编程中很容易因为各种因素,如程序员的编程风格以及程序架构等问题,导致Web开发质量无法达到实际效果,因此,为了提高Web开发质量,确保Web开发能够有效的为用户提供更好的界面,需要做好质量把关工作。

软件质量作为软件编程中重要的一方面,如果在使用中,科学有效的进行测试,不但不会消耗大量的时间,而且还可以极大的提高工作效率,减少不必要的错误,降低研发成本,也正因如此,现在软件行业,更加重视软件测试,使得软件测试贯穿于项目的整个过程。

软件测试随着人们的不断重视,发展更加全面,软件测试应用到Web开发中会质的提高Web开发质量,基于此,在Web开发中进行软件测试是非常有必要的。

2 Web开发及软件测试特点解析2.1 软件测试软件测试是软件生命周期中周期最长的一部分,它从软件建立到软件可以运行,之后在软件后期维护中,都起着非常重要的作用。

软件测试的重要性就在于通过软件测试,可以对软件的运行质量,代码结构以及性能要求有宏观的了解和认识,更好的检验软件代码是否满足项目的规定需求,实现用户的要求。

因此,在近几年,人们开始更加重视软件测试的质量问题,对软件做出功能评估工作,实现软件质量保证的重要关键步骤。

软件工程期末复习题答案

软件工程期末复习题答案

软件工程期末复习题一、选择题1.软件测试的目的是()。

A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件测试中白盒法是通过分析程序的()来设计测试用例的。

A)应用范围B)内部逻辑C)功能D)输入数据3.黑盒法是根据程序的()来设计测试用例的。

A)应用范围B)内部逻辑C)功能D)输入数据4.为了提高软件测试的效率,应该()。

A)随机地选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例5.与设计测试用例无关的文档是()。

A)项目开发计划B)需求规格说明书C)设计说明书D)源程序6.测试的关键问题是()。

A)如何组织软件评审B)如何选择测试用例C)如何验证程序的正确性D)如何采用综合策略7.软件测试用例主要由输入数据和()两部分组成。

A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析8.成功的测试是指运行测试用例后()。

A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误9.下列几种逻辑覆盖标准中,查错能力最强的是()。

A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖10.在黑盒测试中,着重检查输入条件组合的方法是()。

A)等价类划分法B)边界值分析法C)错误推测法D)因果图法11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。

A)系统功能B)局部数据结构C)重要的执行路径D)错误处理12.软件测试过程中的集成测试主要是为了发现()阶段的错误。

A)需求分析B)概要设计C)详细设计D)编码13.不属于白盒测试的技术是()。

A)路径覆盖B)判定覆盖C)循环覆盖D)边界值分析14.集成测试时,能较早发现高层模块接口错误的测试方法为()。

A)自顶向下渐增式测试B)自底向上渐增式测试C)非渐增式测试D)系统测试15.确认测试以()文档作为测试的基础。

软件工程复习题(带答案)

软件工程复习题(带答案)

软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。

A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。

试论软件测试在 Web 开发中的应用问题

试论软件测试在 Web 开发中的应用问题

应该在特定 的时 间内,通过软件测试 ,对于软件工程 中的隐藏 会在不及 时进行释放 时产 生,当这种情 况长 期存 在时,就可 能 问题进行分析 。可见 ,软件测试对于用户 的无错要求具有重要 导致软件功 能出现 问题。所 以,内存 申请和释放工作则是 We b
的意义 。 代码 错误类型 的有效 的解决办法正是通过 软件测试 而 获得,另外 ,对于 一些额外 功能而导致的开发错误 ,可 以直接 删 除本版本功能代码 。 2 . 2 we b开发特 点 。网页编程 的重要实现方式就 是 We b开 发,当前的越来越丰富 的 We b开发技术也应用十分广泛 ,主 要体现 出以下几个方面特 点: 第一,We b开发呈现 出简单性 的特 点。人们对于计算机技 开发中需要进行 安全性检测的重要 内容 。 4 、结 束 语 软件测试工 作是为了保证 We b 开发 的质 量,以及 保证 更 加 完 善 的功 能 。 代 码 结 构 和 代 码 功 能 的检 测 工 作则 是加 强软 件 测试在 We b开发中的应用的主要 内容 ,这样可 以保证 We b开 发健康 快速 发展 。 参考文献
1 、We b开 发进 行软 件测试的必要性 对 于一 门程序 设计 语言 的 We b 开发 来说 ,通过 相关 的 H T ML 5以及 J a v a s c r i p t 等开发语言 ,广泛应用 于网页设计 中, 虽然极大丰 富了人们 的网络 生活,但 是,由于各种 因素存在于 编程过程 中,无法很好保证 We b开发质量 ,比如,不合理的
试论软件测试在 Wຫໍສະໝຸດ b开发 中的应用问题 余 沫 ,甘/ i , 辉 ( 重庆广汇供 电服务有 限责任公 司信 息通信分公司,重庆 4 0 4 1 0 0 )

软件工程习题及答案

软件工程习题及答案一、选择题:1。

为了提高测试的效率,应该。

A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2。

与设计测试数据无关的文档是。

A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。

A、数据流B、数据流图C、数据库D、数据结构4。

概要设计的结果是提供一份.A、模块说明书B、框图C、程序D、数据结构5。

需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。

A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。

A、1/6B、1/5C、1/4D、1/37。

变换型和事务型是程序结构的标准形式。

从某处获得数据,再对这些数据作处理,然后将结果送出是属于.A、变换型B、事务型8. PAD(Problem Analysis Diagram)图是一种工具.A、系统描述B、详细设计C、测试D、编程辅助9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的.A、总貌B、细节C、抽象D、软件的作者10. 数据流图中,当数据流向或流自文件时, 。

A、数据流要命名,文件不必命名B、数据流不必命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不同的D、数据流和文件均不要命名,通过加工可自然反映出11。

分析员是。

A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导12。

在软件开发中,有利于发挥集体智慧的一种做法是.A、设计评审B、模块化C、主程序员制D、进度控制13。

在开发软件时,可用来提高程序员的工作效率.A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机14。

软件工程期末试题及答案

软件工程期末试题及答案(六)选择题1.软件测试的目的是()。

A)试验性运行软件B)发现软件错误C)证明软件正确D)找出软件中全部错误2.软件测试中白盒法是通过分析程序的()来设计测试用例的。

A)应用范围B)内部逻辑C)功能D)输入数据3.黑盒法是根据程序的()来设计测试用例的。

A)应用范围B)内部逻辑C)功能D)输入数据4.为了提高软件测试的效率,应该()。

A)随机地选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)选择发现错误可能性最大的数据作为测试用例5.与设计测试用例无关的文档是()。

A)项目开发计划B)需求规格说明书C)设计说明书D)源程序6.测试的关键问题是()。

A)如何组织软件评审B)如何选择测试用例C)如何验证程序的正确性D)如何采用综合策略7.软件测试用例主要由输入数据和()两部分组成。

A)测试计划B)测试规则C)预期输出结果D)以往测试记录分析8.成功的测试是指运行测试用例后()。

A)未发现程序错误B)发现了程序错误C)证明程序正确性D)改正了程序错误9.下列几种逻辑覆盖标准中,查错能力最强的是()。

A)语句覆盖B)判定覆盖C)条件覆盖D)条件组合覆盖10.在黑盒测试中,着重检查输入条件组合的方法是()。

A)等价类划分法B)边界值分析法C)错误推测法D)因果图法11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是()。

A)系统功能B)局部数据结构C)重要的执行路径D)错误处理12.软件测试过程中的集成测试主要是为了发现()阶段的错误。

A)需求分析B)概要设计C)详细设计D)编码13.不属于白盒测试的技术是()。

A)路径覆盖B)判定覆盖C)循环覆盖D)边界值分析14.集成测试时,能较早发现高层模块接口错误的测试方法为()。

A)自顶向下渐增式测试B)自底向上渐增式测试C)非渐增式测试D)系统测试15.确认测试以()文档作为测试的基础。

软件测试面试题

软件测试面试题软件测试面试题11.等价类划分常见的软件测试面试题划分等价类:等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.2.边界值分析法边界值分析方法是对等价类划分方法的补充。

测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.3.错误推测法基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的'设计测试用例的方法.错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.例如,在单元测试时曾列出的许多在模块中常见的错误.以前产品测试中曾经发现的错误等,这些就是经验的总结。

还有,输入数据和输出数据为0的情况。

输入表格为空格或输入表格只有一行.这些都是容易发生错误的情况。

可选择这些情况下的例子作为测试用例.4.因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等.考虑输入条件之间的相互组合,可能会产生一些新的情况.但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多.因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.这就需要利用因果图(逻辑模型).因果图方法最终生成的就是判定表.它适合于检查程序输入条件的各种组合情况.5.正交表分析法有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。

软件测试技术的简单探讨

2 1 白盒 测 试 技 术 .
取 假 的 判 断 分 支 也 有 4个 : I B≠0 A≤ l B 0 A≤ l B≠ A> , ; ,= ; , 而 通 过 测 试 数 据 条 件 组 合 可 以 使 上 面 的 8种 组 合 每 种 至 少 出 现一 次 : ( ) = , = , = ( 行 路 径 sc e ) 1A 2 B 0X 4 执 ab d ;
1 软件测试 概述
[ 文章编号]17 — 142 1)30 3— 2 63 09 ( 02- 0 10 0
软 件 测 试 是 由 人 来 执 行 ,在 实 际 实 施 过 程 中 虽 然 应 用 了很 多 保 证 软 件 质 量 的 方 法 。 难 免 还 会 犯 错 误 , 些 错 误 或 缺 陷 就 但 这 隐 藏 在 软 件 产 品 中 。如果 不 排 除 将 会 带 来 严 重 的 生命 和 财 产 损
图 1 测试 程序
品 。 须 建 立 在 有 效 的 软 件 测 试 基 本 方 法 之 上 。 样 才 能节 省 测 必 这
试时间和开支。
如 图 l 示 . 8种 可 能 的条 件 组 合 : 所 有 取 真 的 判 断 分 支 有 4个 : > , = ; 2 X> ; = , A I B 0 A= , I A 2 X≤ l ;

失 ,比 如美 国爱 国者 导 弹 防 御 系 统 的 跟 踪 不 准 确 、 n o s 0 0 Wid w 0 2
安 全漏 洞 等 。在 这 样 一 个 背 景 下 提 出 了 软 件 测 试 的 概念 。 软 件 测 试 是 一 个 找错 的 过 程 , 是 一 个 执 行 程 序 的 过 程 , 也 软
要 是 检 查 软 件 的表 示 和 描 述 是 否 和 需 求 一 致 .是 否 有 冲突 或 者 歧义 ; 动态 测 试 主要 是依 据 白 盒 测 试 的 用 例 设 计 来 实 现 . 括 程 包 序插 桩 、 辑 覆 盖 、 本 路 径 测 试 等 。 逻 基 所 谓 覆 盖 就是 想 做 到 全 面 而 无 遗 漏 的 测 试 . 然 而 在 实 际 的
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程中软件测试的必要性
1软件工程提升软件健壮性分析
软件工程目前一直缺少一个明确的定义,但是目前业内专家都一致认
为软件工程一般分为需求分析、设计、编码及测试4个环节。其中前
面3个环节是整个软件的编写,而最后1个环节的软件测试,则是通
过各种专业测试方法来测试软件是否满足软件工程下的10种特性:可
修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应
性、可移植性、可追踪性和可互操作性。

2当前软件测试的现状
从对软件工程的分析来看,软件测试是保证软件最终健壮性的最后一
个工序。但是,当前很多软件设计公司,在软件测试方面投入的人力
物力都非常低,甚至没有专门的软件测试部门,而是由一些软件设计
人员兼职。虽然这样也有了所谓的软件测试这道工序,显然因为软件
设计人员本身的先入为主,所以在软件测试的过程中,往往不容易发
现潜在的问题。另外有的软件测试人员仅仅把软件推到市场上,部分
使用人员来进行测试,虽然这也是一种测试方法,但是这种由用户测
试的软件测试环节,更多的是在软件的操作体验的测试,并不能够发
现软件潜在的bug,正确的软件测试流程,应该设计专业的测试软件,
通过白盒测试的方法来针对软件代码进行测试。而上述的仅仅测试界
面和操作,那只是软件测试中的黑盒测试法,只有综合白盒和黑盒,
才可能获得更好的软件测试效果。但是,目前能够综合这2种测试方
法的专业软件测试部门,还是非常稀缺的。这自然导致了国内整个软
件行业的软件健壮性存在缺陷的主要原因之一。

3软件测试重要性分析
3.1软件危机下凸显软件测试的重要性
软件危机一直是IT行业的最重要的话题,其实在软件危机这个名词
出来之前,软件工程就已经初步有了核心流程,不过正是因为很多专
家有着自己的理论,所以让软件工程这门技术的解释出现了很多不同
的版本,不过在众多版本中,软件测试始终占据一个重要的模块。软
件危机常见的表现就是因为软件在开发的过程中,成本失控、时间跳
水、稳定性和兼容性欠缺等诸多问题,而不得不一而再再而三的重新
开发,特别是软件在设计的过程中,对于可维护性、可修复性不重视,
导致维护的成本占据了整个软件生存周期的90%以上,这很明显是不正
常的。通常而言,软件维护的成本应该是软件生存周期的70%以下,超
过70%,这个软件最终的结局一定会失败。软件测试的过程,除了针对
软件的运行是否稳定,同样也会对软件的可维护性进行有效的判断,
尽可能的避免软件危机的产生,所以从软件危机的角度上来看,软件
测试在软件工程中的地位无疑是非常重要的。

3.2软件测试的必要性
(1)是交流的问题,容易导致软件接口处的错误。现代软件设计已
经不是单人作战的模式,已经上升到团队甚至全球软件工程师通过互
联网这个大平台进行合作,这种方式显然对软件工程规范要求更高。
其中交流往往就成了一个很重要的问题,很多软件工程师在设计的过
程中,尽可能的将自己负责的模块做到完美,甚至也能够考虑到模块
间的借口问题。但是因为交流上的不便,或者忽视交流,往往会产生2
个模块接口不兼容,甚至还会发生软件需要重新改写的问题。

(2)软件结构有越来越复杂的趋势。虽然软件开始实施模块化设计
方式,将一个软件整体拆解成无数个小的系统模块进行设计,然后将
设计好的模块进行统一封装。这种化整为零的软件设计方式的确有效
的改善了软件复杂性的问题,但是同样也面临着模块间的兼容问题,
不同设计师的设计风格可能会导致软件可维护性降低及可移植性降低,
特别是一些软件开发公司,根本就没有软件工程的概念,其研发的软
件产品,更是漏洞百出,自然很难保证软件产品的健壮性。

(3)程序代码的设计问题。目前一个软件的诞生,往往会有好几千
万行的代码,而且在软件正式代码编写之前,还需要撰写概要设计代
码和详细设计代码,这些往往都给错误埋下伏笔。如果程序设计代码
撰写不规范,没有相应的注释,没有相应的模块设计,往往计算式发
现了软件的错误,最终维护起来,也很难让维护工程师定位,甚至连
测试工程师也很难找到错误的地方。

(4)设计文档的组成非常少。一个软件产品的诞生,除了优秀的代
码设计之外,还要一份完善的代码文档,包括软件的可行性研究、需
求分析、详细设计、代码编写,以及软件测试等工作流程中所需要的
一切的代码文档。如果代码文档贫乏,甚至没有,那么一旦在软件测
试环节,或者在软件使用环节,出现错误时,那就很难进行维护调试
了。这时候的维护成本往往会比重新编写一款软件的成本还要低,可
见设计文档的错误撰写给软件健壮性的影响。

(5)一些软件测试工具和开发工具本身的问题,往往导致软件出现
严重的bug。而且在设计阶段,还很难发现,因为是本身软件测试工具
和软件开发工具引起的,因为软件测试工具和开发工具实际上也是一
种软件,如果这些软件的健壮性有问题,自然也会导致测试结果出现
偏差,最终影响到软件的健壮性。

3.3软件测试成本过半证明了软件测试的重要性
软件工程虽然在很多专家和权威机构的定义有所偏差,但是无一例外,
对于软件成本构成的分析上,软件测试的成本一直占据了主要部分,
最低的认为,软件测试成本要占据30%,最高的则认为占据到50%。如
果将后期维护成本也放在软件测试板块中,那么这个测试成本就会变
得更高。因为软件进入维护期时,一旦出现软件需要进行调试,那么
修复后的软件依然要进行软件测试,否则很难保证调试后软件依然能
够保证健壮性。作为一个软件系统的所有代码,都是牵一发而动全身,
修改了某处代码,可能会影响到另外一个模块的功能,所以在维护期
内,对软件的任何变动,都需要进行软件测试,才能够保证软件接下
来的健壮性。但很明显,如果将软件测试工作放在软件推出市场之前,
就来进行有效的测试,那么对于软件整个生命周期的成本,将能够得
到有效的降低。软件测试的成本的高低,往往和软件的质量成正比,
而软件质量提升了,后期的维护成本就能够有效的降低,所以综合起
来,软件测试这部分的成本支出是非常有必要的。

4软件测试流程分析
(1)建立独立的软件测试部门,测试部门领导应该对这个专业非常
精通,而不是简单的由开发人员兼职,这个测试部门需要从可行性研
究开始就应该着手对软件研发进行测试,可行性研究的最终确认应该
也有软件测试主管部门的签字确认才能够进行下一步的工作。

(2)软件测试工作不是等到软件全部开发完毕才来进行测试,而是
跟随软件设计的整改生命周期,针对每一个环节进行测试,软件测试
部门应该拥有独立的物理部门和独立于开放环境的测试环境,这样才
能够提供更加完善的软件测试,尽可能的将软件bug扼杀在摇篮里。

(3)软件模块测试,因为现在软件设计都已经进入模块化设计标准,
比如一个完整的软件是S,它有A、B、C、D等模块构成,那么对于A
模块的软件设计过程中,就应该有独立的软件测试人员进行跟踪,直
到A模块被测试证明没有隐患。以此类推,分别对B、C、D等模块分
别进行测试,合格以后,组装后的软件依然进行测试,这样才能够最
终提升软件健壮性。在软件设计的过程中,其实测试人员是和软件开
发人员并行工作的,而不是等到软件设计完毕之后,再来对模块进行
测试,这种方法才能够提升软件测试的效果。

5结语
软件测试随着软件系统复杂性的不断提升而变得越来越重要,如果现
在的软件设计公司依然按照传统的软件研发,只注重软件的功能设计,
而忽视软件测试,通过不断的压缩测试成本,希望以此来提升软件最
终的利润作法已经行不通了,只有将软件测试做好、做精,才能够提
升软件的健壮性,才能够提升软件的生存周期,才能够降低软件的整
体成本。

软件工程中软件测试的必要性

相关文档
最新文档