ALDL

发布新日志

  • 走艰难的历程

    2007-06-23 00:02:44

    失败时觉醒,,,,,,,,,,,,,,,有事,,,,,

  • TestDirector

    2007-06-19 22:25:36

    TestDirector 7.2 使用简介

     

    本文用于简单描述测试管理TestDirector 7.2的安装、配置、使用过程,旨在指导从来没有接触过该软件的人员可以快速使用它。主要内容有:

    1  安装前期准备

    2  安装TestDirector 7.2

    3  客户端配置和控件下载

    4  创建项目

    5  定制项目模块、加入用户和授权

    6  Defect使用

    7  缺陷生命周期:

     

    安装前期准备

    注意:

    如果你不用第三方数据库,则这个步骤不是必须的.

     

        testDirector需要一种数据库支持,所支持的数据库有access, SQL server, oracle ,Sybase , Access我们以sql server2000为例

        放入sql server2000光盘,在自动运行导航界面中点击安装数据库服务器,按向导安装即可,有不明之处处,请参考Microsoft SQL Server 安装盘下的Readme.文件

    安装TestDirector 7.2

    1.         放入TestDirector 7.2安装盘,运行SETUP.exe文件,出现欢迎界面,点击next按钮.

    2.         输入license NO,例如: 902V142-Q10I510-GB10GB0-2BJ02R0,点击next按钮

    3.         选择支持的数据库服务器类型:MS_SQL server, Access, Sybase, Oracl,可选一个或多个, 点击next按钮

    4.         输入连接串,如:DBNETLIB,这里我们采用默认的,点击next按钮

    5.         指定项目安装的目录(其实大部分文件都安装在c盘下,所以有没指定一个样,哈)

    6.         输入你用于发送邮件的smtp服务名称(可以是ip),或者用系统iissmtp服务,这里我们输入一个smtp服务器名称:creawor.com,点击next按钮

    7.         输入虚拟目录名称,并指定物理安装位置,这里我们用默认值TDBINc:\inetpub\TDBIN,点击next按钮

    8.         这是一个你前面设置的信息摘要,确认正确后,点击install按钮开始安装

    9.         等待几分钟后就可以了,去轻松一下吧!

    10.     拷贝完文件后,显示了一个注册界面,点击next按钮

    11.     在文件区中,显示了一个进入TestDirectorurl链接,你要可要记得它:http://KM/TDBIN/default.htm,点击Start按钮结束安装,进入 TestDirector去看看吧,服务器安装到此结束,哈哈

    客户端配置和控件下载

    1  如果你要对项目定制和管理,则要从服务器下载客户端安装程序。下载位置在http://km/TDBIN/default.htmàTestDirector Plug_Ins Page-àTestDirector Client Side Setup

    2  双击TDClientSideInstallation.exe运行

    3  点击install按钮开发安装

    4  点击ok按钮关闭完成对话框

    创建项目

    1  打开:开始à程序àTestDirecotr 7.2àProject Administration Utility,系统弹出登陆对话框。

    2  初始用户名称为:Sysadmin,密码为空,点击OK按钮进入系统

    3  在主界面左侧可以看见已有二个项目(TestDirecotr_Application,TestDirector_Demo),我们点击工具条上的New按钮,弹出项目新建对话框

    4  默认项目名称为以“TD_”为前导字符,你可以更改,例如:TD_KM,当然这个你可任意输,全要保证唯一,选择数据类型,如:ACCESS,点击create按钮就新建了一个项目。(如果项目是要从已存在的项目复制,那么在新建对话框中点击copy form…按钮,在Project选择框中选择你要拷贝的项目,选择你要拷贝哪些类型的数据点击Create按钮创建

    定制项目模块、加入用户和授权

    1  打开Intrnet Explorer浏览器,在地址栏输入: http://km/TDBIN/default.htm

    2  点击左边的导航菜单Full TestDirecotr如果你是第一次使作,系统会开始下载客户端控件,其中有二个不定会下载在功,这时你要到插件页中去下载并安装它,详见客户端配置和控件下载

    3  点击顶上工具条上的CUSTOMIZE链接会弹出登陆对话框

    4  Project中选择TD_KM,就是我们上面创建的项目,输入用户名:admin,密码为空,(这是默认的系统管理员身份),点击ok按钮确认进入项目定制页面。

    5  如何修改密码呢?点击导航菜单change password进行修改,这个你会吧:)

    6  如何这定义自已的字段呢?点击customize project entities弹出定制对话框。(这里有六个表,每个表中的字段分为系统字段(system fields)和用户定段(user fields)),选择DefectàUser Fields节点,点击底部的new Field按钮,输入字段名称和数据类型,并选择显示模式.增加完后,点击ok按钮返回 查看(964) 评论(0) 收藏 分享 管理

  • 软件质量保证与测试 FQA

    2007-06-18 22:48:10

    针对大家对软件质量和测试的一些问题,参考了相关资料整理了此文档,并不断补充。

    • 什么是软件质量保证 ( Software Quality Assurance——SQA )
      主要从预防(prevention)的角度,透过监控来改近真个软件开发流程,并确认所有的标准与流程都被遵守,所有的问题都被找到并解决。所以,软件质量保证是与真个软件开发流程是息息相关的,而不是单单只有软梯测试而已。例如:在需求阶段,可能会要求真正的使用者参与,以确保需求真正的是使用者想要的,甚至透过互动的方式,帮助使用者找出更明确的需求。或者开发团队可能会采用问题跟踪管理。要求撰写文件。在编写代码阶段,可能会采取 Code Review 方式,减少 defect 产生的机会等。总之一切的活动在与预防软件质量的降低。
    • 什么是软件测试 ( Software Testing )
      主要从检测 ( detection ) 的角度,透过不同的条件验证系統的结果是否为预期的结果,例如使用者操作应用程序、执行某项的操作、并验证某个预期的结果是否发生,而验证的条件可以是正常与非正常的。
    • 最近有哪些严重的灾害或损失是由软件的臭虫 ( bugs ) 所造成的?
      • 2004年农历年前ATM跨行系统大当机!财金公司把矛头指向「瞬间交易量爆增」。不过,交易量还在系统的容许范围,财金公司无法确定系统当机的真正原因,已经向国外专家求援。
      • 200311月美商花旗银行台北分行日前发生网路信用卡客户资料外泄,财政部金融局今天要求花旗停止发行新信用卡一个月,至于花旗已经停止的网路申请及相关业务,必须继续停止三个月,直到问题有改善为止。
      • 20031020日财金公司因通讯控制机发生间歇不稳定,导致ATM交易延迟,财政部今天终于公布原因,金融局局长曾国烈表示,华南银行当天早上传送非约定信息,导致系统不稳定,经过专家建议已修改相关参数值,以处理瞬间大量的信息。

    ·         为什么管理层对于软件测试于保证 ( Quality Assurance ) 总是不重视?
    解决问题大家都可以看到表现,但是预防问题确很难看到绩效,我们可以从一个简单的中国语言可以看出这个道理:
    魏文王问名医扁鹊说:「你们家兄弟三人,都精于医术,到底哪一位最好呢?」
    扁鹊答说:「长兄最好,二兄次之,我最差。」
    文王再问:「那么为什么你最出名呢?」
    扁鹊回答:「我长兄治病,是治于病情发作之前。由于一般人不知道他事先能铲除病因,所以他的名气无法传出去,只有我們家的人才知道。」
    扁鹊又说:「我二兄治病,是治病于病情初起之时。一般人以为他只能治轻微的小病,所以他的名气只有本乡人知道。」
    扁鹊再说:「而我扁鹊治病,是治病于病情严重之时。一般人都看到我在经脉上穿针管来放血、在皮肤上敷药等大手术,所以以为我的医术高明,名气因此传遍全国。」
    文王说:「你说得好极了。」

    • 为什么软件会有臭虫 ( bugs )
      • 沟通不良或是完全沒有沟通:开发人员不了解客户要的时什么(软件需求)。
      • 软件太复杂:现今的软件已经太过于复杂,不管是Windows视窗软件、client/server、分散式架构、资料沟通、关联性资料库,每一部分都需要且具备专业知识,导致没有经验的开发人员无法全部了解并融会贯通。
      • 程序设计错误:程序设计师也是人,当然也会犯错。
      • 需求变更(不管有没有文件):需求的变更影响的层面非常广泛,如重新设计、重新安排计划、已经完成的工作可能要重做,甚至抛弃、硬件需求的影响等等,客户可能不了解变更的困难于成本,或是客户了解仍坚持要变更。
      • 时间压力:专家的时间表非常难以估计,通常都是以猜测的方式预估的。当结案的期限渐渐逼近,而危机也逐渐浮现时,错误也可能随之产生。
      • 过于自负:没问题、简单啦、我等一下就解决啦、更新程序代码很容易啦。
      • 缺乏文件:没有一个良好的文件管理体制,更严重的就根本没有文件记录。
      • 开发工具:视觉化开发工具、类库、编译器可能本身也有bug或是文件不足的问题,也有可能导致开发出有bug的软件。

    ·         什么是性能测试、负载测试、压力测试

    o         性能测试——泛指所有测试系统的性能测试,如负载测试(Load Test)、压力测试(Stress Test),通常会以系统回应时间或是同时可以有多少使用者上线为指标。

    o         负载测试(Load Test)——用以验证系统在真是使用的负载下,是否能达到预期的效果指标。

    o         压力测试(Stress Test)——用以验证系统在超出预期的负载下,系统的功能是否还是正常的。

    • 如何将质量保证引进组织中?

    • 什么是验证 ( verification ) 什么又是确认 ( validation )

    • 什么是 "walkthrough"

    • 什么是 "inspection"

    • 哪些测试应该被考虑进来?

    • 5个开发流程中最常见的问题?

    • 5个解决开发流程中最常见问题的方案?

    • 什么是软件质量 ( quality )

    • 什么是好的程序代码?
    • 什么是好的设计?

    • 什么是SEI CMM? ISO IEEE ANSI 可以带来什么好处?

    • 什么是软件生命周期?
    • 自动测试工具会让测试变得更容易吗?
  • 常规测试方法

    2007-06-18 22:46:23

    常规测试方法

     

     

    一. 功能测试

     

    1. 安装测试

    1)     安装过程中对于缺省安装目录及任意指定的安装目录,是否都能正确安装;

    2)     若是选择安装,查看能否实现其相应的功能;

    3)     在所有能中途退出安装的位置退出安装程序后,验证此程序并未安装成功(没有程序组及程序项产生)

    4)     软件安装后,对其它已经安装的软件是否有影响;

    5)     裸机安装后,各功能点是否可用;

    6)     安装前,安装程序是否判断可用磁盘空间大小,如果不能满足安装空间要求,安装程序能否继续;

    7)     安装过程中查看 版权声明、版本信息、公司名称、LOGO是否符合标准;

    8)     安装过程中界面显示与提示语言是否准确、友好;

    9)     重复安装时系统是否有提示、是否可以覆盖安装、是否可以升级安装、是否允许多版本共存;

    10)  是否有注册码或硬件加密狗,在没有它们(或错误)存在的情况下能否顺利安装。

     

    2.配置测试

    1)    是否可以按照用户手册的说明,运行于多种操作系统(Windows 各版本 、Unix Linux 等);

    2)    按系统最低要求进行软件的安装配置,查看能否正常实现各种功能;

    3)    数据源等信息配置不正确时能否给出提示信息;

    4)    是否可以按照用户手册的说明,支持多种数据库。

     

    3. 卸载测试

    1)     卸载后注册表中的注册信息及相关的程序安装目录是否能完全删除掉;

    2)     卸载过程中完全删除共享文件后,看其它程序能否正常运行;

    3)     卸载后,是否对其它已经安装的软件有影响;

    4)     系统卸载后用户建立文档是否保留;

    5)     软件卸载画面上的软件名称及版本信息是否正确;

    6)     在所有能中途退出卸载的位置是否能正确退出;

    7)     卸载过程中界面显示与提示语言是否准确、友好;

    8)     卸载后安装此系统能否打开原来保存的文件,并一切运行正常;

    9)     卸载程序如果要求重新启动机器,在重启动之间是否给用户提示以保存现有的己运行的程序的资料;

    10)  是否可以选择组件进行卸载;

    11)  卸载过程中,对意外情况的处理(掉电等)。

    12)  在卸载过程中,是否有终止或者结束按钮。

     

    4. 运行与关闭测试

    1)     运行时是否与其它应用程序有冲突(内存冲突)

    2)     是否可以同时运行多个程序;

    3)     任务栏有无程序运行提示;

    4)     若有未保存的数据,关闭系统时是否有提示;

    5)     后台服务程序在点击关闭按钮时是否有确认提示;

    6)     运行时是否过份占用系统资源、退出时能否完成释放占用的系统资源。

     

    5. 服务程序的测试

    1)    系统是否限制服务器程序启动的数量,如不限制,同一范围内启动多个服务是否对系统有影响;

    2)    服务程序能否长时间正常运行;

    3)    外界异常后,服务程序的自动恢复能力(服务器掉电、网络中断后恢复、数据库异常后恢复);

    4)    在点击关闭按钮时是否有确认提示;

    5)    应用程序与其他程序是否兼容(能否避免内存冲突)。

     

    6. 系统管理(参数设置)

    1)     参数设置后,能否正确的进行应用;

    2)     设置错误参数,系统的容错能力;

    3)     修改参数,对与之相关模块的影响;

    4)     系统是否有默认的参数,A 有:默认的参数是否起到作用 ;B 没有:不设置,系统能否运行或者给出提示。

     

    7. 用户、权限管理

    1)     赋予一个人员相应的权限后,在界面上看此人员是否具有此权限,并以此人员身份登陆,验证权限设置是否正确(能否超出所给予的权限);

    2)     删除或修改已经登陆系统并正在进行操作的人员的权限,程序能否正确处理;

    3)     重新注册系统变更登陆身份后再登录,看程序是否能正确执行,具有权限是否正确;

    4)     在有工作组或角色管理的情况下,删除包含用户的工作组或角色,程序能否正确处理;

    5)     不同权限用户登录同一个系统,权限范围是否正确;

    6)     覆盖系统所有权限设定;

    7)     能否添加信息为空的用户(其中包括空用户名及空口令、空用户名非空口令、非空用户名及空口令)

    8)     能否添加长用户名及长口令,如果允许,新用户能否正确登录

    9)     系统是否允许删除系统管理员这一特殊用户或修改系统管理员口令,删除或修改后系统的实际情况

    10)  登录用户能否修改自己的权限;

    11)  添加用户(有标识或编号):标识相同,用户名不同;标识相同,用户名相同;标识不同,用户名相同;标识不同,用户名不同;

    12)  登录用户能否修改本人(或其他人)的信息,删除本人(或其他人);

    13)  修改用户的信息(包括权限,口令,基本信息等),对其他模块的影响;

    14)  修改用户信息:修改后的用户信息和已经存在的用户信息相同;修改后的用户信息和已经存在的用户信息不同;

    15)  不给用户授权,是否允许登录;

    15)  改某些设置时,是否会影响具有上级权限及相同权限人员的设置;

    16)  系统管理员修改了某些数据,以其他人员身份登录时数据是否改变;

    17)  用户能否同时属于多个组,各个组的权限能否交叉;

    18)  删除后重新添加的用户是否具有以前的权限;更改用户各项属性(包括权限)看对权限是否有影响。

     

    8. 系统登录测试

    1)     使用合法用户登录系统;

    2)     用户名、口令错误或漏填时能否登陆;

    3)     系统是否容许多次非法登陆,是否有次数限制;

    4)     使用已登录账号登录系统系统能否正确处理;

    5)     使用禁用帐号登陆系统能否正确处理;

    6)     删除或修改后的用户用原用户登录;

    7)     不输入用户名和口令,重复点“确定”和“取消”按钮,是否允许登录。

     

    9.    注销

    1)    注销为原模块、新模块系统能否正确处理;

    2)    中止注销能否返回原模块、原用户;

    3)    注销为原用户、新用户系统能否正确处理;

    4)    使用错误的帐号、口令或无权限帐号、被禁用帐号进行注销。

     

    10. 修改口令

    1)    正常情况;

    2)    输入错误的原口令或新口令与确认口令不一致系统能否正确处理;

    3)    修改口令后,用原口令是否能登录(同时验证新口令是否有效);

    4)    是否能修改其它用户的口令。

           

    11. 右键功能

    1)     右键菜单中的功能是否与菜单(或工具栏)中对应的功能一致;

    2)     右键菜单中的功能能否正确实现;

    3)     同一菜单下的热键是否相同。

     

    12. 记录列表

    1)     增加重复记录、空白记录,系统能否正确处理;

    2)     修改后不保存(有保存按钮),系统能否正确处理;

    3)     删除或修改正在使用信息,系统能否正确处理;

    4)     删除级联记录的上游或下游记录,系统能否正确处理;

    5)     删除记录时是否有提示;

    6)     记录中包含的缺省系统信息能否删除和修改;

    7)     记录列表能否及时反应记录的变化;

    8)     记录变化之后系统相关信息能否及时更新;

     

    13. 统计、查询

    1)     对非法的时间范围系统能否正确处理;

    2)     统计查询语句包含多个与或非条件时,系统能否正确处理;

    3)     条件逻辑混乱,系统能否正确处理;

    4)     多表查询统计及单表查询统计功能是否正确实现;

    5)     分类查询、精确查询、无条件查询、组合查询能否完整列出满足条件的记录;

    6)     能否按系统默认的条件进行查询;

    7)     当统计时间段为当日、跨日、跨月、跨季、跨年度时,统计查询结果是否正确;

    8)     当某些操作被别人取消后,设置条件段为取消前、取消后、包含取消操作的一段时间;

    9)     以不同的权限登录时,统计、查询是否正确;

    10)  在查询或统计大数据量时,系统是否允许终止操作;

    11)<

  • 集成测试的组成以及流程

    2007-06-18 22:45:01

    集成测试的组成以及流程

    集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。

          集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别。

          集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。

          集成测试是单元测试的逻辑扩展。在现实方案中,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是《软件概要设计规格说明》,任何不符合该说明的程序模块行为都应该加以记载并上报。

          所有的软件项目都不能摆脱系统集成这个阶段。不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体。具体的集成过程可能是显性的也可能是隐性的。只要有集成,总是会出现一些常见问题,工程实践中,几乎不存在软件单元组装过程中不出任何问题的情况。从图1可以看出,集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法。

          集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的。在这种情况下,集成测试的意义还在于它能间接地验证概要设计是否具有可行性。

          集成测试的目的是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能。并且对以前的集成进行回归测试。

    一、集成测试过程

    二、单元测试工作内容及其流程

    三、集成测试需求获取

          集成测试需求所确定的是对某一集成工作版本的测试的内容,即测试的具体对象。集成测试需求主要来源于设计模型(DESign Model)和集成构件计划(Integration Build Plan)。集成测试着重于集成版本的外部接口的行为。因此,测试需求须具有可观测、可测评性。

          1 集成工作版本应分析其类协作与消息序列,从而找出该工作版本的外部接口。

          2 由集成工作版本的外部接口确定集成测试用例。

    3 测试用例应覆盖工作版本每一外部接口的所有消息流序列。

         注意:一个外部接口和测试用例的关系是多对多,部分集成工作版本的测试需求可映射到系统测试需求,因此对这些集成测试用例可采用重用系统测试用例技术。

    四、集成测试工作机制

          软件集成测试工作由产品评测部担任。需要项目组相关角色配合完成。如图示:

          软件评测部:

          软件项目组:

          集成测试工作内容及其流程工作流程:

    五、集成测试产生的工件清单

          1 软件集成测试计划
          2
    集成测试用例
          3
    测试过程
          4
    测试脚本
          5
    测试日志
          6
    测试评估摘要

    六、集成测试常用方案选型

          集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、BIg-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。在此,笔者将重点讨论其中一些经实践检验和一些证实有效的集成测试方案。

          ·自底向上集成测试

          自底向上的集成(BOttom-Up Integration)方式是最常使用的方法。其他集成方法都或多或少地继承、吸收了这种集成方式的思想。自底向上集成方式从程序模块结构中最底层的模块开始组装和测试。因为模块是自底向上进行组装的,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)事前已经完成组装并经过测试,所以不再需要编制桩模块(一种能模拟真实模块,给待测模块提供调用接口或数据的测试用软件模块)。自底向上集成测试的步骤大致如下:

          步骤一: 按照概要设计规格说明,明确有哪些被测模块。在熟悉被测模块性质的基础上对被测模块进行分层,在同一层次上的测试可以并行进行,然后排出测试活动的先后关系,制定测试进度计划。图2给出了自底向上的集成测试过程中各测试活动的拓扑关系。利用图论的相关知识,可以排出各活动之间的时间序列关系,处于同一层次的测试活动可以同时进行,而不会相互影响。

          步骤二: 在步骤一的基础上,按时间线序关系,将软件单元集成为模块,并测试在集成过程中出现的问题。这里,可能需要测试人员开发一些驱动模块来驱动集成活动中形成的被测模块。对于比较大的模块,可以先将其中的某几个软件单元集成为子模块,然后再集成为一个较大的模块。

          步骤三: 将各软件模块集成为子系统(或分系统)。检测各自子系统是否能正常工作。同样,可能需要测试人员开发少量的驱动模块来驱动被测子系统。

          步骤四: 将各子系统集成为最终用户系统,测试是否存在各分系统能否在最终用户系统中正常工作。

          方案点评: 自底向上的集成测试方案是工程实践中最常用的测试方法。相关技术也较为成熟。它的优点很明显: 管理方便、测试人员能较好地锁定软件故障所在位置。但它对于某些开发模式不适用,如使用XP开发方法,它会要求测试人员在全部软件单元实现之前完成核心软件部件的集成测试。尽管如此,自底向上的集成测试方法仍不失为一个可供参考的集成测试方案

    核心系统先行集成测试法的思想是先对核心软件部件进行集成测试,在测试通过的基础上再按各外围软件部件的重要程度逐个集成到核心系统中。每次加入一个外围软件部件都产生一个产品基线,直至最后形成稳定的软件产品。核心系统先行集成测试法对应的集成过程是一个逐渐趋于闭合的螺旋形曲线,代表产品逐步定型的过程。其步骤如下:

          步骤一: 对核心系统中的每个模块进行单独的、充分的测试,必要时使用驱动模块和桩模块;

          步骤二: 对于核心系统中的所有模块一次性集合到被测系统中,解决集成中出现的各类问题。在核心系统规模相对较大的情况下,也可以按照自底向上的步骤,集成核心系统的各组成模块。

          步骤三: 按照各外围软件部件的重要程度以及模块间的相互制约关系,拟定外围软件部件集成到核心系统中的顺序方案。方案经评审以后,即可进行外围软件部件的集成。

          步骤四: 在外围软件部件添加到核心系统以前,外围软件部件应先完成内部的模块级集成测试。

          步骤五: 按顺序不断加入外围软件部件,排除外围软件部件集成中出现的问题,形成最终的用户系统。

          方案点评: 该集成测试方法对于快速软件开发很有效果,适合较复杂系统的集成测试,能保证一些重要的功能和服务的实现。缺点是采用此法的系统一般应能明确区分核心软件部件和外围软件部件,核心软件部件应具有较高的耦合度,外围软件部件内部也应具有较高的耦合度,但各外围软件部件之间应具有较低的耦合度。

          ·高频集成测试

          高频集成测试是指同步于软件开发过程,每隔一段时间对开发团队的现有代码进行一次集成测试。如某些自动化集成测试工具能实现每日深夜对开发团队的现有代码进行一次集成测试,然后将测试结果发到各开发人员的电子邮箱中。该集成测试方法频繁地将新代码加入到一个已经稳定的基线中,以免集成故障难以发现,同时控制可能出现的基线偏差。使用高频集成测试需要具备一定的条件: 可以持续获得一个稳定的增量,并且该增量内部已被验证没有问题; 大部分有意义的功能增加可以在一个相对稳定的时间间隔(如每个工作日)内获得; 测试包和代码的开发工作必须是并行进行的,并且需要版本控制工具来保证始终维护的是测试脚本和代码的最新版本; 必须借助于使用自动化工具来完成。高频集成一个显著的特点就是集成次数频繁,显然,人工的方法是不胜任的。

          高频集成测试一般采用如下步骤来完成:

          步骤一: 选择集成测试自动化工具。如很多Java项目采用Junit+Ant方案来实现集成测试的自动化,也有一些商业集成测试工具可供选择。

          步骤二: 设置版本控制工具,以确保集成测试自动化工具所获得的版本是最新版本。如使用CVS进行版本控制。

          步骤三: 测试人员和开发人员负责编写对应程序代码的测试脚本。

          步骤四: 设置自动化集成测试工具,每隔一段时间对配置管理库的新添加的代码进行自动化的集成测试,并将测试报告汇报给开发人员和测试人员。

          步骤五: 测试人员监督代码开发人员及时关闭不合格项。

          按照步骤三至步骤五不断循环,直至形成最终软件产品。

          方案点评: 该测试方案能在开发过程中及时发现代码错误,能直观地看到开发团队的有效工程进度。在此方案中,开发维护源代码与开发维护软件测试包被赋予了同等的重要性,这对有效防止错误、及时纠正错误都很有帮助。该方案的缺点在于测试包有时候可能不能暴露深层次的编码错误和图形界面错误。

    以上我们介绍了几种常见的集成测试方案,一般来讲,在现代复杂软件项目集成测试过程中,通常采用核心系统先行集成测试和高频集成测试相结合的方式进行,自底向上的集成测试方案在采用传统瀑布式开发模式的软件项目集成过程中较为常见。读者应该结合项目的实际工程环境及各测试方案适用的范围进行合理的选型。


    附:集成测试计划书 模版

    原创作者:jerry
    转载请注明:来自SAwin系统分析之窗
    最后修改时间:2005-4-27

    1引言
    1.1
    编写目的
    本文是描述****集成测试的大纲文章,主要描述如何进行集成测试活动?如何控制集成测试活动?集成测试活动的流程以及集成测试活动的工作安排。本文主要的读者对象是项目负责人,集成部门经理,集成测试设计师。
    1.2
    背景
    项目名称:***集成测试
    项目相关对象:******************
    1.3
    定义
    **********
    ********************
    1.4
    参考资料
    *********
    2
    测试项目
    本测试主要为***系统的集成测试,目前***的版本为2.0,测试是***的最终集成测试,是建立在开发组程序员开发完毕自己的测试以及开发组测试的基础之上
    3
    被测特性
    3.1
    操作性测试
    主要测试操作是否正确,有无误差?分为两部分:
    3.1.1
    返回测试
    由主界面逐级进入最终界面,按EXIT键逐级返回,检查返回时候屏幕聚焦是否正确
    比如:
    1.
    进入“系统设置”
    2.
    进入“频道搜索”
    3.
    进入“自动频道搜索”
    4.
    EXIT键返回,检查当前聚焦是否为“频道搜索”
    5.
    EXIT键返回,检查当前聚焦是否为“系统设置”
    3.1.2
    进入测试
    由主界面逐级进入最终界面,按MENU键返回主界面,再次进入,检查是否聚焦正确
    比如:
    1.
    进入“系统设置”
    2.
    进入“频道搜索”
    3.
    进入“自动频道搜索”
    4.
    MENU键返回主界面
    5.
    当前聚焦是否为“系统设置”
    6.
    进入“系统设置”,当前聚焦是否为“频道搜索”
    3.2
    功能测试
    测试机顶盒中每个应用的功能是否正确
    3.3
    性能测试
    3.3.1
    疲劳性测试
    测试连续开机1个月不关机器,每3天去运行一次应用。看系统的稳定性
    3.3.2
    大容量数据测试
    前段***数据库表中含有大量数据,测试***功能
    4
    不被测特性
    5
    测试方法
    1.
    书写测试计划
    2.
    审核测试计划,未通过返回第一步
    3.
    书写测试用例;
    4.
    审核测试用例,未通过返回第三步
    5.
    测试人员按照测试用例逐项进行测试活动,并且将测试结果填写在测试报告上;(测试报告必须覆盖所有测试用例)
    6.
    测试过程中发现bug,将bug填写在bugzilla上发给集成部经理;(bug状态NEW
    7.
    集成部经理接到bugzilla发过来的bug
    7.1
    对于明显的并且可以立刻解决的bug,将bug发给开发人员;(bug状态ASSIGNED;
    7.2
    对于不是bug 查看(825) 评论(0) 收藏 分享 管理

  • 因果图讲解

    2007-06-18 22:42:38

    看附件
  • 功能测试常用的策略和方法

    2007-06-18 22:32:38

     

     

          黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

          采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

          黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。

          黑盒测试试图发现以下类型的错误:

          1)功能错误或遗漏;
          2
    )界面错误;
          3
    )数据结构或外部数据库访问错误;
          4
    )性能错误;
          5
    )初始化和终止错误。

    一、黑盒测试的测试用例设计方法

    ·等价类划分方法
    ·边界值分析方法
    ·错误推测方法
    ·因果图方法
    ·判定表驱动分析方法
    ·正交实验设计方法
    ·功能图分析方法

    等价类划分:

          是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.

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

          有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.

          无效等价类:与有效等价类的定义恰巧相反.

          设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.

    2)划分等价类的方法:下面给出六条确定等价类的原则.

          ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.

          ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.

          ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.

          ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.

          ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).

          ⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.

    3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:

          输入条件 有效等价类 无效等价类

    然后从划分出的等价类中按以下三个原则设计测试用例:

          ①为每一个等价类规定一个唯一的编号.

          ②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.

          ③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.

    边界值分析法

          边界值分析方法是对等价类划分方法的补充.

    1)边界值分析方法的考虑:

          长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

          使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

    2)基于边界值分析方法选择测试用例的原则:

          1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.

          2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.

          3)根据规格说明的每个输出条件,使用前面的原则1.

          4)根据规格说明的每个输出条件,应用前面的原则2.

          5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.

          6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.

          7)分析规格说明,找出其它可能的边界条件.

    错误推测法

          错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

          错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

    因果图方法

          前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).

          因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

          利用因果图生成测试用例的基本步骤:

          (1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.

    (2) 分析软件规格说明描述中的语义.找出原因与结果之间 查看(629) 评论(0) 收藏 分享 管理

  • 缺陷管理

    2007-06-18 22:26:19

    缺陷管理

    软件存在缺陷,但是如何有效的管理缺陷是软件能不能正常提交的一个保障,这里引入缺陷管理的一些概念和方法。

     

    1,概念

    • 缺陷生命周期

    缺陷管理需要遵循一个流程,也就是缺陷的生命周期。粗略的划分,缺陷的生存周期可以分为这么一些阶段,

     

    缺陷汇报(submitted

    缺陷确认(accepted)(TobeCorrected

    缺陷修改(Corrected

    缺陷修改确认(Validated

    不是问题(not a problem

    此外,有一些附加状态,比如,暂不修改(derogation),继承(inherit

     

    • 缺陷级别

    缺陷级别也是个很重要的概念,同时存在两种级别,一种是从测试人员角度定义的级别,另一种是从开发人员角度定义的级别,两种级别在大多数时候都是一致的。简单来讲,缺陷级别可以分为以下几种:

     

    非常低(very low

    (low)

    重要(important)

    非常重要(severe)

    同时,由于产品的决策或者设计问题,有的缺陷也会以一种建议的方式出现,这个时候,也许所汇报的缺陷根本就不是缺陷,而更多的是对于产品能够更加友好的一种建议。

     

    2,缺陷在项目和产品当中的管理异同

    由于项目和产品在用户影响方面的差异,缺陷也会在其中表现出一些不同的地方,比如说,在产品当中,用户友好性差一点,可以被当成一种建议来做,但是在项目当中,这个就成为了一种缺陷,有的时候甚至是很严重的缺陷。那么总体来讲,有那么一些不同。

    • 级别定义不同
    • 确认方式不同(产品修改确认需要的是一个官方的发布版本,但是项目的确认方式也许就是一个补丁)
    • 修改方式不同(项目的缺陷无沦巨细,都是需要在提交给用户之前修改的,但是产品的缺陷却可以延迟到下一个版本)
    • 缺陷转换(缺陷是可以由项目转换到产品,然后由产品统一控制,管理的,因为项目组的侧重点和产品组的侧重点是不一样的,很多问题在项目当中出现,但是项目组没有能力修改,那么就需要产品组予以帮助)

     

    3,却陷管理工具

    缺陷需要管理,但是如果单纯的靠纸和笔进行管理,显然是不能够满足需要的,简单来讲,却陷管理工具至少能够满足以下特点,

    • 以项目为基础的管理方式
    • 严格的用户权限管理(不同的角色应该具备不同的权限)
    • Email通知机制(当状态改变以后,相关人员能够被通知到)
    • 从不同的维度进行缺陷的统计
    • 全方位的缺陷查询
    • 项目缺陷级别可定义
    • 软件模块定义

     

    现在,有很多业界比较认可的缺陷管理工具,包括Test Director, ClearQuest等等,免费的工具有Bugzilla也很好。不妨下载一个使用版本来玩玩。:)

     

    4,却陷统计报表

    缺陷报表之所以重要是因为,报表能够为我们提供事后统计,而定期的报表也能够为我们提供项目管理的支持,我们能够根据缺陷的汇报以及分布情况来判断当前的项目进度情况,什么模块出现的缺陷最多。在项目完结的时候,缺陷报告也能够为我们提供当前的软件测试是不是已经达到了要求,是不是可以提交给客户。

    一般情况下,我们会根据以下几种情况来定义缺陷情况,

    ·         缺陷分布情况:这里对于各种不同状态的缺陷的一个快照

    1

    ·         各种级别的缺陷的分布情况

    2

    ·         缺陷发展的趋势

    3

     

    在项目完结的时候生成上面的图形,如果发现还存在打开状态的缺陷,就需要做出决策,这样的缺陷需要关闭吗?还是在下一个版本当中修改或者别的解释。总之,在提交软件产品的时候,是不能存在一个开启状态的缺陷存在的。

     

     

    4,汇报缺陷的一些建议

    缺陷汇报是缺陷制造者和缺陷发现者之间沟通的桥梁,所以,缺陷必须被描述清楚,这里,有几点建议,

    ·         详细描述操作步骤

    ·         粘贴日志信息作为附件

    ·         对于界面测试,需要把错误界面捕捉下来,作为附件粘贴上

    ·         错误修改确认的时候,需要把软件版本号加上

    ·         测试数据描述

    ·         测试先决条件描述

我的存档

数据统计

  • 访问量: 139771
  • 日志数: 8
  • 建立时间: 2007-06-18
  • 更新时间: 2007-06-23

RSS订阅

Open Toolbar