🏡个人主页 :@ 守夜人st 🚀系列专栏:软件测试 …持续更新中敬请关注… 🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点
前言 据国家权威部门统计,中国软件人才缺口超过100万人,其中很大一部分为软件测试人才,缺口达到30~40 万。然而符合企业急需的软件测试工程师在国内现有的人才数量中却寥寥无几,由于软件测试工程师属于软件产业化过程中凸显的一个新型软件技术职业,国内传统学历教育在这方面尚处于真空状态,无法满足行业对这一特殊岗位的需求。
理解软件工程和软件测试的联系
一、软件测试
1.早期定义
- 软件测试是证明软件中不存在错误的过程;
- ISO9000 定义:测试是一种基于机器的,对代码执行测试,确认测试的活动;
- 软件测试是对软件质量的度量,验证系统满足需求,或确定实际结果与预期结果之间的区别;
2.标准定义
IEEE 软件工程(1983)的定义: 使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(Correctness)、完全度(Completeness)、和质量(Quality)的软件过程;是SQA(Software Quality Assurances)的重要子域。 软件测试由一个程序的行为在有限测试用例集合上,针对期望的行为的动态验证组成,测试用例是从通常的无限执行域中适当选取的。
二、软件工程
1.软件工程的由来
1968年,NATO在联邦德国举行的关于软件开发的会议上,首次提出了软件工程的术语,标志着软件工程作为一门学科的正式出现,至今已有40年的历史。 其目的是倡导以工程的原理、原则和方法进行软件开发,以解决软件危机。 应用计算机科学、数学及管理科学等原理,以工程化方法制作软件的工程。 它借鉴传统工程的原则、方法,创建软件以达到提高质量,降低成本的目的。 其中,计算机科学、数学用于构造模型与算法,工程科学用于指定规范、设计范型、评估成本 及确定权衡,管理科学用于计划、资源、质量、成本等管理。 软件工程是一门指导计算机软件开发和维护的工程学科。 软件工程师一门交叉性学科。 软件工程是用来建立和使用合理的工程原则,以经济地获取可靠的、且在真实机器上可高效工作的软件。
2.软件工程的定义
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己认可的定义:
BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究
FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
《计算机科学技术百科全书》:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
ISO 9000对软件工程过程的定义是:软件工程过程是输入转化为输出的一组彼此相关的资源和活动。
目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
3.软件工程的核心知识
ACM 与 IEEE Computer Society 联合修订的 SWEBOK(Software Engineering Body of Knowledge)提到,软件工程领域中的核心知识包括:
- 软件需求
- 软件设计
- 软件建构
- 软件测试
- 软件维护与更新
- 软件构型管理
- 软件工程管理
- 软件开发过程
- 软件工程工具与方法
- 软件品质
软件测试如今已经成为了一门独立学科,随着软件技术的发展,软件测试也需要提出更高的要求,软件产业飞速的发展与软件测试人才的巨大缺口,不失为一种新的发展方向。
?
感觉不错的话,动手点个赞吧!
|