软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试技术>>其他相关>>正文
基于PB环境下的软件测试
文章出处:网络 作者:丁顺利 袁静波 发布时间:2006-09-07

  随着软件工程技术的发展,软件设计规模的增大,软件测试在软件开发过程中的作用显得尤为重要。目前,软件测试技术的研究领域虽然取得了一些成果,但对具体的开发环境下开发的特定领域的软件系统应采用怎样的测试方法对其进行全面的、完整的测试,仍没有具体的标准可以遵循。

  网络技术和数据库技术的飞速发展,使管理信息系统(MIS)向客户机/服务器(Client/Server或C/S)或B/C(Browser/Server)加SQL Server(或Sybase、Oracle)模式发展。开发工具也大多不再是面向过程的语言,而是使用诸如PB(Power Builder)的Script等具有面向对象特征的脚本语言。开发环境的改变及应用的日趋复杂使MIS的开发方法也正在从传统的结构化方法向面向对象的方法转变。因此,对基于PB等环境下的软件测试技术及方法的研究,不仅具有方法论上的理论意义,而且具有使用价值。

1.PB软件的特点

  利用PB开发中大型的MIS应用系统,一般采用三层C/S的体系结构.在这种结构下,系统可分为两部分,即后台数据库部分和前台应用程序部分,后台采用非面向对象的关系数据库管理系统RDBMS(如SQL Server等)实现对应用数据的组织,安全性、完整性维护,以及存取控制;前台应用程序部分利用PB提供的可视化编程技术实现用户的各种需求。其特点表现在,利用PB提供的窗口、菜单及数据窗口等对象很方便地实现友好的用户界面,系统的各种功能以窗口对象为主线,利用PB 提供的Script语言,通过对窗口的各控件的事件描述来实现。与传统的面向过程的语言相比较,PB支持面向对象的程序设计方法,其用户界面的元素都是对象,所以都有属性、事件和方法,具有继承、封装和重用等面向对象的特性。

2.测试目标

  无论传统的系统,还是基于PB的C/S系统,测试的目标都是确保所开发软件的功能符合用户的要求。具体表现在以下几个方面:
  (1)确保系统达到需求功能的说明;
  (2)确保系统满足性能需求;
  (3)强度测试确认程序能够处理要求的负载;
  (4)确保系统在要求的硬件和软件平台上工作正常。

3.测试方法

  原则上讲,可以将软件测试方法分为两大类,即静态测试和动态测试。静态测试是对被测程序进行特性分析的一些方法的总称,这种方法的主要特性是不利用计算机运行被测试的程序,而是采用其他手段达到检测的目的。动态测试是实际运行被测程序,输入相应的测试用例,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性。动态测试的两种主要的方法是黑盒测试和白盒测试。

4.测试过程

  测试虽然是软件生存周期的一个独立阶段,但测试工作却渗透到从分析、设计直到编程的各个阶段中,如测试计划的编写从分析和设计阶段就开始了,而具体的测试工作随编程工作的不断深入也在进行中。在实际工作中,测试环节可分为明显的、同等重要的三个阶段:即单元测试、集成测试(又称构件测试)和系统测试。测试工作中的第四个阶段是验收测试阶段,验收测试无论在规模上或性质上都和系统测试很相似,它们的根本区别在于:前者是内部的,而后者则是受“客户”控制的。

(1)单元测试

  软件单元定义了一个软件很底层的块,用PB开发的客户机/服务器的软件系统中,一个窗口、函数、菜单、报表或一个存储过程都可以作为一个单元进行测试。单元测试是测试的第一步。

  1)人员安排:对于一个完整的软件单元,没有人比它的开发者更熟悉它,因此,开发者自己对其进行测试是最合适的。

  2)单元测试计划:测试计划必须在单元测试之前被设计和记录好。大量的文档说明必须足够详细,以备当单元开发者调离、提升或其他原因离开其岗位时,其他人员也能对相应的单元进行测试。此外,在集成测试和系统测试阶段,清晰、详细、易于理解的单元测试文档对于测试者也将发挥巨大作用。

  单元测试的测试计划由单元的开发者(也是该单元的测试者)编制,但在测试计划执行前必须进行审查。这些审查由开发者以外的人进行,第一遍审查由开发者的直接上司去做,其目的在于找出测试计划中的错误、缺点和疏漏之处。第二遍审查由测试该单元所属系统的测试人员进行,其目的在于确认测试计划符合公布的标准。如果测试计划在任何方面有问题,都将被立即退回到开发者手中。

  3)进行单元测试的时间:在客户机/服务器的开发过程中,单元测试是测试的第一步。经验表明,单元测试执行得越快,它的结果就越有价值,在开发周期中错误发现得越早,纠正它们所花的代价就越小。一般来讲,单元编码完成后,就对其进行单元测试。另外,单元测试可以并行进行。对于彼此独立的单元,进行并行测试可以加速测试的进程。

  4)单元测试阶段的测试类型:在单元测试阶段一般采用白盒测试法。深入到代码层去充分地测试它们是必要的。在这一阶段,必须进行的测试有:路径测试、声明测试、循环测试、边值测试、接口测试、数据确认、事务测试等。

  5)单元测试的特殊考虑:在PB环境下,开发的软件是以窗口为主线将软件的功能联系起来,软件系统表现为各种各样的窗口,因此,对窗口中各控件的各事件的描述的测试是这类软件测试的中心。

  a.控件的测试:一个空间可以看成是由相关联的一组事件的描述组成的,完成一个相对独立的功能。对每一个事件的Script分别进行测试就完成了对一个控件的测试。与传统的软件相比,PB开发的软件风格表现在各事件独立存在,因此对它的测试相对容易。一般来讲,先按设计的规格说明对其代码进行审核;然后,用白盒法对其进行测试,可以达到较好的效果。

  b.窗口的测试:宏观上看,很像是集成测试。其实,所谓单元测试和集成测试也都是相对而言的,在有些情况下不易分得很清楚。在单元测试阶段,对窗口的测试主要是测试窗口上各控件是否能按设计要求正常工作。在软件开发过程中,制定了一系列的标准文件,包括设计文档标准,界面标准,测试大纲等。对窗口和控件的测试过程中,界面标准和测试大纲是测试的依据。

(2)集成测试

  在将所有的单元经过测试以后,接着进行集成测试。集成测试也称综合测试,即将已分别通过测试的单元按要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。

  1)人员安排:综合测试既要求参与的人熟悉单元的内部细节,又要求他们能够从足够高的层次上观察整个系统。一般由有经验的测试人员和主要的软件开发者来完成集成测试的计划。

  2)测试计划:集成测试计划由系统设计人员在设计阶段制定,它是和设计规格说明同时完成的。在这份计划里主要包含的内容有:测试的描述和范围、测试环境、时间表、集成次序、测试用例、测试的预期结果、测试的实际结果等。

  3)测试内容:在经过了单元测试后,需要将所有单元集成到一起,组成一个完整的软件系统。需重点测试:各单元的接口是否吻合、代码是否符合规定的标准、界面标准是否同一等。

  4)集成策略:在PB环境下开发的软件系统进行测试按自底向上集成的方式比较自然。这种方法是将底层的单元分组集成测试,然后再逐步向上将软件集成起来,直到最后所有的单元都在一个组中。测试可按下列步骤进行:

  a.将最底层的窗口分组,原则是将那些与上层某个窗口相关联的窗口为一组。
  b.对每一组分别进行测试,各组测试可并行展开,这样可以加快测试的进程。
  c.沿软件的结构,逐级向上集成,直到所有的单元都组合到一起,这样就完成了集成测试的任务。

  5)测试方法:集成测试阶段是以黑盒法为主,在自底向上集成的早期,白盒法测试占一定的比例,随着集成测试的不断深入,这种比例在测试过程中将越来越少,渐渐地,黑盒法测试占据主导地位。

(3)系统测试

  从技术角度看,系统测试是整个测试阶段的最后一步,所有的开发和测试在这一点上集中表现为生成一个具有一定功能的软件系统。该阶段主要对系统的准确性及完整性等方面进行测试。主要进行:功能确认测试、运行测试、强度测试、恢复测试、安全性测试等。系统测试的测试人员由测试组成员(或质量保证人员)或测试组成员与用户共同测试。在整个系统开发完成,即将交付用户使用前进行。在这一阶段,完全采用黑盒法对整个系统进行测试。


站内搜索
相关文章
◎用Visual Basic 6.0实现自动化测试
◎主流软件测试工具介绍
◎软件测试人员提高测试效率与测试质量的六大非技术措施
◎新人如何开始QA/测试生涯
◎怎样成为一个合格的测试工程师
◎项目测试经验总结
◎微软的测试方法
◎从程序员到软件测试工程师
◎软件测试工程师的工作总结
◎企业内部实现软件测试自动化的方案探讨
◎软件测试的十大原则
◎出色管理者的十大思想和行为特征
◎软件界面的美观性及软件的易用性方面
◎系统测试过程中应注意的问题
◎大揭密:微软自己如何测试Windows Vista
◎如何避免面试失败
◎你适合做测试么?(续)
◎给年轻工程师的十大忠告
◎经济性软件评审
◎安装测试的重点
◎你适合做测试吗?
◎进行可用性测试的8个指南
◎数据库输出HTML格式报表的测试
◎谈软件测试的心得
◎软件测试工程师面试题
◎测试人员对软件开发到底需要掌握到什么程度
◎自动测试的投入与产出
◎有关短信测试
◎测试需要掌握什么
◎软件测试步骤
◎给想进入软件测试新手建议
◎究竟什么是软件测试
◎利用下游故障分析改进测试有效性
◎软件外包带来的利弊
◎个人职业生涯规划发展
◎快速测试与普通测试的区别
◎如何打造现代软件企业的核心竞争力
◎什么是ERP,通俗版解释
◎什么样的测试人员是好的测试人员
◎看足球学习管理团队
◎我的测试经历(3)
◎我的测试经历(2)
◎我的测试经历(1)
◎测试执行中非常有效的策略
◎跨越软件测试术语“拦路虎”
◎面试官最爱问的问题背后真相
◎应届毕业生少走弯路的十条忠告
◎测试自动化普遍存在的问题
◎软件测试员自身素质培养
◎测试执行中非常有效的策略
热门文章
◎软件测试工程师面试问题选登
◎一个初级测试工程师的工作总结
◎软件测试常用术语表
◎测试人员面试三步曲
◎DOS命令大全
◎什么样的测试人员是好的测试人员
◎软件测试基本方法
◎好的测试工程师应具备的素质
◎软件测试入门书籍(2)
◎我在软件公司成长的三年
◎面试官最爱问的问题背后真相
◎软件测试工程师面试题
◎应届毕业生少走弯路的十条忠告
◎有关软件测试的术语定义集锦
◎微软的软件测试方法(一)
◎我的测试经历(1)
◎全景记录:软件测试工程师的一天
◎软件测试步骤
◎谈谈对测试职业的看法
◎漫谈软件测试工程师的角色定位
◎测试需要掌握什么
◎软件测试员自身素质培养
◎测试小技巧集锦之一黑盒测试
◎近10年最强的50本计算机图书,您读过几本?
◎软件测试人员职业发展助手
◎测试要点总结
◎如何制定成功的测试计划
◎测试的主要评测方法(1)
◎什么是ERP,通俗版解释
◎测试经验交流
◎软件测试及其支持工具
◎编写优秀Bug报告的艺术
◎软件产品测试标准
◎从程序员到测试工程师
◎微软的软件测试方法(二)
◎软件测试应遵循的八条原则
◎测试版本大全
◎我的测试经历(2)
◎测试人员的挑战
◎网管和黑客都必须知道的命令
◎QA活动的理解与实施
◎Alpha和Beta测试简介
◎网络最经典命令行
◎想编写出优秀技术文档,先学学这四招
◎个人职业生涯规划发展
◎你适合做测试吗?
◎软件测试的误区
◎我的测试经历(3)
◎软件测试的心理学问题
◎软件测试组织与方法

Google提供的广告