软件测试基础详解_软件测试基础知识解析

2020-02-28 其他范文 下载本文

软件测试基础详解由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件测试基础知识解析”。

1,什么是软件?

软件(中国大陆及香港用语,台湾称作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。另也泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规等等。

定义:

软件,拼音为Ruǎnjiàn,国标中对软件的定义为:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

其它定义:

1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。2.程序能够满意地处理信息的数据结构。

3.描述程序功能需求以及程序如何操作和使用所要求的文档。以开发语言作为描述语言,可以认为:软件=程序+数据+文档

2,什么是软件缺陷?

软件缺陷(defect)又叫做bug。所谓软件缺陷,即为计算机软件或程序中存在某种破坏正常运行能力的问题、错误,或隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户需求。IEEE729-1983对软件缺陷有个标准定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品内部看,缺陷是系统所需要实现的某种功能的失效或违背。3,由软件缺陷引起的软件事故实例?

● 消失在太空

在制造其火星气候轨道探测器时,一个NASA的工程小组使用的是英制单位,而不是预定的公制单位。这会造成探测器的推进器无法正常运作。正是因为这个 Bug,1999年探测器从距离火星表面130英尺的高度垂直坠毁。此项工程成本耗费3.27亿美元,这还不包括损失的时间(该探测器从发射到抵达火星将近一年时间。)

● 2011 年温州7.23 动车事故

2011年7月23日20时30分05秒,甬温线浙江省温州市境内,由北京南站开往福州站的D301次列车与杭州站开往福州南站的D3115次列车发生动车组列车追尾事故,造成40人死亡、172人受伤,中断行车32小时35分,直接经济损失19371.65万元。

上海铁路局局长安路生28日说,根据初步掌握的情况分析,“7·23”动车事故是由于温州南站信号设备在设计上存在严重缺陷,遭雷击发生故障后,导致本应显示为红灯的区间信号机错误显示为绿灯。

4,软件测试的职位?

软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),测试软件是否具有稳定性(Robustne),写出相应的测试规范和测试用例的专门工作人员。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。按其级别和职位的不同,分为三类。

按其级别和职位的不同,可分为三类:

高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估[1];

中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;

初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷

5,软件测试人员所需的基本素质和知识技能?

测试专业技能:测试人员必顺熟悉软件开发流程,测试人员必顺熟悉产品所涉及的业务,测试人员必须精通c++,java。·net、vb等流行开发语言其中的一种或多种。能熟练地使用各种软件测试方法和工具;

个人素质:专心,细心,耐心,责任心,自信心,沟通能力,团队协作。

6,什么是软件测试:

软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

7,软件测试和软件调试有什么区别?

软件测试是软件测试人员和软件开发者一起寻找软件错误的过程,这过程贯穿整个软件生命周期。软件调试主要由软件开发人员对软件(代码,文档,设计、、、、、、)进行修改,排除错误的过程,主要在软件开发阶段。

8,软件的生命周期是什么?软件测试在软件生命周期里的作用是什么?哪个阶段最容易发生缺陷?哪个阶段出现阶段出现缺陷修复成本最高。

软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废或停止使用的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,早期软件生命周期设计方法的指导意义正在逐步减少或需要调整。软件工程要求每一周期工作的开始只能必须是建立在前一个周期结果“正确”前提上的延续;因此,每一周期都是按“活动 ── 结果 ── 审核 ── 再活动 ── 直至结果正确”循环往复进展的。[1]软件开发需求与可行性计划阶段:经过客户提供或与市场调研人员收集资料中和;开发人员提供《可行性研究报告》反馈给客户和经理。经客户确认,由项目经理编写《软件开发需求分析》(测试人员检查《需求分析》的正确性。输出《需求分析分析》)《项目计划编制》。经测试人员确定该阶段已完成,编写《xxx项目报告》

软件设计阶段:由软件开发人员更据上个环节提供的文档。编写《软件概要设计说明书》反馈客户与经理。编写《软件详细设计说明书》。经测试人员确定该阶段已完成,编写《xxx项目报告》

软件开发阶段:开发人员按照《编程规范》《软件详细设计说明书》进行软件的编写,代码的整理,和调试软件。

软件的测试验收与发布:由有经验的测试人员编写《软件测试计划书》然后根据《软件测试计划书》进行软件测试。软件合格验收后,由测试人员编写《软件使用说明书》然后编写《xxx项目报告》,经项目经理确定,然后向客户提供软件,或投放市场。

软件的维护与升级:经客户或市场反馈的信息,由开发人员与测试人员协同合作对软件进行维护与升级。每次维护升级后发布前需编写《xxx项目报告》,方便下次的维护升级和保证软件的资料齐全。

软件的报废:在软件已经不能对客户和公司产生有效收益的情况下,经测试人员的安全测试后编写《软件报废声明》,再经项目经理的确定,宣布软件报废。

软件测试贯穿了整个软件的生命周期,在软件生命的每一个环节都需要软件测试来确定软件的正确性,完整性,安全性,和高质量。然后才能进入下一个环节。

进行软件测试,进行环节控制与管理软件的质量.测试计划→测试设计→测试开发→测试执行→测试评估

在软件开发的各个阶段测试的任务:

步骤为:需求分析审查、设计审查、单元测试、集成测试(组装测试)、功能测试、系统测试、验收测试、回归测试(维护)等

需求分析审查:市场/产品需求定义、分析文档和相关技术文档;要求:需求定义要准确、完整和一致,真正理解客户的需求。输出:需求定义中问题列表,批准的需求分析文档测试计划书(测试用例)的起草。设计审查Design Review:需要:产品规格设计说明、系统架构和技术设计文档、测试计划和测试用例;要求:系统结构的合理性、处理过程的正确性、数据库的规范化、模块的独立性等,清楚定义测试计划的策略、范围、资源和风险,测试用例的有效性和完备性。输出:设计问题列表(报告)、批准的各类设计文档、系统和功能的测试计划计划和测试用例。目的:测试环境的准备。

单元测试 unit testing:需要:源程序、编程规范、产品规格设计说明书和详细的程序设计文档;要求:遵守规范、模块的高内聚性、功能实现的一致性和正确性。输出:缺陷报告、跟踪报告;完善的测试用例、测试计划。目的:对系统功能及其实现的功能等了解清楚

集成测试:需要:通过单元测试的模块或组件、编程规范、集成测试规格说明和程序设计文档、系统设计文档。要求:接口定义清楚且正确、模块或组件一起正常工作、能集成为完整系统。输出:缺陷报告、跟踪报告;完善的测试用例、测试计划;集成测试分析报告;;目的:集成后的系统。

功能验证:需要:代码软件包(含文档),功能详细设计说明书;测试计划和用例;要求:模块集成、功能的正确性适用性。输出:缺陷报告、代码完成状态报告、功能验证测试报告。

系统测试:需要:修改过后的软件包、测试环境、系统测试用例和测试计划;要求:系统能正常的有效的运行,包括性能、可靠性、安全性、兼容性等。输出:缺陷报告、系统性能分析报告、缺陷状态报告、阶段性测试报告。

验收测试:需要:产品规格设计说明、预发布的软件包、确认测试用例;要求:向用户表明系统能够按照预定那样工作,使系统最终可以正式发布或向用户提供服务。用户要参与验收测试,包括α测试(内部用户测试)和β测试(外部用户测试)输出:用户验收报告、缺陷报告、版本审查。目的:最终测试报告。

版本发布:需要:软件发布包、软件发布检查表输出:当前版本已知问题的清单、版本发布报告。

维护:需要:变更的需求、修改的软件包、测试用例和计划要求:新的或增强的功能正常、原有的功能正常,不能出现回归缺陷;输出:缺陷报告、更改跟踪报告、测试报告。

测试最容易发生缺陷的阶段:需求阶段。

什么阶段软件发现缺陷修护成本最高:在软件验收与发布之后,发现的缺陷所需的成本最高。

9,软件测试的类型:

1,按测试内容分,分为一下几个类型:

(1)功能测试:功能测试基于需求和功能,检查软件是否达到原定的功能标准而不必理会软件内部的结构即代码的实现。

(2)性能测试:着重于软件的运行速度、负荷、兼容性、健壮性(容错能力/恢复能力)、安全性、可靠性等。

(3)接口测试。程序员对各个模块进行系统联调的测试,包含程序内接口和程序外接口测试。这个测试,在单元测试阶段进行了一部分工作,而大部分都是在集成测试阶段完成的。由开发人员进行。

2.按测试阶段来分,分为以下几种类型

(1)单元测试

(2)集成测试

(3)系统测试

(4)alpha测试(内部用户测试)

(5)beta测试(外部用户测试)

(6)确认测试

3.按测试技术来分,分为以下几个方面

(1)白盒测试: 已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。同行评审、需求审查、代码审查、接口测试(调用测试和返回测试,需要结合等价类和因果图方法)等

(2)黑盒测试: 已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。等价类划分、边界值、因果图、基路径法、专家测试法、smoking、场景测试等

(3)灰盒测试: 是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。

4.按测试手段来分,分为以下几个方面

(1)手工测试

(2)计算机辅助测试

10,什么是软件测试环境?

简单的说就是软件运行的平台,即软件、硬件和网络三种环境的合集,也就是说:测试环境=软件+硬件+网络

硬件:包括PC机、笔记本、服务器、各种终端等。例如要测试photoshop软件,是要在PC机上测,还是笔记本上测?是在cpu为酷睿的计算机上测,还是要在炫龙的cpu上测?不同的硬件环境photoshop的处理速度是不一样的。

软件:这里主要指的是软件运行的操作系统。例如测试photoshop,是指windows xp下测试还是在vista下测试?可能会有兼容性问题。软件环境还包括与其他各类软件共存同一系统时的兼容性问题。

网络:主要针对的是C/S结构和B/S结构的软件。比如我现在测试的软件,客户的网络环境是千兆以太网,而我们的网络环境还是百兆以太网,而且还是闲时才能达到百兆的速度。这样的环境要是很精确的测试响应时间,还是很伤脑筋的。一般来说,配置测试环境可遵循下列原则:

1、真实:尽量模拟用户的真实使用环境。这里需要提一点,关于项目软件与产品软件需要不同看待。项目软件由于只针对某一群体的用户,所以测试的环境比较单一。但产品软件针对的是广大群众,所以测试环境比较复杂,要多方面考虑。

2、干净:测试环境中尽量不要安装与被测软件无关的软件。笔者就遇到这种事情,两台机器,针对一个功能,一台测试OK,另一台测试NG,最后根据调查发现,测试OK的机器上安装了客户根本不会安装的VC++开发环境,测试NG的机器正因为没有安装VC,所以测试出了这个bug:软件中缺少必要的动态链接库支持。但这个干净也不是必须的,有时还要刻意去测试某个软件去其他软件并存时的兼容性问题。

3、无毒,这个应该不必多说了,测试工作应该确保在无毒的环境中进行。

4、独立:测试环境与开发环境相互独立。就是说开发环境和测试环境最好分开,即测试人员和开发人员分别用不同的服务器(数据库、后台服务器等),避免造成相互干扰

《软件测试基础详解.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
软件测试基础详解
点击下载文档
相关专题 软件测试基础知识解析 详解 测试 基础 软件测试基础知识解析 详解 测试 基础
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文