公务员期刊网 精选范文 软件试用期转正工作范文

软件试用期转正工作精选(九篇)

软件试用期转正工作

第1篇:软件试用期转正工作范文

关键词:软件测试;运行时错误;语义分析技术

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)07-1575-03

随着软件规模越发庞大,软件中存在的缺陷也越来越多,软件测试工作所肩负的责任日趋繁重。通常我们通过软件测试来确保软件的可靠性,通过软件测试我们可以在软件交付用户之前尽量找到软件中存在的BUG,而在所有类型的软件BUG中运行时错误的危害性是最大的。欧洲航天局阿里亚纳501号火箭的爆炸,就是因为在其控制飞行姿态的一段代码中蕴含有一个变量溢出的运行错误。正是这个错误的溢出变量控制着火箭急速转向而过载。

根据IBM-Berkeley调查统计:在每一千行的代码中大约就会发现一个运行时错误,而且在软件的维护阶段所检测到的错误中有30%-40%是运行时错误,可见运行时错误对软件质量的影响是多么大。该文对几种常用的可以发现软件运行时错误的测试工具进行评析。

1 什么是软件运行时错误(Run-Time Errors)

运行时错误(Run-Time Errors)是所有的软件错误中最具风险的错误。它主要发生在软件动态运行的过程中。我们在日常家庭用的Windows操作系统或者其他软件工具时也会时常出现运行时错误,一般情况下出现运行时错误后无论怎么操作,程序都会关闭。上述软件出现问题并不会产生太大的影响,但是对于对安全等级要求很高的系统,比如汽车、航天、军用领域,发生这种错误所从带来的负面影响或许是十分巨大的。由ANSI C定义的运行时错误是指那些能导致预定义之外的不正确结果或者处理器停机的错误,它的风险等级在所有软件错误中是最高的,由它引起的后果可能为:数据崩溃、安全保密被破坏、处理器停机等;它也可能导致给外部设备发送非受控命令,引起不可预测、不确定的行为。

典型的运行时错误包括:引用越界指针和空指针、读未初始化变量、类型转换非法、访问超界数组、浮点数和整数下/上溢出、不合法的算数运算 (如:负数开平方错误,除零错误)、代码不可达等。

在软件之中广泛存在运行时错误,对软件的安全性产生潜在的风险。因此针对运行时错误测试技术的研究是当前最重要的课题之一,而发现运行时错误最直接有效的手段就是专用测试工具。

2 软件运行时错误测试工具

2.1 语义分析技术

目前,测试软件的运行时错误所用的工具都是基于语义分析技术。这种技术主要是通过数学定理所提供的规则动态分析软件的行为。语义分析技术并非通过穷举法,它有能力在更为普通的模式下来表达程序所处的状态,它还能提供巧妙的规则来对它进行处理。当运行时错误在执行检测的时候,为了尽可能早的发现程序中运行时错误,语义分析技术会详细的分析所有危险的操作。

运行时错误的语义分析检查主要有以下几点:

1) 控制流检查:控制流程序要控制程序跳转到合法代码段。例如:C语言中的break语句,控制程序退出该程序段的最内层for、switch或while语句。否则应报错。

2) 类型检查:若操作符被用作不相容的操作数,应报错。

3) 相关名字检查:当同样的一个名字需要出现大于等于两次的时候,必须要对这几个地方使用的名字是否一致进行检查。

4) 作用域分析:分析元素的作用范围,保证元素不会出现使用问题。

5) 一致性检查:绝大部分情况下只能定义一次对象。

2.2 测试工具分析

2.2.1 Klocwork

Klocwork公司综合应用近年来最先进的多种静态分析技术,基于其专利分析引擎技术,开发了Klocwork测试工具。Klocwork是一款非常优秀的软件静态分析软件。

它最主要的特点如下:

1) 发现软件缺陷的种类覆盖面广,既包含安全漏洞缺陷,又同时包含软件质量缺陷,还能对编程规则、软件架构的违反情况进行分析;

2) 支持多种开发语言,可以分析Java和C++/C程序;

3) 可以对软件的各种度量进行分析(包含Halstead程序度量、McCabe复杂度);

4) 可以全面的分析软件,既能对可视化的架构进行优化、分析,又能对软件的缺陷进行分析;

5) 可以对千万级代码行的超大程序进行分析。

6) 可以对多种主流的IDE开发环境提供集成;

针对软件运行时错误,Klocwork能识别数组越界、非法指针引用、非法浮点数操作、不可达代码、无限循环等。

2.2.2 Polyspace

Polyspace是世界上首家自动检测嵌入式软件运行错误的工业化工具,不需要代码执行和修改,不需要运行耗时的测试用例。其主要特点有:

1) 高效:可以在代码评审和测试阶段确定运行错误;

2) 质量:彻底标识所有可能导致运行时错误的操作,并用不同的颜色标出来;

3) 安全:处理所有的正确条件。总是考虑最坏的情景,并指出可能的运行错误;

4) 产品化:PolySpace是非侵入式的和基于源代码的。在开发过程中,使用PolySpace尽可能在单元和集成时检测运行错误,从而节约确认阶段的时间,不必更改过程。

可以通过PolySpace自动检查的错误为:浮点数和整数的下/上溢出、读未初始化变量、访问超界的数组、引用越界指针和空指针、算数运算非法(例如:负数开平方,除零错误)、转换类型不合法、代码不可达、多线程应用中访问未保护数据的时候发生冲突。

2.2.3 Astree

Astree是一个可参数化设置的基于抽象解释的静态分析工具,其目标是证明用C语言写的程序中不存在运行时错误。其主要特点有:

1) 在编译阶段就能测出软件的运行错误。只要是代码可编译的,就可将代码放在Astrée测试环境下,经过简单配置后,便可自动检查错误;

2) 测试时不需要写测试用例。传统的覆盖率测试需要花费大量精力去开发测试用例,而使用Astrée就不需再写用例;

3) 测试时无须更多的代码插装,也不必改变开发过程;

4) 分析准确性高,通过参数化设置等,可以实现“零误报”;

5) 分析速度快。

Astree当前可以报告的错误包括:数组范围越界,整数被零除,浮点溢出和非法操作,整数运算的wrap around行为(主要由溢出引起),以及类型转换导致的wrap around行为(目标类型太小无法表达转换值),以及用户关于软件定义的任何断言。另外,,Astrée能够指出未分析(不可达的)的代码并且对没有终止的代码进行告警。

通过多次测试项目的实际使用,对Klocwork、Polyspace、Astree的分析结果比较如表1。

从表1的分析结果可以看出,专用测试工具在发现软件运行时错误时发挥着重要作用,但是测试工具并不是完美的,各个工具所使用的分析技术导致它们都只适用于部分缺陷的测试。在软件运行稳定性的保证及软件测试质量的提高方面,我们认为软件运行时错误测试工具的作用是功不可没的,但在看到测试工具优点的同时也要注意到各个测试工具的短板。

软件运行时错误测试工具的优点:

1) 分析只需要代码,不会改变软件开发的过程,可以在软件开发任何阶段进行;

2) 有助于软件开发的早期发现软件运行时错误。方便修改,能有效的提高软件开发效率,降低软件开发周期;

3)不需要设计测试用例,不需要代码插装,节约时间;

4)有助于开发人员及时自查,及时纠正开发人员编码风格缺陷。

5) 对发现的错误直接定位,相比动态测试发现该错误,节省了错误定位时间;

软件运行时错误测试工具的缺点:

1) 分析结果需要人工确认;

2) 有可能存在误报和漏报的情况,影响测试正确率;

3)由于算法的片面性,不能发现所有的问题。

3 结束语

在软件开发的任意一个阶段都可以借助软件运行时错误测试工具及时的发现错误,对软件成本的控制及软件开发效率的提升方面非常有帮助。鉴于该类测试工具功能的日益完善,软件开发人员对其依赖的程度逐渐增加。但开发人员时刻都要意识到,工具也会有算法片面性及漏报、误报的因素,仅仅依靠静态测试来发现运行时错误是不够的,需要在软件生命周期的晚期阶段实施动态测试。动态测试和静态测试相结合,从而提高测试的有效性。不同的软件运行时错误测试工具各有优势与不足,如何选择适合的测试工具,需要结合实际情况对诸多因素综合权衡。

参考文献:

[1] 肖庆,张威,宫云战,等.内存泄漏的一种静态分析方法[J].装甲兵工程学院学报,2004,18(2):23-26.

[2] 韩柯,杜旭涛. 软件测试[M].北京:机械工业出版社,2003.

[3] 杨宇,张健.程序静态分析技术与工具[J].计算机科学2004,31(2):171-174.

[4] 蒋鹏.基于Astree的软件运行时错误检测[Z].2012.

[5] 周涛.航天型号软件测试[M]. 北京:宇航出版社,1999.

第2篇:软件试用期转正工作范文

【关键词】雷达软件;自动化;测试环境

1 引言

随着计算机技术和软件无线电技术的飞速发展,软件在现代雷达系统中的比重逐渐增大,完成的功能也越来越多;与此同时,雷达软件的研制周期越来越短,导致雷达软件测试的周期越来越短。因此,如何在雷达软件规模不断增大和测试周期缩短的条件下,提高雷达软件测试的充分性和自动化程度成为亟待解决的问题之一。作为雷达软件测试支撑技术的雷达软件仿真测试环境的研究一直为众学者所关注,在实装验证环境的基础上,文献【1】【2】【3】先后提出了雷达软件全数字仿真测试环境、半实物仿真测试环境,为提高雷达软件测试的充分性保证雷达软件的质量方面发挥了重要作用。但是,随着雷达软件规模不断增大和测试周期缩短的条件下,用户对雷达软件质量要求更加苛刻,这种测试环境支撑技术也成为制约雷达软件测试效率的瓶颈,迫切需要对雷达软件测试自动化、智能化环境技术进行研究,以应对雷达软件技术的飞速发展。

2 雷达软件的特点

雷达软件是雷达系统的核心和灵魂,主要完成雷达工作模式和任务的实时调度,控制雷达各个分机设备协同工作,共同完成雷达对指定空域的目标搜索、目标截获和目标跟踪,同时完成对雷达分机进行实时监测。因此,雷达软件一般具有如下特点:

(1)雷达软件一般属于实时嵌入式软件,对于工作时序要求非常严格,其软件的逻辑正确性严格受控于时间和空间,也就是在规定的时间、规定运行环境中正确地完成规定的任务。

(2)雷达软件接口较多,内部逻辑复杂,涉及较多的算法模型:如滤波算法、坐标转换处理、点点相关、航迹管理、威胁度计算等。

(3)雷达软件的安全性和可靠性要求较高,为了保证软件的高安全性和高可靠性,雷达软件采取大量的冗余和容错设计;

3 雷达软件测试环境的研究现状

雷达软件测试环境的发展先后经历实装测试环境,全数字仿真测试环境和半实物仿真测试环境三个阶段【4】【5】。

(1)实装测试环境:雷达软件处于完全真实的运行环境中,直接将目标机(被测软件)和其设备建立真实的连接,形成闭环进行测试。全实物测试环境与真实系统有一致的映射关系,具有相同的接口,相同的I/O传输格式等,雷达软件随整个雷达系统一起运行,对雷达软件接口测试、实时性测试较真实,但是可控性差,不易操作,异常的测试用例无法开展,雷达软件测试的充分性难以保证。

(2)全数字仿真环境:对雷达软件目标机和环境进行仿真,除雷达软件运行的目标机与真实目标机不一致外,其他的接口、时序保持和真实运行系统一致,从而达到对雷达软件逻辑处理验证的目的。全数字仿真环境应用在软件测试中的最大优点是它的成本低、开发周期短、有效性高、测试可重复。但是它在接口、实时性、数据真实性等方面较弱,部分测试类型尤其是性能测试、安全性测试等无法有效地实施。

(3)半实物仿真环境:半实物仿真环境综合考虑实装环境和全数字环境的优缺点,应运而产生的一种软件测试环境,采用真实目标机运行被测软件,测试结果的可信度高,可以支持较多的测试类型;缺点是对边界及特定情况不易考察,白盒测试较困难,需要大量的开发工作,研制周期较长,经费投入大,通用性不好。

4 雷达软件自动化测试环境

4.1 雷达软件自动化测试环境功能

为满足雷达软件测试自动化的需求,雷达软件自动化测试环境RSATE(Radar SoftWare Auto Test Equipment)包括被测单元(目标机和被测软件)、被测单元接口模拟转换、测试数据记录、测试用例自动执行、测试用例自动生成、测试数据自动分析判断和用户接口功能模块。整体系统的逻辑功能框架分为三层:测试应用管理层、测试执行层和接口模拟层,参见图1。接口模拟层提供了雷达目标机非标准接口与通用标准接口的一个转接层,也是整个雷达自动测试环境搭建关键的一环。被测单元包含雷达软件和运行雷达软件的真实目标机,可以通过配置不同外部接口模块的方式直接接入,以实现雷达软件半实物环境的快速搭建。

图1 RSATE功能层次图

4.2 雷达软件自动化测试环境设计

依据雷达软件自动测试环境RSATE功能要求,RSATE系统除目标机及接口保持与被测系统相同,其他设备均采用PC机,通信均采用高速以太网,以提高RASTE通用性和可靠性。RASTE的系统结构如图2所示。

图2 RASTE的系统结构图

4.2.1 硬件构成

雷达软件测试环境主要由6个部分组成,分别为被测单元系统、接口转接模拟、测试管理计算机、测试用例自动生成计算机、测试结果自动分析判断计算机、CodeTest测试设备和网络通信设备组成。

被测单元系统构成雷达软件的真实运行环境,确保测试执行结果真实可信。

接口模拟设备提供网络通信到专用接口、专用接口到网络通信的转换,确保通信时序和通信周期与真实设备一致。外部接口模拟设备配有与目标专用通信的各种通信卡,一般包括RS-422、RS-485、RS-232串口卡,专用高速并口卡。

CodeTest设备负责对雷达目标机总线数据进行实时采集,对雷达软件测试的充分性进行评估是否达到委托方的要求,并提供测试未覆盖的分支、语句信息。

测试用例自动生成计算机、测试管理计算机、测试结果自动分析计算机提供测试用例自动生成软件、测试管理软件、测试结果分析软件等应用软件的运行环境。

4.2.2 软件设计

雷达软件自动化测试环境的软件由以下几部分组成,分别测试管理软件、测试用例自动生成软件、测试用例自动执行软件、测试数据录取软件、测试数据自动分析软件、测试数据自动判定软件以及外部接口转接模块软件,上述软件均采用统一的网络接口要求设计,以便于不同型号雷达软件测试环境搭建时复用。

(1)测试管理软件:用于软件测试需求的自动生成和管理,形成测试用例与测试需求的追溯关系,确保测试用例对软件需求的覆盖。在软件需求变更时,提醒测试人员及时完成测试用例的变更。

(2)测试用例自动生成软件:用于软件测试用例的开发,按照雷达软件外部接口的协议自动生成测试数据,以保证测试结果的唯一性,确保不同的测试人员在执行该测试用例时均能得到相同的结果。

(3)测试用例自动执行软件:用于测试用例的自动执行,控制雷达软件的运行周期,按照雷达软件的运行时序准确地将测试用例中的雷达各个分机数据注入到被测单元中。并实时显示测试用例的执行进度和被测试单元的回送信息。

(4)数据记录软件:用于记录被测单元的所有输入输出信息,并进行存储,存储的文件名与测试用例文件名一一对应。以便于后期的数据分析和判定。该软件运行于后台,随测试用例自动执行软件一起运行。

(5)数据分析软件:用于对记录数据进行分析和解码,按照雷达软件接口协议解码成各雷达分机的接口信息。

(6)数据判定软件:用于测试用例执行结果的判定,对测试数据的分析结果进行的显示和执行结果的预先判定,对于不通过的测试用例提示进行人工判读和故障定位。

(7)测试报告自动生成:主要完成测试用例的生成情况、执行情况、通过情况进行分析,然后生成相关的测试报告并进行显示。

5雷达软件自动化测试环境使用分析

5.1 雷达软件自动化测试环境使用流程

使用雷达自动化测试环境RASTE进行测试时,测试需求分析、测试用例自动生成、测试用例自动执行、测试数据自动采集、测试数据分析、测试结果判定等测试活动即可以分时进行、流水作业,也可以同时进行、共同作业。

5.2 雷达自动化测试环境使用结果分析

从可控性、可观测性、可操作性【6】、自动化程度和测试覆盖程度等方面对雷达自动化测试环境进行分析评价,并与实际装备环境、全数字仿真环境和半实物测试环境进行对比。发现在自动化测试环境上进行测试,可以大幅度提高雷达软件的测试效率,与实际装备环境相比可以提高50%,测试充分性方面语句覆盖率的53.3%提高到85.4%,分支覆盖率由49.3%提高到82.5%。具体情况见表1。

表1 雷达软件自动化测试环境使用结果分析对比

环境名称

评价指标

实装测试环境

全数字测试环境

半实物测试环境

自动化测试环境

可控性

较差

较好

较差

较好

可观察性

较好

较好

较好

较好

可操作性

较好

较好

较好

较好

自动化程度

较低

一般

一般

较高

异常测试

不支持

支持

支持

支持

测试真实程度

测试环境真实

与真实环境差距较大

测试环境真实

测试环境真实

语句覆盖率

53.3%

82.5%

66.7%

85.4%

分支覆盖率

49.3%

80.7%

63.2%

82.5%

用例执行率

67%

80%

85%

100%

单个用例执行平均用时

20分钟

1分钟

2分钟

30秒钟

总用时

14人日

7人日

9人日

4人日

6 结论

本文介绍了雷达软件的特点和雷达软件测试环境的技术现状,充分考虑了现行雷达软件测试环境的优缺点,提出雷达软件自动化测试环境应具备三个层次的功能结构,并将雷达目标机直接嵌入到雷达自动化体系结构中,开发了一系列通用的测试自动化软件,经过与实装环境、半实物测试环境的使用对比,表明雷达自动化测试环境能够提高雷达软件测试的充分性和测试效率。

参考文献:

[1]林洁,吴慈伶等.雷达软件测试环境仿真平台技术研究与实践[J].现代雷达,2010(6).

[2]李昊,田峰敏.雷达软件的安全性测试研究[J].信息化研究,2013(6).

[3]云雷.机载相控阵雷达软件可靠性测评环境建设[J].电子产品可靠性与环境试验,2011(4).

[4]张广梅,李晓维.软件可测性评估[J].装甲兵工程学院报,2004(2).

[5]雷万保.雷达系统软件可测试性研究[J].信息化研究,2011(6).

[6]于洁,杨海燕等.软件的可测试性设计[J].计算机工程与应用,2003(03).

第3篇:软件试用期转正工作范文

【论文摘要】:现今软件开发的规模越来越大,作为软件开发的重要环节,软件测试越来越受到人们的重视,软件测试的重要性更加突出。文章主要探讨软件测试中的影响因素和软件测试质量的提升与测试管理阶段采用的方法和人员的组织的几点认识。

一、软件测试的定义

软件测试(Software testing)是软件生存期(Software life cycle)中的一个重要阶段,是软件质量保证的关键步骤。通俗地讲,软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码进行最终复审的活动。1983年IEEE提出的软件工程术语中给软件测试下的定义是:"使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别"。这个定义明确指出:软件测试的目的是为了检验软件系统是否满足需求。

从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是"为了发现错误而执行程序的过程"。或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。

二、影响软件测试的因素

影响测试效率的因素除了测试方法之外,主要因素还有人为因素、软件类型、错误类型、测试充分度等。下面对这些因素作一个简要分析。

1. 人为因素

软件测试中的许多工作是由人来完成的,因此,人为因素是影响测试效率的一个重要方面。这样的差异并非偶然,这是因为测试人员在应用一个测试方法时具有很大的灵活性,从而使测试人员的经验和学习能力可以有较大的发挥余地。所以只能采用越来越严格的测试方法和过程来有效地避免人为因素对测试效率的影响。

2. 软件类型

软件类型也是影响测试效率的一个重要因素。即使是同一个测试者,测试不同类型的软件的效率和发现软件错误的能力也是不尽相同的。测试什么类型的软件的效率较高则因人而异,这往往与测试者的相关知识、经验与专业训练有关。

3. 测试充分度

测试充分度反映了一个测试是否得到了良好的执行,它直接关系到测试的效率。1993年Frankl和Weiss发现,只有当充分度十分接近100%时,才能使测试发现错误的能力得到发挥。因此,在测试软件时,必须设法使充分度十分接近100%,否则将难以保证测试质量。

三、加强对测试工作的组织和管理

随着软件开发规模的增大、复杂程度的增加,以寻找软件中的错误为目的的测试工作就显得更加困难。然而,为了尽可能多地找出程序中的错误,生产出高质量的软件产品,加强对测试工作的组织和管理就显得尤为重要。

从软件的生存周期看,测试往往指对程序的测试,这样做的优点是被测对象明确,测试的可操作性相对较强。但是,由于测试的依据是规格说明书、设计文档和使用说明书,如果设计有错误,测试的质量就难以保证。即使测试后发现是设计的错误,这时,修改的代价是相当昂贵的。因此,较理想的做法应该是对软件的开发过程,按软件工程各阶段形成的结果,分别进行严格的审查。

虽然测试是在实现且经验证后进行的,实际上,测试的准备工作在分析和设计阶段就开始了。

1. 测试的过程及组织

当设计工作完成以后,就应该着手测试的准备工作了,一般来讲,由一位对整个系统设计熟悉的设计人员编写测试大纲,明确测试的内容和测试通过的准则,设计完整合理的测试用例,以便系统实现后进行全面测试。

在实现组将所开发的程序经验证后,提交测试组,由测试负责人组织测试,测试一般可按下列方式组织:

(1) 首先,测试人员要仔细阅读有关资料,包括规格说明、设计文档、使用说明书及在设计过程中形成的测试大纲、测试内容及测试的通过准则,全面熟悉系统,编写测试计划,设计测试用例,作好测试前的准备工作。

(2) 为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试和验收测试。

(3) 代码会审:代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程。会审小组由组长,2~3名程序设计和测试人员及程序员组成。会审小组在充分阅读待审程序文本、控制流程图及有关要求、规范等文件基础上,召开代码会审会,程序员逐句讲解程序的逻辑,并展开热烈的讨论甚至争议,以揭示错误的关键所在。实践表明,程序员在讲解过程中能发现许多自己原来没有发现的错误,而讨论和争议则进一步促使了问题的暴露。例如,对某个局部性小问题修改方法的讨论,可能发现与之有牵连的甚至能涉及到模块的功说明、模块间接口和系统总结构的大问题,导致对需求定义的重定义、重设计验证,大大改善了软件的质量。

(4) 单元测试:单元测试集中在检查软件设计的最小单位-模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。由于模块规模小、功能单一、逻辑简单,测试人员有可能通过模块说明书和源程序,清楚地了解该模块的I/O条件和模块的逻辑结构,采用结构测试(白盒法)的用例,尽可能达到彻底测试,然后辅之以功能测试(黑盒法)的用例,使之对任何合理和不合理的输入都能鉴别和响应。高可靠性的模块是组成可靠系统的坚实基础

(5) 集成测试:集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如数据穿过接口时可能丢失;一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。

2. 测试的人员组织

为了保证软件的开发质量,软件测试应贯穿于软件定义与开发的整个过程。因此,对分析、设计和实现等各阶段所得到的结果,包括需求规格说明、设计规格说明及源程序都应进行软件测试。基于此,测试人员的组织也应是分阶段的。

(1) 软件的设计和实现都是基于需求分析规格说明进行的。需求分析规格说明是否完整、正确、清晰是软件开发成败的关键。为了保证需求定义的质量,应对其进行严格的审查。

第4篇:软件试用期转正工作范文

关键词:测试风险管理;风险管理;软件测试

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)11-2518-03

软件本身的复杂性以及测试本身的特性决定了测试活动实施过程中风险的大量存在,而风险会影响测试活动的成败,严重时还可能导致整个项目的失败。因此,对测试风险的管理越来越引起人们的重视。

1风险存在的必然性

软件测试项目的风险来自于软件和测试自身的特点。

1.1软件的特点

1)软件产品是不可见的:软件项目的开发进度和软件质量管控过程是否符合标准很难衡量,使得软件的管理也难于把握;

2)软件生产过程形式多样,不存在绝对正确的形式:不同的软件开发项目,应采取不同的或者特定的软件开发过程。但在项目开发之初却不能确定正确的形式,只能根据项目的特点和开发经验选择,并在开发过程中不断的调整,真正适合该软件的开发过程只有在项目开发结束才能确定;

3)大型软件项目往往是“一次性”:项目一次性的特点使得过去的经验不能被广泛的借鉴。控制软件管理风险的唯一途径是设立监测系统,开展有效的风险监控和管理。

1.2测试的特点[1]

1)完全测试是不可能的:在有限的资源和时间条件下,找出所有的软件缺陷和错误,使软件趋于完美是不可能的,主要原因为是输入量太大、输出结果太多、路径组合太多;

2)测试具有病毒一样的免疫性:软件缺陷具有病毒一样可怕地免疫性,对其采用的测试越多,免疫能力就越强,软件测试工程师想要找出更多软件缺陷就更加困难;

3)测试是“泛型概念”:软件测试涵盖需求分析、概要设计等在内的整个软件生命周期,以确保每一个阶段都经住考验;另外,测试自身也需要来自第三方的评估和监督,以确保测试的可靠性;

4)80-20原则:80%的软件缺陷常常生存在20%的软件模块中。我们在系统分析、系统设计、系统实现阶段只能检测和规避80%的软件缺陷。在下一步的系统测试中,可以帮助我们找到剩余缺陷的80%,剩余4%的缺陷只有在系统交付使用后经过大范围长时间使用后才会暴露出来。所以,软件测试只能保证尽可能多的发现软件缺陷,却无法保证能够发现所有的软件缺陷;

5)缺陷的必然性:由于软件测试中错误的相关性,并非全部的软件缺陷都能够被成功修复。在缺陷的修复过程中会不可避免的引入新的错误,另外,在修复的过程中,我们往往还会受到时间、成本等各方面因素的限制,导致最终不可能完全的修复所有的软件缺陷。

2风险的评估

风险的管理基本的内容有两项:风险评估和风险控制。

风险评估是在风险识别的基础上,对识别出来的风险进行评估,主要从下列四个方面入手[2]:

1)风险概率分析,即对风险发生的可能性设置一个尺度,如很高、较高、中等、较低、很低等;

2)描述风险并预测风险发生后,对软件产品和测试结果可能产生的影响或造成的损失等;

3)确定风险评估的正确性,要对每个风险的表现、范围、时间做出尽量准确的判断;

4)根据损失(影响)和风险概率的乘积,来确定风险的优先级别,定制风险应对措施。

3风险控制的原则

风险控制是建立在风险评估的基础之上的,主要工作原则有[2]:

1)针对有些可以避免的风险,例如测试用例执行率未达到100%,可以通过制定测试规范,要求测试人员严格按照测试用例执行测试,并记录用例执行情况,来避免该类风险;

2)有些不可避免的风险,采取措施降低风险,尤其是等级较高的风险,将其转化为不会引起严重后果的等级较低的风险;

3)凡事预则立,事先做好风险管理计划,当风险成为现实时,可以更好的避免、转移或减低风险;

4)对风险的处理制定应急、高效的解决方案。

4软件测试风险分析与管理方法

软件生命周期包括问题定义及规划、需求分析、软件设计、程序编码、软件测试和运行维护六个阶段,而软件测试前面的任何一个环节的不严谨都可能增加软件测试活动的风险。软件测试活动中也存在各种各样的风险,其中常见风险有需求变更风险、测试过程风险、测试组织和人员风险。

4.1需求变更风险

在软件测试项目尤其是历时较长的大项目的实施过程中,总会不可避免的出现需求的变更。如何把握好需求的变更,减少需求变更带来的风险,成为影响整个项目成败的关键。

4.1.1软件测试项目需求变更的管理[3]

1)设定需求变更的参考标准,将需求基线。当软件测试项目组确认要产生需求变更时,用标准的变更申请表格将委托方的变更申请记录存档。每次的变更都应在需求基线的基础上进行。

2)软件测试项目组收到委托方提交的需求变更申请后,成立项目变更控制委员会(CCB),负责对项目变更所带来的影响进行评估,包括测试项目的人力、物力、资金、管理、时间、质量、工作负荷等内部因素,以及资本、委托方要求的完工时间、项目负债情况等各个方面的影响。

3)变更确定后,选择可行的实施方案。为了将项目变更的风险降低到最小,力求在尽可能小的变动幅度内对测试项目的目标、预算、团队以及项目的进度等主要的因素进行微调。

4)需求变更后,要重新确定新的需求基线;受影响的软件计划、产品、活动等也要进行相应的变更,以保证和最新需求的一致性。

4.2测试过程风险

在测试工作中,主要的风险有[4]:

1)需求的临时或突然变化,导致设计的修改和代码的重写,使得测试时间不够;

2)测试用例没有得到100%的执行;

3)质量需求或产品的特性理解不准确,造成测试范围分析的误差,结果某些地方始终测试不到或验证的标准不对;

4)质量标准不都是很清晰的,如适用性的测试,仁者见仁、智者见智;

5)测试用例设计不到位,忽视了一些深层次的逻辑、边界条件、用户场景等;

6)测试环境与实际生产环境一般情况下都不可能完全一致,造成测试结果的误差;

7)有些缺陷出现频率不是百分之百,不容易被重现;如果代码质量差,软件缺陷很多,被漏检的缺陷可能性就大;

8)回归测试一般是选择性的执行部分测试用例,必然带来风险。

前面3种风险可以通过前期调研人员或测试人员与客户加强沟通或者制定严格的制度来避免的,而针对有些不可避免的风险,采取一些有效的测试风险控制方法来尽量降低风险,例如测试环境不正确,可以通过事先列出要检查的所有条目,在测试环境设置好后,由其他人员按已列出条目逐条检查;针对程序中总是存在的“未发现的缺陷”,可以通过提高测试用例的覆盖率(如达到99.9%)来降低这种风险;针对经常出现的产品前夕,在某个不是很重要的新功能上发现一个严重缺陷的问题,可以通过去掉该新功能来转移因为修改此缺陷可能引起的某个原有功能上的缺陷的风险。回归测试只执行部分用例带来的风险是可以避免的,但出于时间或成本的综合考虑,一般是存在的。

提前做好风险管理计划和风险控制策略,可以更好的避免、转移或者降低风险:

1)在执行项目计划,做资源、时间、成本等的估算时,要留有余地;

2)在项目开始前,制定风险管理计划,重点把握边界上可能会出现变化、难以控制的因素;

3)重视人员队伍的培养,对每个关键性技术岗位人员培养后备人员,确保项目不受人员流动的严重影响;

4)制定工作机制和文档标准,保证文档的及时产生,便于项目知识的分享和移交;

5)对工作进行相互审查,不同的测试人员在不同测试模块上相互调换,及时发现问题;

6)日常跟踪所有工作过程,及时发现风险的迹象,以避免风险。

4.3测试组织和人员风险

4.3.1测试组织风险

测试人员不独立于开发者,测试人员独立与开发者的程度将影响测试结果。

1)成立专门的测试组织;

2)制定专门的测试管理流程和质量保证手册,规范测试过程,保证测试的质量;

3)委托专门的测试组织执行测试活动。

4.3.2人员风险[4]

测试项目尤其是周期较长的项目几乎不可避免的要面临人员的流动,从而增加项目失败的风险系数。及早预防是降低这种人员风险的基本策略。下面从第三方测试的角度具体介绍一下人员风险的控制方法:

1)指派一名项目副经理或项目经理助理协调项目经理管理项目工作,降低关键岗位人员流动的风险。但是一般只建议在项目经理这种比较重要的岗位采用这种冗余复制的策略来预防人员风险,否则将大大增加项目成本;

2)建立良好的文档管理机制,包括项目组进度文档,个人进度文档(测试日志)、版本控制文档、整体技术文档(测试策略、测试用例)、个人技术文档(测试执行记录、缺陷报告)等。一旦出现人员的变动,替补组员能够根据完整的文档尽早接手工作;

3)控制项目团队中外包或兼职人员的比例,且项目核心部分的工作应该尽量由全职人员来担任,以减少兼职人员对项目组人员不稳定性的影响;

4)加强测试项目组内的技术交流,定期召开项目例会,使测试组成员能够相互熟悉对方的工作和进度,能够在必要的时候接替对方工作;

5)为项目测试工作的开展提供尽可能好的基础环境,比如待遇、项目组内良好的人际关系和工作氛围等。良好的工作环境对于稳定项目组人员以及提高生产效率都有不可忽视的作用。

4.3.3外包人员风险

1)制定相关的管理流程文件,规范外包人员的活动,防患于未然,规避外包风险;

2)通过外派监管团队的方式对整个测试活动进行监控;

3)通过对测试活动的中间交付物进行检查保证测试的质量,例如:对设计的测试用例进行评审、对编写的测试代码进行抽查、检查测试执行的日志等;

4)对于外包测试的形式,除了避免承包方项目人员的泄密,还要注意双方数据传输过程中的信息保密。在采用外包测试的时候,不可避免地要进行各种信息的传送,可能是双方的电话、E-Mail交流,也可能是软件版本的传输,在条件允许的情况下要尽量使用VPN等方式。如果有必要,对传输的数据要进行加密。

5结束语

测试过程中的风险总是存在的,该文对测试活动中主要的风险进行识别和控制,并确定针对性措施,避免风险发生,或者把风险降到最小。要想做好风险管理工作,就必须彻底改变测试项目的管理方式,建立防患于未然的管理意识,并结合具体的实践工作不断地分析遇到的风险,总结各种风险的应对措施,指导实践,降低产品质量风险。

参考文献:

[1]张华.软件测试的常识[EB/OL].省略/html/2010-01-13/100144.htm.

第5篇:软件试用期转正工作范文

【关键词】工程咨询 信息系统 软件测试

信息是现代咨询的基础,工程咨询业俗称为“头脑加工信息”的行业。在信息化建设不断推进的条件下,工程咨询作为智力服务型企业,对信息化的需求日益增长。为了把咨询业务做精、做强、做大,必须依靠现代科技手段和信息处理技术,建立企业内部信息库,挖掘信息资源,改变信息管理方式。把零散的、随机的信息管理,转变为系统的、可持续性的、能够便捷查询和充分共享的信息管理,实现咨询依据可靠、信息来源充分、方法科学的现代咨询发展目标。工程咨询信息系统,满足了工程咨询对信息化的需求,实现了项目管理及图书等资料借阅的自动化管理方式,建立的竞争情报管理系统实现了目标信息的定时抓取,上传企业内部公告等多种功能。在开发一套好的工程咨询信息系统过程中,软件的测试是非常重要的,它对信息系统能否投入运行起着至关重要的作用,软件测试环节是保障软件质量的最后一道关键性关口。在软件的测试中,一定要针对工程咨询的特点,做好软件的测试。

一、工程咨询的特点

工程咨询业是智力服务性行业,运用多种学科知识和经验、现代科学技术管理方法,遵循独立、科学、公正的原则,为政府部门和投资者对经济建设和工程项目的投资决策与实施提供咨询服务,以提高宏观和微观的经济效益。工程咨询具有以下特点:工程咨询业务范围弹性很大,可以是宏观的、整体的、全过程的咨询,也可以是某个问题、某项内容、某项工作的咨询;每一项工程咨询任务都是一次性的、单独的任务、只有类似,没有重复;工程咨询是高度智能化的服务,需要多学科知识、技术、经验、方法和信息的集成及创新;工程咨询牵涉面广;许多工程咨询成果具有预测性、前瞻性;工程咨询提供智力服务,咨询成果属非物质产品。

二、软件测试的目的

软件测试是为了发现错误而执行程序的过程;测试是为了证明程序有错,而不是证明程序无错误;一个好的测试是在于它能发现至今未发现的错误;一个成功的测试是发现了至今为止未发现的错误的测试。

软件测试的目的不仅仅是为了发现程序中存在的错误,它还是软件质量保证至关重要的一个环节。软件测试不同于程序员在代码编写完成后简单的使用、调试,软件测试需要遵循一定的原则,软件测试的原则大致包括以下内容:确定预期输出是测试必不可少的一部分,程序员应避免测试自己编写的程序,程序设计机构不应测试自己的程序,彻底检查每一个测试结果,对非法的和非预期的情况也要象对合法的预期输入一样编写测试用例,检查程序是否做了要它做的事仅仅是成功的一半,另一半是程序是否做了不要它做的事,除了真正没有用的程序外,一定不要扔掉测试用例,一段程序中存在错误的概率与在这段程序中已发现的错误成比例,在规划测试时,不要设想程序中不会查出错误,所有的测试都应当追溯到用户需求,应该在测试工作真正开始前就开始计划测试,测试应该从“小规模”开始逐步转到“大规模”,测试发现错误中80%的错误属于20%的程序模块,穷举测试是不可能的,但充分覆盖程序逻辑是可能的,测试是一件非常复杂,具有创造性的和需要高度智慧的挑战性任务。

三、软件测试几点看法

软件测试作为软件上线的最后关口,应得到高度重视。但由于思想意识和历史原因,出现重开发轻测试的现象,软件测试成为制约软件成功上线运行的瓶颈。由于对软件测试的重要性理解不够,很多人认为程序能够运行基本上就已经成功,没有必要进行专门的测试,这些都是错误的观点。

软件测试分为:单元测试(模块测试),集成测试。在进行所有的测试前,一定先要认真阅读各种相关文档,同时制定测试计划,同时进行测试用例设计,在设计测试用例时,要对待测软件进行分析,设计合理的模型,制定测试用例。在测试进行过程中,要根据实际情况修改或增加测试用例。

在测试完成后,要根据测试结果填写《软件测试问题跟踪单》,在整个软件测试完成后,要分析测试结果并编写测试报告。在测试报告中要说明本次测试的结果,如各个等级的BUG的数目,在各个模块中的分布情况及评语。在整个项目完成后,将测试工作所产生的所有文档交文档管理员归档。

软件测试是为了拟制缺陷。作为衡量和评价的手段,测试是质量控制的核心环节,除发现问题外,测试还有预防的潜力。

软件测试是对软件产品是否能够满足预期要求做出客观的技术性评价。固然品质是制造出来的,而不是检验出来的。但是,软件测试在明确和界定清楚测试与开发的关系时,不能简单地把测试与开发看作是串行的过程。从工作流程看,测试应当从需求分析开始,测试不仅要与开发平行,而且从开始就以测试用例为需求立定客观标准。从目前实际和发展趋势看,规范化的软件测试要尽早介入项目开发,介入越早,纠错越快,软件质量和效果可控越好。

面对信息化速度加快,全球化进程加速,市场化程度加深,城市化趋势加强所带来的机遇和挑战,一个信息系统软件对工程咨询机构提高工作效率起着重要的作用,而软件的测试又是对软件能否成功上线运行起着至关重要的作用,因此,工程咨询业应高度重视信息系统软件的测试工作。

第6篇:软件试用期转正工作范文

关键词:自由软件

在95年11月武汉水利水电工程地质计算机会上,首次公开进行了本专业的自由软件展示与交流,尽管会议上提供的自由软件只有4个,但都是些实用性强的软件,与会代表争相自由拷贝,气氛异常活跃,成为本次会议的一大特色。《会议纪要》认为:自由软件的广泛交流,体现了信息社会共同发展的合作精神,抛弃了传统封闭的小农意识。封闭是没有出路的,只有交流才能发展,这是我们计算机应用事业的保证。

什么样的软件是自由软件?自由软件与商品软件是什么关系,本文便是笔者的一些粗浅认识。

1.软件按商业性质分类

如果按软件的商业性质来分类,大致可分为商品软件、自由软件、共享软件和转让软件等四大类。现分述如下:

1.1商品软件

所谓商品软件,是将软件当成商品出售,具有商品的使用价值和价值两个属性。一般来说,商品软件要求有一定数量的用户群,有一定范围的销售网络,有较为健全的咨询和软件维护技术队伍,有开发队伍不断地进行软件升级。

按国家规定,要在市场上销售的商品软件首先要经过国家或社会普遍公认的软件评测机构(如中国软件评测中心)的质量认证。认证的标准和依据是国家有关标准或行业标准,例如:GB8566-88、GB8567-88、GB9385-88、GB/12504~12505-90、GJB437-88等,同时还应取得beta测试版用户的测试报告。

软件是逻辑产品而不是物理产品。软件生产集中于开发而不是制造,起决定作用的是人的智能的高效率的发挥。软件是看不见(或读不懂)摸不着的以磁盘、磁带、光盘等记录/读取介质为载体的计算机程序编译代码。鉴别软件的优劣、功能的强弱、使用的价值等等,可按国家对软件开发的规范标准组织评审,或由国家专门的软件评测中心进行评测。对于应用软件来说,笔者认为最权威的鉴定和评测是软件的直接使用者­---用户。

软件能否形成商品,当然要看是否具备商品的一些基本特性,要看是否有一定数量的用户,即是否具备商品的使用价值。能够形成商品的软件,要有极强的商品意识和版权保护,这是无庸置疑的。而不能形成商品的软件,又可分为两大类:

一类是开发难度大专业性很强用户很少的软件,或为特殊要求而开发的软件,或研究课题在理论上还不成熟的软件。例如控制卫星发射的软件或高精尖科学研究的专门软件,既不会卖,一般用户也不会买,显然不是商品软件。又如为一种新的尚未越过探讨阶段的结构设计理论而编制的软件,至少在新理论未经实践检验没有被广泛承认尚无规范认可阶段,不是商品软件。还有一些专业性软件,标准化程度低,规范性差,软件维护困难,没有售后服务,仅仅是单位之间的有偿引进或转让,自然也算不上商品软件。

另一类是开发难度不大,多为个人单干开发的小型软件、小工具、单一功能的小程序块等,反映出程序设计中的一些技巧和经验,有一定的使用价值,如果没有经过包装,用户不多,也很难形成规模性的商品软件。

1.2自由软件

自由软件(freeware)又称免费软件,由国外类似活动中freeware一词转译而来,指经软件作者同意或软件版权所有者授权,免费提供给用户的非商业性质的软件产品。自由软件可以有著作权(版权)或无著作权。

有著作权的自由软件,其作者声称版权所有,但免费或收取很少的费用提供给用户,让人几乎没有限制地使用或拷贝或与他人分亨,一般不公布源程序代码(一些公开发表源程序代码的短小程序当然也属于自由软件)。例如许多国内外广泛流行的磁盘拷贝、磁盘文件管理、硬件测试、文本编辑器、文件图形格式转换等等工具类软件,Internet网络BBS(电子公告板)上可随时下载的软件,以及许多商品软件的低版本、演示版、教学版、简版等软件,均属于此类。另外,国内的一些优秀汉字系统如王码WMDOS5.0以及后来升级的6.0和8.0、UCDOS3.0简版、UCDOS5.0试用版、213L等,还有一些汉字输入法、办公排版系统等,亦为有版权的自由软件。96年初,深受用户喜爱的中文优秀制表软件CCED的版权人朱崇君先生宣布难以忍受软件销售70%的收入被销售商拿去的现实,将正在热销的CCED5.0以CCED5.03版本加入到有版权的自由软件行列而成为96年中国软件行业和用户们议论纷纷的重大新闻之一。

没有著作权的自由软件,是指在软件技术发展过程中已经形成了的大批标准的子程序和常用模块,它们已经在很多软件产品中被多次使用过,或被收入教科书和公开出版的源程序代码集中,实际上已经弄不清是谁原创的,即已不清楚谁是版权人。还有一些软件,其开发者在发表时公开声明放弃版权,供社会公众自由使用,对于这些已经成为社会公共财富的软件,在开发中使用是不会构成侵权的,可放心引用。

1.3共享软件

共享软件(英文:shareware)有别于自由软件,需收一定费用,但仍为非赢利软件。共享软件所收费用仅限于资料的成本费和发行费。共享软件鼓励用户自由拷贝,自由应用,软件不加密,如果喜欢该软件,有义务向发行公司注册,只需付很少的注册费就可得到更多的技术支持以及进行技术交流,发行公司所收取的少量的注册费也仅是为了进一步发展和支持该软件。例如近来到处做广告的"王特绿色MIS4.0"和"雅奇MIS6.2"属于数据库与管理信息系统自动编程一类的大型软件,可以减少应用系统大量的编程工作,也推出了共享软件版本。

1.4转让软件

一些专业性较强,开发难度较大(多为单位开发),用户群有限,无规模性销售网络,无健全的咨询和软件维护技术队伍,达不到商品软件的要求,但又有用户需要,于自由软件和共享软件与商品软件之间的软件,笔者暂且将此类软件称之为转让软件。水利水电系统中各单位之间互相以商品软件形式出现的绝大多数专业软件均属此类软件。

转让软件的纠纷较多,单位之间的转让往往没有履行严格的合同手续,是以单位、领导、熟人和朋友之间的信誉为转让基础的。转让软件专业性较强,维护困难,售后服务差或根本没有售后服务,是发生纠纷的主要原因。

2.国内外的自由软件交流

自由软件的价值在于交流,这种交流没有国界,不讲阶级立场,不分专业,不论社会地位,所有参加软件交流的人全球平等,就象在Internet网络上发送E-mail,参加各种论谈一样。

2.1自由软件的国际交流

在发达国家,自由软件已是较普遍采用的一种方式。从商业意义上讲,商品软件的测试、反馈、改进、交流与传播,都离不开免费试用、交流共享这种方式。在极端强调知识产权的美国,自由软件却十分普遍,国内广泛流行的外国自由软件多为美国自由软件,《软件世界》杂志不定期公布的自由软件目录清单中有相当一部分是自由软件联谊网国际交流部提供的美国自由软件。事实上,我们每个计算机用户手中都有一些如磁盘拷贝、磁盘整理、文件管理等实用工具软件,基本上都是这种国外自由软件。

业界振臂高呼网络就是计算机,计算机就是网络,以至于Internet网络热得一塌糊涂,BBS作为Internet的重要组成部分,大量的信息资源和自由软件供广大电脑爱好者免费取用,这也许是Internet最吸引人的功能,用户只要通过Modem和电话线即可使用。BBS为自由软件的交流提供了公开场所,很受电脑爱好者们的喜爱。

2.2自由软件在国内的大气候

在中国软件行业协会中有一个分会---自由软件分会,该分会于93年4月面向全国各行各业成立了自由软件联谊网,三年多来的自由软件联谊活动在全社会引起了极大反响,数千位个人网员和单位网员遍布全国29个省、市、自治区。联谊网成功地举办过自由软件展示会,组织自由软件参加计算机交易会和计算机应用成果展示会。联谊网除了向网员直接寄发自由软件信息和自由软件拷贝外,在《软件世界》杂志上设置有专门的自由软件栏目,不定期公布自由软件目录清单,截至1996年第6期止共了十七期近180余个自由软件,有时还刊登自由软件的功能介绍,凡是入了网的单位和个人,均可免费获得网上的自由软件。

自由软件联谊网的活动得到了一大批计算机软件专家、软件开发研制单位和软件公司的大力支持。著名的王码、希望、晓军、新天地等电脑公司向联谊网提供了各自优秀软件的自由软件版本;天汇、中国龙、利方、超想、CCED等国内优秀软件的自由软件版本也在联谊网中广为传播;王特绿色MIS和雅奇MIS等国内优秀数据库自动编程软件系统也纷纷加入了共享软件的行列;CCED的版权人朱崇君先生多次为自由软件发表高见。众人拾柴,越办越火。可以说,自由软件已经成为中国软件业的一个重要组成部分。

《软件世界》杂志对自由软件的高度评价:联谊网的自由软件活动将有助于提高全民族的知识产权保护意识、加快软件的研制开发、促进优秀计算机软件在我国的普及,这是经过了计算机行业多年的发展和酝酿,在新的市场经济的促进下,接受了国外Freeware的启发并结合我国的具体实际情况而逐渐成熟起来的。自由软件是推广普及计算机知识、造福社会、培养下一代计算机人才的科普性社会公益事业,是计算机事业的希望工程。

3.自由软件的存在基础

自由软件为什么会有如此巨大的社会反响和热烈火爆的交流市场?用户积极索取自由软件,说明自由软件决不是一些滥竽充数毫无用处的劣质软件,否则尽管不花钱,取之无用,反而占据磁盘空间,谁还会去花时间和精力瞎折腾。另一方面,有大量的自由软件提供者,显然不是一种简单的计算机行业软件的流通与交换现象,如果有人能从社会科学、人文科学、政治经济学、市场经济学、心理学、人性的本能等多学科广角度全方位去研究这一问题,肯定会有惊人发现,说不定能获得诺贝尔奖。

作为商品软件的试用版、测试版、普及版和低版本,以自由软件的形式广为散发,有其商业广告和市场策略的性质;而一些工具类和小技巧类自由软件则毫无商业意义,为什么仍然有广泛的提供者呢?

编程序很累,调试程序常常会通宵达旦,能做到这一点,单从个人对经济利益的追求来解释是不全面的,对于某些利已主义者来说也许是这样,而对于那些电脑迷程序狂计算机人而言,所谓的工作激情、思想根源和行为动机显然是争取诺贝尔奖获得者们的重大研究课题。科学家的执着追求,发明家的废寝忘食,科技工作者不计报酬撰写论文(近年来在一些学术刊物上发表学术论文不但无稿费可言,反而要交版面费)等等事例,都不能完全用经济利益来解释。《组织人事报》称:当前人才流动的主要动机不再是追求高薪收入,而是寻找自身价值发挥的最佳环境。可见,现实生活中人性的本能反映与人的需求和欲望的多元化,使得对某些事物的解释众口异说,有人就是愿意将自己的劳动成果无偿奉献给他人,并以此为自己生活中的一大乐趣,我想这正是自由软件存在的基础的基础。

软件是有生命的。软件的生命就是软件的生存周期,即从提出软件产品开始,直到该软件产品被淘汰的全过程。软件的生存周期说明,软件不具备收藏价值,不存在增值意义。软件的发展非常迅速,更新换代十分频繁,新版本出来老版本基本上就没有什么商业意义了,这也许是商品软件提供自由软件版本的原因之一。个人开发的形不成商品的软件,在生命周期内不进行交流,个人的劳动价值就没有得到社会的承认,是不是有点冤枉?

4.关于工程地质自由软件与转让软件

我们的许多地质计算机人员在长期的生产实践过程中积累了大量的编程技巧、实践经验和实用程序(软件),来之不易,弃之可惜。由于水利水电工程地质专业的特殊性和复杂性,专业软件的难度较大,用户群又十分有限,标准化程度低,规范性差,各家自主开发,极少进行交流,又难以形成商品,与其如此自编自用自生自灭,还不如贡献出来作为自由软件或共享软件在系统内广为交流,互通有无,实现这些知识产品的真正价值。

事实上,水利水电系统各单位自行开发的一些实用软件一般达不到商品软件的要求,因此,完全没有必要各自为政,互相封闭,低层次的重复开发,实在是得不偿失。其实,提倡软件交流,反对低层次的重复开发,早已是许多领导讲话和技术干部献计献策中多次提及的,绝不是笔者个人的大声疾呼。当然,软件作者不愿意将自己的作品作为自由软件提供出来交流,也是无可非议的。

需提请用户注意的是,要钱的软件并不都是好软件,反之亦然。特别是单位之间的引进和转让软件,纠纷较多。该类软件维护困难,要价很高,没有售后服务,有可能是一锤子买卖,近年来在本系统中已经有类似现象,用户在引进时一定要慎重。我们也希望那些不太成熟的软件要自重,一锤子买卖不旦损害了兄弟单位的利益,而且损害了自己的声誉,眼前利益短期行为不可取!

我们曾经为个别软件写过推荐意见,其目的在于请更多的用户去试用和测试,绝对没有要用户掏钱购买这类没有经过严格测试和相当数量的用户群检验的不成熟软件。我们已经多次声明不搞软件鉴定,而将软件鉴定这一神圣职责交给用户。目前由水利总院勘测处主办的《工程地质计算机应用》刊物上刊登的各类专业软件介绍,完全是出于信息交流的目的,建立起沟通软件开发者与用户之间的桥梁和纽带。各单位在进行专业软件引进和转让时风险自负。

第7篇:软件试用期转正工作范文

正常使用。对计算机的维护和维修,不但要懂得硬件的知识和技术,还要懂得软件的知识和技术。只有掌握硬件和软件的基本知识和技术,才能搞好计算机的维护和维修工作。

【关键词】 硬件;软件;计算机;要求;目的

一、家用计算机的使用要求

现在,通常的家用计算机主要是青少年用于配合学校学习而购置,硬件以单CPU台式机为主,配以微软系统软件、OFFICE软件和防病毒软件为主。实际上,青少年把计算机用于学习的时间不多,多是用于上网浏览和打游戏。他们使用的硬件往往是比较近代的产品,配置也比较高新;对应用技术软件则要求不多,至多在添加设备扫描仪的同时加上图形软件。

二、家用计算机的维护要求和目的

1.硬件的维护要求和目的。越高档的计算机,它的硬件就越要求好的运行环境,好的环境就需要好的维护措施,才能防止运行环境变坏,才能保证计算机运行良好。提出下列要求:(1)定期检查电源散热风扇是否运转正常,灰尘多时要拆开清洁。目的是防止电源风扇停止转动而影响电源部件的散热需要。(2)定期清洁软盘和光盘驱动器的磁头与光头(如半年一次),目的是防止磁头或光头因为灰尘或脏物造成读盘出错。(3)定期检查CPU、显示卡等部件上的散热风扇是否运转正常,目的是防止风扇停止转动而影响CPU和显示卡等主要部件的散热需要。(4)计算机要定期进行使用,避免长期放置不用,目的是防止计算机元件因为接触不良或电容失效而影响需要使用时无法工作。(5)开机时应先给外部设备加电,后给主机加电;关机时应先关主机,后关各外部设备,开机后不能立即关机,关机后也不能立即开机,中间应间隔15秒以上,目的是防止电源电压对计算机元件的意外冲击而损害。

2.软件的维护要求和目的。(1)开机后,系统软件没有完成进入正常使用时,不能立即关机,目的是防止不但容易损坏软件,也会容易导致硬件损坏。(2)基本应用软件安装使用正常后,马上进行系统区域备份工作,目的是为快速修复系统软件作好预备工作。(3)必须安装有防病毒软件后才能复制非本机的文件进入本机和上网浏览,防病毒软件发出提示时,不能确认的不要允许通过,防病毒软件必须要定期升级更新,目的是防止病毒软件损害计算机内的软件甚至是硬件,病毒软件几乎每天都在更新,防病毒软件也要求能自动更新。(4)随时或定期做好自编文档、自拍图片和录象等备份工作(方法参照第2条),目的是防止因为计算机系统软件或硬件的损坏而导致自己的劳动果实丢失。(5)不要随便删除系统盘上的软件,目的防止系统软件链被意外损害而系统无法正常工作。(6)同类型的软件不要全部安装使用,只挑选一种,目的是避免软件冲突。(7)执行软件工作,没有必要的话,尽可能不要同时执行同类型的多任务工作,目的是防止CPU工作量大,耗能也大,速度也会降低,软件容易出错。(8)关机时按系统软件的要求进行操作,不要直接使用硬件按钮简单地进行关机,目的是避免系统软件出错或损坏,导致下次开机不能使用,或要花费较多的时间启动软件自动进行扫描检查。

三、家用计算机的维修要求

(1)熟悉计算机硬件各部分功能,熟悉硬件自带软件的使用,熟悉组装过程。(2)熟悉计算机通用系统软件的快速安装与使用,熟悉常用软件的安装和使用。(3)会使用测试卡、万用表等工具检查硬件基本数据状态。(4)会对比分析硬件的正常与否,用替代法判断硬件的好坏。(5)会使用工具软件检测硬件的性能。(6)会使用工具软件调整或修复可以进行修复的硬件。(7)会分析检测主机关联设备的正常与否,会检测常见设备的正常与否。(8)会分析主机故障的原因是属于硬件引起还是软件产生。(9)需要熟悉局域网有关硬件和软件的安装和应用,会分析网络故障的原因是由硬件还是软件引起。(10)对每次出现的故障和维修结果,要进行记录和总结,积累维修资料,多翻阅学习计算机软硬件书刊,以提高维修的效率。

四、非家用计算机的维护和维修要求

(1)必须具有家用计算机维护和维修技能。(2)要了解和熟悉本单位或行业的计算机硬件构造,知道部件的性能。(3)要了解和熟悉本单位或行业的软件的安装和使用,要设置软件的备份工作。(4)要熟悉常用工具软件的安装和使用。(5)对24小时运行的机器,要定期在机器闲时阶段进行停机或不停机检查和维护。(6)对配有的UPS电源,进行定期的放电和功率测试,防止UPS电源失效而无法起到备用电源的功用。(7)设置运行维护记录表格,定时记录有关状况,以保证维护工作执行和完成。

参考文献

[1]王佩珠.电工电子学[M].合肥:中国科学技术大学出版社,1993(5)

第8篇:软件试用期转正工作范文

关键词:自动测试系统;VXI;LabVIEW

中图分类号:TP274;V247.1

在现代战争中,作战飞机需要高效、可靠的保障装备对其进行测试及维护。由于现有的测试设备操作复杂、可靠性差,且测试效率较低,因此就对新的测试设备研制提出了更高要求。

自动测试系统(Automatic Test System)始于20世纪50年代中期,经历了专用测试系统(第一代)、积木式自动测试系统(第二代,基于GPIB总线,由程控台式仪器组成)和模块化自动测试系统(第三代,基于VXI、PXI等总线,由模块化的仪器组成)三代。本文从工程角度出发,介绍了一种基于第三代技术的机载任务机自动测试系统,并详述了其硬件及软件的设计与实现。

1 测试需求分析

机载任务机是飞机航电系统的控制和管理核心,主要实现航电系统的通信管理、任务计管理、语音告警、综合显示管理及飞行员接口控制等。任务机的待测项目包括CPU自测试、离散量输入、离散量输出、模拟量输入、1553B总线、RS422总线、视频切换、语音告警、电源拉偏及整机功耗等。

2 硬件产品结构

根据任务机的测试需求,自动测试系统采用通用的VXI总线结构,以VXI测试设备为主,辅以控制设备等其它设备,主要的功能块有:

2.1 VXI系统:采用VXI标准总线,根据任务机测试的最大需求,选用标准的测试模块和机箱进行集成,主要包括离散量输入/输出模块、模拟量输出模块、RS422通讯模块、1553B通讯模块及切换矩阵开关等。各个VXI模块在机箱中通过VXI总线相连,受工控机测试软件的控制,为被测件提供激励信号并采集相应的响应信号;

2.2 控制设备:采用先进的工控机对各个设备进行控制。工控机内选用IEEE- 1394型零槽控制器模块,可直接将工控机和VXI 系统连接,实现对各种测试模块的控制与配置。工控机还具有GPIB接口和Fireware接口,均使用PCI总线板卡,分别用于工控机与程控电源、示波器,及与VXI系统之间的通讯;

2.3 接口适配器:包括接收器和固定器两部分。在接收器插件上有高频、低频、信号、电源和功率等各种插针组成的插针阵列,一端用于连接适配器插件,另一端连接到被测件,具有可靠性高、灵活性强及保护性好的特点;

2.4 视频显示控制设备:包括视频信号发生器、视频转换盒及多功能显示器(MFD)等,分别提供被测件的视频信号输入源、视频信号格式转换及视频输出终端;

2.5 测量设备:用于测量被测件的直流电压、直流电流及电阻,还可用于被测件特殊输出信号的测量,主要包括示波器和万用表;

2.6 供电设备:主要由为任务机供电的+28V电源和测试使用的+5V电源组成,均使用直流程控电源。还包括为系统紧急供电的不间断电源(UPS),可让用户在系统突然断电时有充分时间下电,保证被测件和自动测试系统的设备安全;

2.7 断点板:自动测试系统和被测件接口上的一个分支点,主要用于系统维护、检测测试设备的信号连接以及被测件关键信号测量等,且对断点板的测量点进行操作时不会影响被测件及自动测试系统的正常运行;

2.8 测试电缆:实现自动测试系统与被测件的电气连接。

自动测试系统的硬件组成如图1所示。

3 工作原理

根据机载任务机的实际功能划分,自动测试系统的测试项目应包括以下几个部分:

3.1 CPU自测试:测试应用软件向被测件的CPU模块发送自测试指令,CPU模块进行自检后将结果显示在工控机的屏幕上;

3.2 离散量输入:系统分别为被测件的每个离散量通道注入信号,同时启动接口读周期,读取各输入离散量经TTL转换后所对应的数据来检查离散量输入通道的正确性;

3.3 离散量输出:系统向被测件发送离散量输出指令,系统读取离散量输出值来检查离散量输出通道的正确性;

3.4 模拟量输入:系统向被测件输入电压模拟量,并将被测件采集的数据与注入的数据比较判定转换正确性及转换的精度。仿真卡输出的电压值可动态显示,方便测试者判定模拟量测试的正确性;

3.5 1553B总线:由系统的1553B仿真卡向被测件的MBI模块发送上/下网指令,并仿真它机设备向被测件发送数据包,被测件接收到后再回送至自动测试系统以判断通信是否正确;

3.6 RS422总线:由系统的RS422仿真卡仿真它机设备与被测件进行握手,根据被测件的请求发送命令字及数据包,被测件接收到后再回送至自动测试系统,并判断通信是否正确;

3.7 视频切换:视频信号自动测试系统的视频信号发生器提供,通过被测件的视频矩阵切换后,信号输出至自动测试系统的监视器和MFD来显示,由操作者观察显示图像的正确性;

3.8 语音告警:系统向被测件发送语音播放指令,被测件将语音信号输出至自动测试系统的音箱,由操作人员听取结果并验证正确性。同时语音信号连接至示波器输入,可以观测语音信号的电压幅值;

3.9 电源拉偏:自动测试系统通过GPIB可自动调整+28V电源输出,通过工控机显示器观测被测件的上电自检结果是否正确;

3.10 整机功耗:系统通过GPIB读取被测件正常工作时的电流值,该读数乘以28之后将结果显示在工控机上。

整个测试流程由工控机中的测试应用软件控制,测试完成后可生成测试数据或测试报表。

4 软件设计

机载任务机自动测试系统软件分为系统软件、测试应用软件及自检测软件。主要有:

4.1 系统软件:包括工控机中安装的Windows XP操作系统及各VXI模块的设备驱动程序,主要包括RS422仿真卡、1553B仿真卡、GPIB设备、D/A板卡、数字I/O转换设备的驱动程序等;

4.2 测试软件:主要实现测试管理、数据管理和系统帮助等功能,由LabVIEW工具进行开发。测试管理用来测试系统综合能力,通过向目标机发送模拟数据和指令,目标机运行真实的应用软件,判断能否正常工作来完成系统测试,包括测试项目选择、参数设置、仪器控制、数据采集和处理、波形输出、分析和显示等功能,是整个测试系统的核心;数据管理实现对测试数据的管理和维护,生成测试结果的报表和数据回调;系统帮助用于对用户进行系统介绍及操作指导;

4.3 自检测软件:用于对自动测试系统的硬件资源进行全面测试,确保该系统的正常运行,主要分为VXI总线测试、仪器自检测及电缆回绕测试。其中通过VXI总线测试可通过软件调用VXI模块自带的自检函数来实现;仪器自检可通过GPIB或LAN向仪器发送自检指令,并回读检测结果实现;电缆回绕测试由软件操作矩阵开关完成电缆的通断测试。

软件结构框图如图2所示。

图2 软件结构图

自动测试系统上电后,自检测软件首先进行系统硬件初始化,检查VXI总线模块是否连接正常。如果自检测不通过,则显示出未通过自检的模块;如果自检通过,则跳出登陆界面,输入用户名、密码及被测件号,登录测试应用软件主界面。进入主界面后,用户选择要操作的项目,测试软件进入相应项目的执行界面。在用户完成所有的测试后,测试应用软件进行数据收集,并将测试结果显示在屏幕上,也可输出至打印机。自动测试系统的测试界面如图3所示。

图3 测试应用软件界面

5 结束语

本文介绍的基于VXI 总线的自动测试系统,已成功应用在部队武器装备保障设备中,实现了对机载任务机高效、准确的测试。实践表明,其具有操作简便、工作稳定、测试精度高、软件界面简洁等优点,并能实时显示测试数据及打印报告。该自动测试系统的应用,降低测试人员的工作强度,有效地提高了测试精度、速度和自动化水平。

参考文献

[1]刘正升,万程亮,蒋志忠.自动测试系统中新技术的发展及应用[J].中国测试,2009,35(4).

[2]赵大鹏,刘泽乾.基于VXI总线的空空导弹发控平台测试系统设计[J].计算机测量与控制,2008,16(1):78-79.

[3]李林,赵明莉.某机载显示处理机测试设备设计与实现[J].测控技术,2012,31(8).

第9篇:软件试用期转正工作范文

【关键词】手机 软件测试 自动化

对手机软件进行测试,主要是避免存在问题对软件稳定性与生命周期造成影响,并且并不仅仅是发生在编码结束后,而是要贯彻到整个生命周期中。对于手机软件测试工作来说,工作量比较大,重复性劳动较多,特别是回归阶段,对人力资源与项目资金等方面要求十分严格,因此启用自动化测试很有必要,可对整个过程进行优化,打破传统人工测试的局限,提高软件测试工作效率。

1 手机软件自动测试概述

1.1 分类

与传统手工测试方法相比,自动测试技术现在正逐渐被应用到手机软件测试中,对人力资源与项目资金等方面做了更进一步优化,可以更进一步提高测试效率。常见的手机软件自动测试技术可以分为五类,即测试管理、单元测试、性能测试、测试数据生成以及功能/系统/回归测试等,被分别应用于不同阶段,贯穿于软件的整个生命周期,来确保其可以正常运行,提高软件运行稳定性。

1.2 特点

1.2.1 高效性

主要是指软件程序的回归测试,是自动化测试的主要任务,尤其是对于部分修改相对频繁的程序来说,具有良好的应用效果。回归测试动作与用例均为提前设计好的,可以预料测试结果,这样采用自动测试既可以更高的程度提高工作效率,与人工测试相比所用时间更短。并且,基于迭代开发频繁的可测试软件,增加了手工测试的难度,应用自动化测试技术,则可以在更短的时间内完成更多的测试。

1.2.2 适应性

手机软件测试具有比较高的复杂性,存在大量的重复性测试内容,对测试人员的专业能力以及工作态度均要求较高,但是在持续工作过程中很容易出现失误。选择应用自动测试,可以解放更多劳动力,将测试技术人员更多的精力设计更好的测试用例。并且因为测试工作自动进行,更容易发现被测软件存在的变化,提高测试结果与执行内容的一致性。

1.2.3 利用性

手机软件自动化测试严格按照设计的计划进行,并配置相应的开发与测试人员,与手工测试方法相比,整个测试过程可以在人员较少的情况下自动工作,或者是在人员休息的晚上甚至是周末执行测试。可以更大程度上来提高企业各类资源的利用效率,消除了开发与测试之间需要等待的时间。

2 手机软件自动化测试优化测试分析

2.1 优化系统控制方式

2.1.1 硬件控制

应用低级别硬件语言对手机操作流程进行控制,并采取向控制设备转发的方式实现对手机的控制。在实际测试工作中,构建此种模式具有一定的难度,需要做好对工控设备支撑的研究,同时对项目资金要求较高。主要被应用于更新速度慢以及版本间差异小的手机测试,对于支持的测试类型存在更多模拟状态,如存储卡弹出与断电等。

2.1.2 软件控制

应用高级语言对手机操作流程进行控制,对提高系统运行速度具有重要意义,并且可以提升脚本复用性与可读性,降低了脚本扩展与维护的难度。与硬件控制模式相比,此种系统在构建时难度更小,具有更大的普及优势。另外,面向技术为一种全新设计与构造软件技术,利用增加代码可重用性、程序自动生成功能以及可扩充性等来提高编程效率,降低软件维护费用。此项技术的应用主要是将手机各个特性作为单独的类别进行处理,封装起相关数据与操作,在手机执行某个操作程序时,通过调用相关方法数据即可完成。

2.2 优化测试结果分析方法

2.2.1 比对方法

(1)文字对比。即对测试信息中存有的文字内容进行提取,并与提前准备好的标准文字进行对比,是一种应用相对广泛的方法,具有易操作性与高效性特点。但是此种方法最终比对结果不够直观,存在一定不足,如手机软件信息、位置信息丢失等。

(2)图标对比。采取手机图片方式作为结果,对手机软件状态进行记录,然后将其与提前准备的标准图片进行比较。此种方法应用的主要对象为嵌入式设备软件测试,测试结果更为直观,并且操作过程比较简单,但是必须要做好预防工作,避免其他客观因素对结果的影响。

2.3 XML比对

手机软件具有明显的特点,基于XML测试结果比对优化,设计一种全新的结果存储与分析方式。

(1)存储方法。手机执行完指定测试用例获取测试结果时,将手机软件用户界面所有菜单列入相应结构化文件中,主要负责用户界面的描述,并将其作为标准输出与测试运行结果进行对比。

(2)分析方法。系统提取每个待比较界面信息,按照要求信息录入XML文档中,将其作为最终测试结果,与提前准备好的运行结果进行对比。

3 结束语

将自动化测试技术应用到手机软件测试中,与传统手工测试方法相比具有更大的优势,但是也存在一定的不足,例如自动化测试对测试人员的要求更高,手机软件版本更新后测试脚本也要随着更新,用例覆盖不全面,不能完全模拟人的操作等,因此需要基于实际需求对其进行综合分析,采取相应的技术对其做更进一步的优化,争取不断提高其应用效果。

参考文献

[1]常远.手机软件自动化测试的研究与实现[D].北京邮电大学,2010.

[2]张哲铭.手机软件自动化测试方案的设计与实现[D].北京交通大学,2008.

[3]张克东,庄燕滨编著.软件工程与软件自动化测试教程[M].北京:电子工业出版社,2002(02).

[4]李海峰,路民燕著.软件可靠性与软件测试关系浅析[A].全球第七届可靠性学术会议,2005.

[5]曲朝阳,刘志颖.软件测试技术[M].北京:中国水利水电出版社,2006.

[6]崔启亮,胡一鸣.国际化软件测试[M].北京:电子工业出版社,2006.