发布新日志

  • 软件设计-程序复杂程度的定量度量

    2008-02-20 17:38:16

    程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。

    意义:

    程序的复杂程度乘以适当常数即可估算出软件中故障的数量以及软件开发需要的工作量。

    可以比较两个不同的设计和算法的优劣。

    定量的复杂程度可作为模块规模的精确限度。

    复杂性度量需要满足的假设

    为了度量程序复杂性,要求:

    它可以用来计算任何一个程序的复杂性;

    对于不合理的程序,例如对于长度动态增长的程序,或 者对于原则上无法排错的程序,不应当使用它进行复杂性计算;

    如果程序中指令条数、附加存储量、计算时间增多,不会减少程序的复杂性。

    代码行度量法

    度量程序的复杂性,最简单的方法就是统计程序的源代码行数。此方法的基本考虑是统计一个程序的源代码行数,并以源代码行数作为程序复杂性的度量

    源代码行数度量法基于两个前提:

     程序复杂性随着程序规模的增加不均衡地增长;

     控制程序规模的方法最好是采用分而治之的办法。将一个大程序分解成若干个简单的可理解的程序段。

    McCabe方法

    McCabe(麦坎比)度量法,又称环路复杂性度量,是一种基于程序控制流的复杂性度量方法。

    它基于一个程序模块的程序图中环路的个数,因此计算它先要画出程序图。程序图是退化的程序流程图。流程图中每个处理都退化成一个结点,流线变成连接不同结点的有向弧。

    把程序流程图中每个处理符号都退化成一个点,连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称为流程图

    程序的环形复杂度等于强连通的流图中线性无关的有向环的个数。

    程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作,以及分支和循环的具体条件。

    计算环路复杂性的方法:根据图论,在一个强连通的有向图G中,环的个数由以下公式给出:
          V(G)
    mnp
    其中,V(G)是有向图G中环路个数,m是图G中弧数,n是图G中结点数,p是图G中的强连通分量个数。

    在一个程序中,从程序图的入口点总能到达图中任何一个结点,因此,程序总是连通的,但不是强连通的。为了使图成为强连通图,从图的入口点到出口点加一条虚线表示的有向边,使图成为强连通图。这样就可以使用上式计算环路复杂性了。

    以上图为倒,其中结点数n=11,弧数m=13p=1。则有:V(G)=m-n+p=13-11+1=3

    几点说明

    环路复杂度取决于程序控制结构的复杂度。当程序的分支数目或循环数目增加时其复杂度也增加。环路复杂度与程序中覆盖的路径条数有关。

    环路复杂度是可加的。例如,模块A的复杂度为3,模块B的复杂度为 4,则模块A与模块B的复杂度是7

    这种度量的缺点是:

     对于不同种类的控制流的复杂性不能区分

     简单IF语句与循环语句的复杂性同等看待

     嵌套IF语句与简单CASE语句的复杂性是一样的

     模块间接口当成一个简单分支一样处理

     一个具有1000行的顺序程序与一行语句的复杂性相同

    Halstead方法

    根据程序中运算符和操作数的总数来度量程序的复杂度. 程序

    长度N定义为:

        N=N1+N2 

    其中:N1表示运算符总数,N2表示操作数总数

    若已知程序中程序中使用的不同运算符个数n1和不同操作数的

    个数n2 ,则预测程序长度的公式为:H=n1log2 n1+n2log2 n2

    预测程序中错误个数的公式为:

      E=N log2( n1+n2)/3000

    例如,一个程序对75个数据库项共访问1300次,对150个运算符共

    使用1200次,那么预测该程序的错误数:

    B(1300+1200)*log2(75+150)/3000=6.5。即预测该程序中可能包

    6-7个错误。

    Halstead的重要结论

      程序的实际Halstead长度N可以由词汇表n算出。即使程序还未编制完成,也能预先算出程序的实际Halstead长度N 虽然它没有明确指出程序中到底有多少个语句。
    这个结论非常有用。经过多次验证,预测的Halstead长度与实际的Halstead长度是非常接近的。

  • 劳动法

    2007-12-25 12:08:05

     

    中华人民共和国主席令

    第六十五号

        《中华人民共和国劳动合同法》已由中华人民共和国第十届全国人民代表大会常务委员会第二十八次会议于2007年6月29日通过,现予公布,自2008年1月1日起施行。

    中华人民共和国主席 胡锦涛

    2007年6月29日

    中华人民共和国劳动合同法

    (2007年6月29日第十届全国人民代表大会常务委员会第二十八次会议通过)

        目 录

        第一章 总 则

        第二章 劳动合同的订立

        第三章 劳动合同的履行和变更

        第四章 劳动合同的解除和终止

        第五章 特别规定

        第一节 集体合同

        第二节 劳务派遣

        第三节 非全日制用工

        第六章 监督检查

        第七章 法律责任

        第八章 附 则

        第一章 总 则

        第一条 为了完善劳动合同制度,明确劳动合同双方当事人的权利和义务,保护劳动者的合法权益,构建和发展和谐稳定的劳动关系,制定本法。

        第二条 中华人民共和国境内的企业、个体经济组织、民办非企业单位等组织(以下称用人单位)与劳动者建立劳动关系,订立、履行、变更、解除或者终止劳动合同,适用本法。

        国家机关、事业单位、社会团体和与其建立劳动关系的劳动者,订立、履行、变更、解除或者终止劳动合同,依照本法执行。

        第三条 订立劳动合同,应当遵循合法、公平、平等自愿、协商一致、诚实信用的原则。

        依法订立的劳动合同具有约束力,用人单位与劳动者应当履行劳动合同约定的义务。

        第四条 用人单位应当依法建立和完善劳动规章制度,保障劳动者享有劳动权利、履行劳动义务。

        用人单位在制定、修改或者决定有关劳动报酬、工作时间、休息休假、劳动安全卫生、保险福利、职工培训、劳动纪律以及劳动定额管理等直接涉及劳动者切身利益的规章制度或者重大事项时,应当经职工代表大会或者全体职工讨论,提出方案和意见,与工会或者职工代表平等协商确定。

        在规章制度和重大事项决定实施过程中,工会或者职工认为不适当的,有权向用人单位提出,通过协商予以修改完善。

        用人单位应当将直接涉及劳动者切身利益的规章制度和重大事项决定公示,或者告知劳动者。

        第五条 县级以上人民政府劳动行政部门会同工会和企业方面代表,建立健全协调劳动关系三方机制,共同研究解决有关劳动关系的重大问题。

        第六条 工会应当帮助、指导劳动者与用人单位依法订立和履行劳动合同,并与用人单位建立集体协商机制,维护劳动者的合法权益。

        第二章 劳动合同的订立

        第七条 用人单位自用工之日起即与劳动者建立劳动关系。用人单位应当建立职工名册备查。

        第八条 用人单位招用劳动者时,应当如实告知劳动者工作内容、工作条件、工作地点、职业危害、安全生产状况、劳动报酬,以及劳动者要求了解的其他情况;用人单位有权了解劳动者与劳动合同直接相关的基本情况,劳动者应当如实说明。

        第九条 用人单位招用劳动者,不得扣押劳动者的居民身份证和其他证件,不得要求劳动者提供担保或者以其他名义向劳动者收取财物。

        第十条 建立劳动关系,应当订立书面劳动合同。

        已建立劳动关系,未同时订立书面劳动合同的,应当自用工之日起一个月内订立书面劳动合同。

        用人单位与劳动者在用工前订立劳动合同的,劳动关系自用工之日起建立。

        第十一条 用人单位未在用工的同时订立书面劳动合同,与劳动者约定的劳动报酬不明确的,新招用的劳动者的劳动报酬按照集体合同规定的标准执行;没有集体合同或者集体合同未规定的,实行同工同酬。

        第十二条 劳动合同分为固定期限劳动合同、无固定期限劳动合同和以完成一定工作任务为期限的劳动合同。

        第十三条 固定期限劳动合同,是指用人单位与劳动者约定合同终止时间的劳动合同。

        用人单位与劳动者协商一致,可以订立固定期限劳动合同。

        第十四条 无固定期限劳动合同,是指用人单位与劳动者约定无确定终止时间的劳动合同。

        用人单位与劳动者协商一致,可以订立无固定期限劳动合同。有下列情形之一,劳动者提出或者同意续订、订立劳动合同的,除劳动者提出订立固定期限劳动合同外,应当订立无固定期限劳动合同:

        (一)劳动者在该用人单位连续工作满十年的;

        (二)用人单位初次实行劳动合同制度或者国有企业改制重新订立劳动合同时,劳动者在该用人单位连续工作满十年且距法定退休年龄不足十年的;

        (三)连续订立二次固定期限劳动合同,且劳动者没有本法第三十九条和第四十条第一项、第二项规定的情形,续订劳动合同的。

        用人单位自用工之日起满一年不与劳动者订立书面劳动合同的,视为用人单位与劳动者已订立无固定期限劳动合同。

        第十五条 以完成一定工作任务为期限的劳动合同,是指用人单位与劳动者约定以某项工作的完成为合同期限的劳动合同。

        用人单位与劳动者协商一致,可以订立以完成一定工作任务为期限的劳动合同。

        第十六条 劳动合同由用人单位与劳动者协商一致,并经用人单位与劳动者在劳动合同文本上签字或者盖章生效。

        劳动合同文本由用人单位和劳动者各执一份。

        第十七条 劳动合同应当具备以下条款:

        (一)用人单位的名称、住所和法定代表人或者主要负责人;

        (二)劳动者的姓名、住址和居民身份证或者其他有效身份证件号码;

        (三)劳动合同期限;

        (四)工作内容和工作地点;

        (五)工作时间和休息休假;

        (六)劳动报酬;

        (七)社会保险;

        (八)劳动保护、劳动条件和职业危害防护;

        (九)法律、法规规定应当纳入劳动合同的其他事项。

        劳动合同除前款规定的必备条款外,用人单位与劳动者可以约定试用期、培训、保守秘密、补充保险和福利待遇等其他事项。

        第十八条 劳动合同对劳动报酬和劳动条件等标准约定不明确,引发争议的,用人单位与劳动者可以重新协商;协商不成的,适用集体合同规定;没有集体合同或者集体合同未规定劳动报酬的,实行同工同酬;没有集体合同或者集体合同未规定劳动条件等标准的,适用国家有关规定。

        第十九条 劳动合同期限三个月以上不满一年的,试用期不得超过一个月;劳动合同期限一年以上不满三年的,试用期不得超过二个月;三年以上固定期限和无固定期限的劳动合同,试用期不得超过六个月。

        同一用人单位与同一劳动者只能约定一次试用期。

        以完成一定工作任务为期限的劳动合同或者劳动合同期限不满三个月的,不得约定试用期。

        试用期包含在劳动合同期限内。劳动合同仅约定试用期的,试用期不成立,该期限为劳动合同期限。

        第二十条 劳动者在试用期的工资不得低于本单位相同岗位最低档工资或者劳动合同约定工资的百分之八十,并不得低于用人单位所在地的最低工资标准。

        第二十一条 在试用期中,除劳动者有本法第三十九条和第四十条第一项、第二项规定的情形外,用人单位不得解除劳动合同。用人单位在试用期解除劳动合同的,应当向劳动者说明理由。

        第二十二条 用人单位为劳动者提供专项培训费用,对其进行专业技术培训的,可以与该劳动者订立协议,约定服务期。

        劳动者违反服务期约定的,应当按照约定向用人单位支付违约金。违约金的数额不得超过用人单位提供的培训费用。用人单位要求劳动者支付的违约金不得超过服务期尚未履行部分所应分摊的培训费用。

        用人单位与劳动者约定服务期的,不影响按照正常的工资调整机制提高劳动者在服务期期间的劳动报酬。

        第二十三条 用人单位与劳动者可以在劳动合同中约定保守用人单位的商业秘密和与知识产权相关的保密事项。

        对负有保密义务的劳动者,用人单位可以在劳动合同或者保密协议中与劳动者约定竞业限制条款,并约定在解除或者终止劳动合同后,在竞业限制期限内按月给予劳动者经济补偿。劳动者违反竞业限制约定的,应当按照约定向用人单位支付违约金。

        第二十四条 竞业限制的人员限于用人单位的高级管理人员、高级技术人员和其他负有保密义务的人员。竞业限制的范围、地域、期限由用人单位与劳动者约定,竞业限制的约定不得违反法律、法规的规定。

        在解除或者终止劳动合同后,前款规定的人员到与本单位生产或者经营同类产品、从事同类业务的有竞争关系的其他用人单位,或者自己开业生产或者经营同类产品、从事同类业务的竞业限制期限,不得超过二年。

        第二十五条 除本法第二十二条和第二十三条规定的情形外,用人单位不得与劳动者约定由劳动者承担违约金。

        第二十六条 下列劳动合同无效或者部分无效:

        (一)以欺诈、胁迫的手段或者乘人之危,使对方在违背真实意思的情况下订立或者变更劳动合同的;

        (二)用人单位免除自己的法定责任、排除劳动者权利的;

        (三)违反法律、行政法规强制性规定的。

        对劳动合同的无效或者部分无效有争议的,由劳动争议仲裁机构或者人民法院确认。

        第二十七条 劳动合同部分无效,不影响其他部分效力的,其他部分仍然有效。

        第二十八条 劳动合同被确认无效,劳动者已付出劳动的,用人单位应当向劳动者支付劳动报酬。劳动报酬的数额,参照本单位相同或者相近岗位劳动者的劳动报酬确定。

        第三章 劳动合同的履行和变更

        第二十九条 用人单位与劳动者应当按照劳动合同的约定,全面履行各自的义务。

        第三十条 用人单位应当按照劳动合同约定和国家规定,向劳动者及时足额支付劳动报酬。

        用人单位拖欠或者未足额支付劳动报酬的,劳动者可以依法向当地人民法院申请支付令,人民法院应当依法发出支付令。

        第三十一条 用人单位应当严格执行劳动定额标准,不得强迫或者变相强迫劳动者加班。用人单位安排加班的,应当按照国家有关规定向劳动者支付加班费。

        第三十二条 劳动者拒绝用人单位管理人员违章指挥、强令冒险作业的,不视为违反劳动合同。

        劳动者对危害生命安全和身体健康的劳动条件,有权对用人单位提出批评、检举和控告。

        第三十三条 用人单位变更名称、法定代表人、主要负责人或者投资人等事项,不影响劳动合同的履行。

        第三十四条 用人单位发生合并或者分立等情况,原劳动合同继续有效,劳动合同由承继其权利和义务的用人单位继续履行。

        第三十五条 用人单位与劳动者协商一致,可以变更劳动合同约定的内容。变更劳动合同,应当采用书面形式。

        变更后的劳动合同文本由用人单位和劳动者各执一份。

        第四章 劳动合同的解除和终止

        第三十六条 用人单位与劳动者协商一致,可以解除劳动合同。

        第三十七条 劳动者提前三十日以书面形式通知用人单位,可以解除劳动合同。劳动者在试用期内提前三日通知用人单位,可以解除劳动合同。

        第三十八条 用人单位有下列情形之一的,劳动者可以解除劳动合同:

        (一)未按照劳动合同约定提供劳动保护或者劳动条件的;

        (二)未及时足额支付劳动报酬的;

        (三)未依法为劳动者缴纳社会保险费的;

        (四)用人单位的规章制度违反法律、法规的规定,损害劳动者权益的;

        (五)因本法第二十六条第一款规定的情形致使劳动合同无效的;

        (六)法律、行政法规规定劳动者可以解除劳动合同的其他情形。

        用人单位以暴力、威胁或者非法限制人身自由的手段强迫劳动者劳动的,或者用人单位违章指挥、强令冒险作业危及劳动者人身安全的,劳动者可以立即解除劳动合同,不需事先告知用人单位。

        第三十九条 劳动者有下列情形之一的,用人单位可以解除劳动合同:

        (一)在试用期间被证明不符合录用条件的;

        (二)严重违反用人单位的规章制度的;

        (三)严重失职,营私舞弊,给用人单位造成重大损害的;

        (四)劳动者同时与其他用人单位建立劳动关系,对完成本单位的工作任务造成严重影响,或者经用人单位提出,拒不改正的;

        (五)因本法第二十六条第一款第一项规定的情形致使劳动合同无效的;

        (六)被依法追究刑事责任的。

        第四十条 有下列情形之一的,用人单位提前三十日以书面形式通知劳动者本人或者额外支付劳动者一个月工资后,可以解除劳动合同:

        (一)劳动者患病或者非因工负伤,在规定的医疗期满后不能从事原工作,也不能从事由用人单位另行安排的工作的;

        (二)劳动者不能胜任工作,经过培训或者调整工作岗位,仍不能胜任工作的;

        (三)劳动合同订立时所依据的客观情况发生重大变化,致使劳动合同无法履行,经用人单位与劳动者协商,未能就变更劳动合同内容达成协议的。

        第四十一条 有下列情形之一,需要裁减人员二十人以上或者裁减不足二十人但占企业职工总数百分之十以上的,用人单位提前三十日向工会或者全体职工说明情况,听取工会或者职工的意见后,裁减人员方案经向劳动行政部门报告,可以裁减人员:

        (一)依照企业破产法规定进行重整的;

        (二)生产经营发生严重困难的;

        (三)企业转产、重大技术革新或者经营方式调整,经变更劳动合同后,仍需裁减人员的;

        (四)其他因劳动合同订立时所依据的客观经济情况发生重大变化,致使劳动合同无法履行的。

        裁减人员时,应当优先留用下列人员:

        (一)与本单位订立较长期限的固定期限劳动合同的;

        (二)与本单位订立无固定期限劳动合同的;

        (三)家庭无其他就业人员,有需要扶养的老人或者未成年人的。

        用人单位依照本条第一款规定裁减人员,在六个月内重新招用人员的,应当通知被裁减的人员,并在同等条件下优先招用被裁减的人员。

        第四十二条 劳动者有下列情形之一的,用人单位不得依照本法第四十条、第四十一条的规定解除劳动合同:

        (一)从事接触职业病危害作业的劳动者未进行离岗前职业健康检查,或者疑似职业病病人在诊断或者医学观察期间的;

        (二)在本单位患职业病或者因工负伤并被确认丧失或者部分丧失劳动能力的;

        (三)患病或者非因工负伤,在规定的医疗期内的;

        (四)女职工在孕期、产期、哺乳期的;

        (五)在本单位连续工作满十五年,且距法定退休年龄不足五年的;

        (六)法律、行政法规规定的其他情形。

      第四十三条 用人单位单方解除劳动合同,应当事先将理由通知工会。用人单位违反法律、行政法规规定或者劳动合同约定的,工会有权要求用人单位纠正。用人单位应当研究工会的意见,并将处理结果书面通知工会。

      第四十四条 有下列情形之一的,劳动合同终止:

      (一)劳动合同期满的;

      (二)劳动者开始依法享受基本养老保险待遇的;

      (三)劳动者死亡,或者被人民法院宣告死亡或者宣告失踪的;

      (四)用人单位被依法宣告破产的;

      (五)用人单位被吊销营业执照、责令关闭、撤销或者用人单位决定提前解散的;

      (六)法律、行政法规规定的其他情形。

      第四十五条 劳动合同期满,有本法第四十二条规定情形之一的,劳动合同应当续延至相应的情形消失时终止。但是,本法第四十二条第二项规定丧失或者部分丧失劳动能力劳动者的劳动合同的终止,按照国家有关工伤保险的规定执行。

      第四十六条 有下列情形之一的,用人单位应当向劳动者支付经济补偿:

      (一)劳动者依照本法第三十八条规定解除劳动合同的;

      (二)用人单位依照本法第三十六条规定向劳动者提出解除劳动合同并与劳动者协商一致解除劳动合同的;

      (三)用人单位依照本法第四十条规定解除劳动合同的;

      (四)用人单位依照本法第四十一条第一款规定解除劳动合同的;

      (五)除用人单位维持或者提高劳动合同约定条件续订劳动合同,劳动者不同意续订的情形外,依照本法第四十四条第一项规定终止固定期限劳动合同的;

      (六)依照本法第四十四条第四项、第五项规定终止劳动合同的;

      (七)法律、行政法规规定的其他情形。

      第四十七条 经济补偿按劳动者在本单位工作的年限,每满一年支付一个月工资的标准向劳动者支付。六个月以上不满一年的,按一年计算;不满六个月的,向劳动者支付半个月工资的经济补偿。

      劳动者月工资高于用人单位所在直辖市、设区的市级人民政府公布的本地区上年度职工月平均工资三倍的,向其支付经济补偿的标准按职工月平均工资三倍的数额支付,向其支付经济补偿的年限最高不超过十二年。

      本条所称月工资是指劳动者在劳动合同解除或者终止前十二个月的平均工资。

      第四十八条 用人单位违反本法规定解除或者终止劳动合同,劳动者要求继续履行劳动合同的,用人单位应当继续履行;劳动者不要求继续履行劳动合同或者劳动合同已经不能继续履行的,用人单位应当依照本法第八十七条规定支付赔偿金。

      第四十九条 国家采取措施,建立健全劳动者社会保险关系跨地区转移接续制度。

      第五十条 用人单位应当在解除或者终止劳动合同时出具解除或者终止劳动合同的证明,并在十五日内为劳动者办理档案和社会保险关系转移手续。

      劳动者应当按照双方约定,办理工作交接。用人单位依照本法有关规定应当向劳动者支付经济补偿的,在办结工作交接时支付。

      用人单位对已经解除或者终止的劳动合同的文本,至少保存二年备查。  

      第五章 特别规定   

      第一节 集体合同   

      第五十一条 企业职工一方与用人单位通过平等协商,可以就劳动报酬、工作时间、休息休假、劳动安全卫生、保险福利等事项订立集体合同。集体合同草案应当提交职工代表大会或者全体职工讨论通过。

      集体合同由工会代表企业职工一方与用人单位订立;尚未建立工会的用人单位,由上级工会指导劳动者推举的代表与用人单位订立。

      第五十二条 企业职工一方与用人单位可以订立劳动安全卫生、女职工权益保护、工资调整机制等专项集体合同。

      第五十三条 在县级以下区域内,建筑业、采矿业、餐饮服务业等行业可以由工会与企业方面代表订立行业性集体合同,或者订立区域性集体合同。

      第五十四条 集体合同订立后,应当报送劳动行政部门;劳动行政部门自收到集体合同文本之日起十五日内未提出异议的,集体合同即行生效。

      依法订立的集体合同对用人单位和劳动者具有约束力。行业性、区域性集体合同对当地本行业、本区域的用人单位和劳动者具有约束力。

      第五十五条 集体合同中劳动报酬和劳动条件等标准不得低于当地人民政府规定的最低标准;用人单位与劳动者订立的劳动合同中劳动报酬和劳动条件等标准不得低于集体合同规定的标准。

      第五十六条 用人单位违反集体合同,侵犯职工劳动权益的,工会可以依法要求用人单位承担责任;因履行集体合同发生争议,经协商解决不成的,工会可以依法申请仲裁、提起诉讼。  

      第二节 劳务派遣   

      第五十七条 劳务派遣单位应当依照公司法的有关规定设立,注册资本不得少于五十万元。

      第五十八条 劳务派遣单位是本法所称用人单位,应当履行用人单位对劳动者的义务。劳务派遣单位与被派遣劳动者订立的劳动合同,除应当载明本法第十七条规定的事项外,还应当载明被派遣劳动者的用工单位以及派遣期限、工作岗位等情况。

      劳务派遣单位应当与被派遣劳动者订立二年以上的固定期限劳动合同,按月支付劳动报酬;被派遣劳动者在无工作期间,劳务派遣单位应当按照所在地人民政府规定的最低工资标准,向其按月支付报酬。

      第五十九条 劳务派遣单位派遣劳动者应当与接受以劳务派遣形式用工的单位(以下称用工单位)订立劳务派遣协议。劳务派遣协议应当约定派遣岗位和人员数量、派遣期限、劳动报酬和社会保险费的数额与支付方式以及违反协议的责任。

      用工单位应当根据工作岗位的实际需要与劳务派遣单位确定派遣期限,不得将连续用工期限分割订立数个短期劳务派遣协议。

      第六十条 劳务派遣单位应当将劳务派遣协议的内容告知被派遣劳动者。

      劳务派遣单位不得克扣用工单位按照劳务派遣协议支付给被派遣劳动者的劳动报酬。

      劳务派遣单位和用工单位不得向被派遣劳动者收取费用。

      第六十一条 劳务派遣单位跨地区派遣劳动者的,被派遣劳动者享有的劳动报酬和劳动条件,按照用工单位所在地的标准执行。

      第六十二条 用工单位应当履行下列义务:

      (一)执行国家劳动标准,提供相应的劳动条件和劳动保护;

      (二)告知被派遣劳动者的工作要求和劳动报酬;

      (三)支付加班费、绩效奖金,提供与工作岗位相关的福利待遇;

      (四)对在岗被派遣劳动者进行工作岗位所必需的培训;

      (五)连续用工的,实行正常的工资调整机制。

      用工单位不得将被派遣劳动者再派遣到其他用人单位。

      第六十三条 被派遣劳动者享有与用工单位的劳动者同工同酬的权利。用工单位无同类岗位劳动者的,参照用工单位所在地相同或者相近岗位劳动者的劳动报酬确定。

      第六十四条 被派遣劳动者有权在劳务派遣单位或者用工单位依法参加或者组织工会,维护自身的合法权益。

      第六十五条 被派遣劳动者可以依照本法第三十六条、第三十八条的规定与劳务派遣单位解除劳动合同。

      被派遣劳动者有本法第三十九条和第四十条第一项、第二项规定情形的,用工单位可以将劳动者退回劳务派遣单位,劳务派遣单位依照本法有关规定,可以与劳动者解除劳动合同。

      第六十六条 劳务派遣一般在临时性、辅助性或者替代性的工作岗位上实施。

      第六十七条 用人单位不得设立劳务派遣单位向本单位或者所属单位派遣劳动者。

      第三节 非全日制用工   

      第六十八条 非全日制用工,是指以小时计酬为主,劳动者在同一用人单位一般平均每日工作时间不超过四小时,每周工作时间累计不超过二十四小时的用工形式。

      第六十九条 非全日制用工双方当事人可以订立口头协议。

      从事非全日制用工的劳动者可以与一个或者一个以上用人单位订立劳动合同;但是,后订立的劳动合同不得影响先订立的劳动合同的履行。

      第七十条 非全日制用工双方当事人不得约定试用期。

      第七十一条 非全日制用工双方当事人任何一方都可以随时通知对方终止用工。终止用工,用人单位不向劳动者支付经济补偿。

      第七十二条 非全日制用工小时计酬标准不得低于用人单位所在地人民政府规定的最低小时工资标准。

      非全日制用工劳动报酬结算支付周期最长不得超过十五日。   

      第六章 监督检查   

      第七十三条 国务院劳动行政部门负责全国劳动合同制度实施的监督管理。

      县级以上地方人民政府劳动行政部门负责本行政区域内劳动合同制度实施的监督管理。

      县级以上各级人民政府劳动行政部门在劳动合同制度实施的监督管理工作中,应当听取工会、企业方面代表以及有关行业主管部门的意见。

      第七十四条 县级以上地方人民政府劳动行政部门依法对下列实施劳动合同制度的情况进行监督检查:

      (一)用人单位制定直接涉及劳动者切身利益的规章制度及其执行的情况;

      (二)用人单位与劳动者订立和解除劳动合同的情况;

      (三)劳务派遣单位和用工单位遵守劳务派遣有关规定的情况;

      (四)用人单位遵守国家关于劳动者工作时间和休息休假规定的情况;

      (五)用人单位支付劳动合同约定的劳动报酬和执行最低工资标准的情况;

      (六)用人单位参加各项社会保险和缴纳社会保险费的情况;

      (七)法律、法规规定的其他劳动监察事项。

      第七十五条 县级以上地方人民政府劳动行政部门实施监督检查时,有权查阅与劳动合同、集体合同有关的材料,有权对劳动场所进行实地检查,用人单位和劳动者都应当如实提供有关情况和材料。

      劳动行政部门的工作人员进行监督检查,应当出示证件,依法行使职权,文明执法。

      第七十六条 县级以上人民政府建设、卫生、安全生产监督管理等有关主管部门在各自职责范围内,对用人单位执行劳动合同制度的情况进行监督管理。

      第七十七条 劳动者合法权益受到侵害的,有权要求有关部门依法处理,或者依法申请仲裁、提起诉讼。

      第七十八条 工会依法维护劳动者的合法权益,对用人单位履行劳动合同、集体合同的情况进行监督。用人单位违反劳动法律、法规和劳动合同、集体合同的,工会有权提出意见或者要求纠正;劳动者申请仲裁、提起诉讼的,工会依法给予支持和帮助。

      第七十九条 任何组织或者个人对违反本法的行为都有权举报,县级以上人民政府劳动行政部门应当及时核实、处理,并对举报有功人员给予奖励。   

      第七章 法律责任   

     第八十条 用人单位直接涉及劳动者切身利益的规章制度违反法律、法规规定的,由劳动行政部门责令改正,给予警告;给劳动者造成损害的,应当承担赔偿责任。

      第八十一条 用人单位提供的劳动合同文本未载明本法规定的劳动合同必备条款或者用人单位未将劳动合同文本交付劳动者的,由劳动行政部门责令改正;给劳动者造成损害的,应当承担赔偿责任。

      第八十二条 用人单位自用工之日起超过一个月不满一年未与劳动者订立书面劳动合同的,应当向劳动者每月支付二倍的工资。

      用人单位违反本法规定不与劳动者订立无固定期限劳动合同的,自应当订立无固定期限劳动合同之日起向劳动者每月支付二倍的工资。

      第八十三条 用人单位违反本法规定与劳动者约定试用期的,由劳动行政部门责令改正;违法约定的试用期已经履行的,由用人单位以劳动者试用期满月工资为标准,按已经履行的超过法定试用期的期间向劳动者支付赔偿金。

      第八十四条 用人单位违反本法规定,扣押劳动者居民身份证等证件的,由劳动行政部门责令限期退还劳动者本人,并依照有关法律规定给予处罚。

      用人单位违反本法规定,以担保或者其他名义向劳动者收取财物的,由劳动行政部门责令限期退还劳动者本人,并以每人五百元以上二千元以下的标准处以罚款;给劳动者造成损害的,应当承担赔偿责任。

      劳动者依法解除或者终止劳动合同,用人单位扣押劳动者档案或者其他物品的,依照前款规定处罚。

      第八十五条 用人单位有下列情形之一的,由劳动行政部门责令限期支付劳动报酬、加班费或者经济补偿;劳动报酬低于当地最低工资标准的,应当支付其差额部分;逾期不支付的,责令用人单位按应付金额百分之五十以上百分之一百以下的标准向劳动者加付赔偿金:

      (一)未按照劳动合同的约定或者国家规定及时足额支付劳动者劳动报酬的;

      (二)低于当地最低工资标准支付劳动者工资的;

      (三)安排加班不支付加班费的;

      (四)解除或者终止劳动合同,未依照本法规定向劳动者支付经济补偿的。

      第八十六条 劳动合同依照本法第二十六条规定被确认无效,给对方造成损害的,有过错的一方应当承担赔偿责任。

      第八十七条 用人单位违反本法规定解除或者终止劳动合同的,应当依照本法第四十七条规定的经济补偿标准的二倍向劳动者支付赔偿金。

      第八十八条 用人单位有下列情形之一的,依法给予行政处罚;构成犯罪的,依法追究刑事责任;给劳动者造成损害的,应当承担赔偿责任:

      (一)以暴力、威胁或者非法限制人身自由的手段强迫劳动的;

      (二)违章指挥或者强令冒险作业危及劳动者人身安全的;

      (三)侮辱、体罚、殴打、非法搜查或者拘禁劳动者的;

      (四)劳动条件恶劣、环境污染严重,给劳动者身心健康造成严重损害的。

      第八十九条 用人单位违反本法规定未向劳动者出具解除或者终止劳动合同的书面证明,由劳动行政部门责令改正;给劳动者造成损害的,应当承担赔偿责任。

      第九十条 劳动者违反本法规定解除劳动合同,或者违反劳动合同中约定的保密义务或者竞业限制,给用人单位造成损失的,应当承担赔偿责任。

      第九十一条 用人单位招用与其他用人单位尚未解除或者终止劳动合同的劳动者,给其他用人单位造成损失的,应当承担连带赔偿责任。

      第九十二条 劳务派遣单位违反本法规定的,由劳动行政部门和其他有关主管部门责令改正;情节严重的,以每人一千元以上五千元以下的标准处以罚款,并由工商行政管理部门吊销营业执照;给被派遣劳动者造成损害的,劳务派遣单位与用工单位承担连带赔偿责任。

      第九十三条 对不具备合法经营资格的用人单位的违法犯罪行为,依法追究法律责任;劳动者已经付出劳动的,该单位或者其出资人应当依照本法有关规定向劳动者支付劳动报酬、经济补偿、赔偿金;给劳动者造成损害的,应当承担赔偿责任。

      第九十四条 个人承包经营违反本法规定招用劳动者,给劳动者造成损害的,发包的组织与个人承包经营者承担连带赔偿责任。

      第九十五条 劳动行政部门和其他有关主管部门及其工作人员玩忽职守、不履行法定职责,或者违法行使职权,给劳动者或者用人单位造成损害的,应当承担赔偿责任;对直接负责的主管人员和其他直接责任人员,依法给予行政处分;构成犯罪的,依法追究刑事责任。  

      第八章 附 则   

      第九十六条 事业单位与实行聘用制的工作人员订立、履行、变更、解除或者终止劳动合同,法律、行政法规或者国务院另有规定的,依照其规定;未作规定的,依照本法有关规定执行。

      第九十七条 本法施行前已依法订立且在本法施行之日存续的劳动合同,继续履行;本法第十四条第二款第三项规定连续订立固定期限劳动合同的次数,自本法施行后续订固定期限劳动合同时开始计算。

      本法施行前已建立劳动关系,尚未订立书面劳动合同的,应当自本法施行之日起一个月内订立。

      本法施行之日存续的劳动合同在本法施行后解除或者终止,依照本法第四十六条规定应当支付经济补偿的,经济补偿年限自本法施行之日起计算;本法施行前按照当时有关规定,用人单位应当向劳动者支付经济补偿的,按照当时有关规定执行。

      第九十八条 本法自2008年1月1日起施行。

  • 因为年轻,所以不怕。。

    2007-12-19 18:39:36

    1.放弃

    把握的反面就是放弃,选择了一个机会,就等于放弃了其它所有的可能。当新的机会摆在面前的时候,敢于放弃已经获得的一切,这不是功亏一篑,这不是半途而废,这是为了谋求更大的发展空间;或者什么都不为,只因为喜欢这样做,因为,年轻就是最大的机会。人,只有在三十岁之前才会有这个胆量,有这个资本,有这个资格。

    2.失恋

    不是不在乎,是在乎不起。三十岁前最怕失去的不是已经拥有的东西,而是梦想。爱情如果只是一个过程,那么正是这个年龄应当经历的,如果要承担结果,三十岁以后,可能会更有能力,更有资格。其实,三十岁之前我们要做的事情很多,稍纵即逝,不能过久地沉溺在已经干涸的爱河的河床中,

    3.漂泊

    漂泊不是一种不幸,而是一种资格。趁着没有家室拖累,趁着身体健康,此时不飘何时飘?当然,漂泊的不一定是身体,也许只是幻想和梦境。新世纪的时尚领袖是飘一代,渴望漂泊的人惟一不飘的是那颗心。

    4.失业

    三十岁以前就尝到失业的滋味当然是一件不幸的事,但不一定是坏事。三十岁之前就过早地固定在一个职业上终此一生也许才是最大的不幸。失业也许让你想起埋藏很久而尘封的梦想,也许会唤醒连你自己都从未知道的潜能。也许你本来就没什么梦想,这时候也会朝着你去做梦。

    5.评价

    我们最不应该做出的牺牲就是因为别人的评价而改变自我,因为那些指手画脚的人自己也不知道他们遵从的规则是什么。千万不要只遵从规矩做事,规矩还在创造之中,要根据自己的判断做每一件事,虽然这样会麻烦一点。

    6.浅薄

    如果每看一次《泰坦尼克号》就流一次眼泪,每看一次《大话西游》就笑得直不起腰,就会有人笑你浅薄。其实那只能说明你的神经依旧非常敏锐,对哪怕非常微弱的刺激都会迅速做出适应的反应;等你的感觉迟钝了,人们就会说你深沉了。

    7.疯狂

    这是年轻人最好的心理调适,只能说明你精力旺盛,身心健康。说你“疯狂“是某些生活压抑、心力交瘁的中老年人恶意的评价,他们就像一部年久修的机器,最需要调试,但只能微调,一次大修就会让他们完全报废。

    8。失意

    包括感情上的,事业上的,也许仅仅是今天花了冤枉钱没买到可心的东西,朋友家高朋满座自己却插不上一句话。过分在乎失意的感受不是拿命运的捉弄来捉弄自己,就是拿别人的错误来惩罚自己。

    9.代价

    不是不计代价,而是要明白做任何事都要付出代价。对我们这个年龄的人来说,这绝不是一句废话。否则,要到三十岁的时候才会明白自己曾经付出了多少代价,却不明白为什么付出,更不明白自己得到了多少,得到什么

    10。稳定

    三十岁之前就在乎稳定的生活,那只有两种可能,要么就是中了彩票,要么就是未老先衰。

    11。房子

    除非你买房子是为了升值,要么就是你结婚了。我有个同学,家在外地,大学毕业之后,单位没有宿舍,家里就给他买了一套房子。他曾经有过去北京工作的机会,但是他觉得刚买了房子就离开这座城市说不过去,就放弃了。到现在他工作稳定,但一事无成。

    唯一的成就就是结婚了,并且有了孩子,因为他觉得该让这房子永远空着,所以房子变成了家。房子是都市生活的寓言,这个寓言不应该过早的和我们相关

    12。谣言

    这是一种传染病,沉默是最好的疫苗。除非你能找出传染源,否则解释恰恰会成为病毒传播最理想的条件

    13.薪水

    只要是给人打工,薪水再高也高不到哪儿去。所以在三十岁之前,机会远比金钱重要,事业远比金钱重要,将来远比金钱重要。对大多数人来说,三十岁之前干事业的首要目标绝不是挣钱,而是挣未来重要.

    14.存款

    这倒不一定是因为我们钱少,年轻人现在谁都知道钱是有生命的。机会这么多,条件这么好,可以拿钱去按揭,做今天的事,花明天的钱;也可以拿钱去投资,拿钱去“充电“。钱只有在它流通的过程中才是钱,否则只是一沓世界上质量最好的废纸。

    15.幼稚

    不要怕人说我们幼稚,这正说明你还年轻,还充满活力。「成熟」是个吓人的词儿,也是个害人的词儿。成熟和幼稚是对一个人最大而无当、最不负责任、最没用的概括。那些庸人,绝不会有人说他们幼稚。不信,到哪天你被生活压得老气横秋,暮气沉沉的时候,人们一定会说你成熟了,你就会知道「成熟」是个什么东西。

    16。缺陷

    也许你个子矮,也许你长得不好看,也许你的嗓音像唐老鸭……那么你的优势就是你不会被自己表面的浅薄的亮点所耽搁,少花一些时间,少走一些弯,直接发现你内在的优势,直接挖掘自己深层的潜能。

    17。压力

    中年人能够承受多大压力检验的是他的韧性;年轻人能承受多大压力,焕发的是他的潜能。

    18.孤独

    这是为自由付出的代价
  • QTP录制下拉菜单

    2007-12-18 16:29:01

    QTP默认录制方式是无法录制下拉菜单的,必须修改设置后再录制
    修改设置如下:
    [Tools-Web event recording configuration]点击[custom settings...]展开Web objects,选中webelement,点击[event-add-onmouseover],并确定在record栏内,状态是enabled,然后重新录制你的脚本
  • 小布老师QTP测试视频3

    2007-11-30 22:00:09

    功能测试录制和性能测试录制的区别:

    功能测试录制的是鼠标、键盘等的驱动消息。

    性能测试录制的是客户端发往服务器端的请求包。

    Windows Message Quene

    LR无所谓界面的概念,所以性能测试的脚本不能用于QTP中

    内置三个基本的插件:ActiveX \Visual Basic\Web,其余需要购买

    录制新脚本之前设置参数:

    Tools-Options-Restore Layout(录制前都先设置一下到初始状态)

    关键字驱动 面向对象的思想 对某一个对象的操作  是一个表格  Item是施加动作的对象  适铣跹д?/P>

    专家视图  代码表示  层次结构  父对象下面的子对象  没编程的脚本是没有多大的实际意义的

    默认数据表实际上就是一个Excel表格

    测试结果:不加检查点。。。。。

    Test results can be stored in their own location(for documentation)or in a tenporary location that is overwrritten each time the test is run(for bugging)

    http://v.youku.com/v_playlist/cc00f589961o9p0.html

  • 主流软件测试工具介绍

    2007-11-28 15:01:07

    测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具,这些产品主要是MercuryInteractive(MI)、Segue、IBM Rational、 Compuware和Empirix等公司的产品,而MI公司的产品占了主流。

    白盒测试工具

      白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。

      静态测试工具:直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。静态测试工具的代表有:Telelogic公司的Logiscope软件;PR公司的PRQA软件。

      动态测试工具:动态测试工具与静态测试工具不同,动态测试工具的一般采用"插桩"的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。动态测试工具的代表有:Compuware公司的DevPartner软件;Rational公司的Purify系列等。

    黑盒测试工具

      黑盒测试工具适用于黑盒测试的场合,黑盒测试工具包括功能测试工具和性能测试工具。黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。黑盒测试工具可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。黑盒测试工具的代表有:Rational公司的TeamTest、Robot;Compuware公司的QACenter。

    性能测试工具

      专用于性能测试的工具包括有:Radview公司的WebLoad;Microsoft公司的  WebStress等工具;针对数据库测试的TestBytes;对应用性能进行优化的EcoScope等工具。   MercuryInteractive的LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。

    测试管理工具

      测试管理工具用于对测试进行管理。一般而言,测试管理工具对测试计划、测试用例、测试实施进行管理,并且,测试管理工具还包括对缺陷的跟踪管理。测试管理工具的代表有:Rational公司的Test Manager;Compureware公司的TrackRecord;Mercury Interactive公司的TestDirector等软件。

  • 小故事大道理

    2007-11-27 16:47:55

    1、断箭
    春秋战国时代,一位父亲和他的儿子出征打丈。父亲已做了将军,儿子还只是马前卒。又一阵号角吹响,战鼓雷鸣了,父亲庄严地托起一个箭囊,其中插着一只箭。父亲郑重对儿子说:“这是家袭宝箭,配带身边,力量无穷,但千万不可抽出来。”

    那是一个极其精美的箭囊,厚牛皮打制,镶着幽幽泛光的铜边儿,再看露出的箭尾。一眼便能认定用上等的孔雀羽毛制作。儿子喜上眉梢,贪婪地推想箭杆、箭头的模样,耳旁仿佛嗖嗖地箭声掠过,敌方的主帅应声折马而毙.

    果然,配带宝箭的儿子英勇非凡,所向披靡。当鸣金收兵的号角吹响时,儿子再也禁不住得胜的豪气,完全背弃了父亲的叮嘱,强烈的欲望驱赶着他呼一声就拔出宝箭,试图看个究竟。骤然间他惊呆了。

    一只断箭,箭囊里装着一只折断的箭。
    我一直刳着只断箭打仗呢!儿子吓出了一身冷汗,仿佛顷刻间失去支柱的房子,轰然意志坍塌了。
    结果不言自明,儿子惨死于乱军之中。
    拂开蒙蒙的硝烟,父亲拣起那柄断箭,沉重地啐一口道:“不相信自己的意志,永远也做不成将军。”
    把胜败寄托在一只宝箭上,多么愚蠢,而当一个人把生命的核心与把柄交给别人,又多么危险!比如把希望寄托在儿女身上;把幸福寄托在丈夫身上;把生活保障寄托在单位身上……

    自己才是一只箭,若要它坚韧,若要它锋利,若要它百步穿杨,百发百中,磨砺它,拯救它的都只能是自己。

    2、生命的价值
    在一次讨论会上,一位著名的演说家没讲一句开场白,手里却高举着一张20美元的钞票。
    面对会议室里的200个人,他问:“谁要这20美元?”一只只手举了起来。他接着说:“我打算把这20美元送给你们中的一位,但在这之前,请准许我做一件事。”他说着将钞票揉成一团,然后问:“谁还要?”仍有人举起手来。

    他又说:“那么,假如我这样做又会怎么样呢?”他把钞票扔到地上,又踏上一只脚,并且用脚碾它。尔后他拾起钞票,钞票已变得又脏又皱。

    “现在谁还要?”还是有人举起手来。
    “朋友们,你们已经上了一堂很有意义的课。无论我如何对待那张钞票,你们还是想要它,因为它并没贬值,它依旧值20美元。人生路上,我们会无数次被自己的决定或碰到的逆境击倒、欺凌甚至碾得粉身碎骨。我们觉得自己似乎一文不值。但无论发生什么,或将要发生什么,在上帝的眼中,你们永远不会丧失价值。在他看来,肮脏或洁净,衣着齐整或不齐整,你们依然是无价之宝。”

    生命的价值不依赖我们的所作所为,也不仰仗我们结交的人物,而是取决于我们本身!我们是独特的——永远不要忘记这一点!
    3、昂起头来真美
    珍妮是个总爱低着头的小女孩,她一直觉得自己长得不够漂亮。有一天,她到饰物店去买了只绿色蝴蝶结,店主不断赞美她戴上蝴蝶结挺漂亮,珍妮虽不信,但是挺高兴,不由昂起了头,急于让大家看看,出门与人撞了一下都没在意。

    珍妮走进教室,迎面碰上了她的老师,“珍妮,你昂起头来真美!”老师爱抚地拍拍她的肩说。
    那一天,她得到了许多人的赞美。她想一定是蝴蝶结的功劳,可往镜前一照,头上根本就没有蝴蝶结,一定是出饰物店时与人一碰弄丢了。

    自信原本就是一种美丽,而很多人却因为太在意外表而失去很多快乐。
    无论是贫穷还是富有,无论是貌若天仙,还是相貌平平,只要你昂起头来,快乐会使你变得可爱——人人都喜欢的那种可爱。
    4、为生命画一片树叶
    病房里,一个生命垂危的病人从房间里看见窗外的一棵树,在秋风中一片片地掉落下来。病人望着眼前的萧萧落叶,身体也随之每况愈下,一天不如一天。她说:“当树叶全部掉光时,我也就要死了。”一位老画家得知后,用彩笔画了一片叶脉青翠的树叶挂在树枝上。

    最后一片叶子始终没掉下来。只因为生命中的这片绿,病人竟奇迹般地活了下来。
    人生可以没有很多东西,却唯独不能没有希望。希望是人类生活的一项重要的价值。有希望之处,生命就生生不息!
    5、飞翔的蜘蛛
    一天,我发现一只黑蜘蛛在后院的两檐之间结了一张很大的网。难道蜘蛛会飞?要不,从这个檐头到那个檐头,中间有一丈余宽,第一根线是怎么拉过去的?后来,我发现蜘蛛走了许多弯路——从一个檐头起,打结,顺墙而下,一步一步向前爬,小心翼翼,翘起尾部,不让丝沾到地面的沙石或别的物体上,走过空地,再爬上对面的檐头,高度差不多了,再把丝收紧,以后也是如此。

    蜘蛛不会飞翔,但它能够把网凌结在半空中。它是勤奋、敏感、沉默而坚韧的昆虫,它的网制得精巧而规矩,八卦形地张开,仿佛得到神助。这样的成绩,使人不由想起那些沉默寡言的人和一些深藏不露的智者。于是,我记住了蜘蛛不会飞翔,但它照样把网结在空中。奇迹是执着者造成的。

    6、阴影是条纸龙
    人生中,经常有无数来自外部的打击,但这些打击究竟会对你产生怎样的影响,最终决定权在你手中。
    祖父用纸给我做过一条长龙。长龙腹腔的空隙仅仅只能容纳几只蝗虫,投放进去,它们都在里面死了,无一幸免!祖父说:“蝗虫性子太躁,除了挣扎,它们没想过用嘴巴去咬破长龙,也不知道一直向前可以从另一端爬出来。因而,尽管它有铁钳般的嘴壳和锯齿一般的大腿,也无济于事。

    “当祖父把几只同样大小的青虫从龙头放进去,然后关上龙头,仅仅几分钟,小青虫们就一一地从龙尾爬了出来。
    命运一直藏匿在我们的思想里。许多人走不出人生各个不同阶段或大或小的阴影,并非因为他们天生的个人条件比别人要差嘣叮且蛭敲挥兴枷胍跤爸搅疲裁挥心托穆卣易家桓龇较颍徊讲降叵蚯埃钡窖矍俺鱿中碌亩刺臁?/P>

    7、成功并不像你想像的那么难
    1965年,一位韩国学生到剑桥大学主修心理学。在喝下午茶的时候,他常到学校的咖啡厅或茶座听一些成功人士聊天。这些成功人士包括诺贝尔奖获得者,某些领域的学术权威和一些创造了经济神话的人,这些人幽默风趣,举重若轻,把自己的成功都看得非常自然和顺理成章。时间长了,他发现,在国内时,他被一些成功人士欺骗了。那些人为了让正在创业的人知难而退,普遍把自己的创业艰辛夸大了,也就是说,他们在用自己的成功经历吓唬那些还没有取得成功的人。

    作为心理系的学生,他认为很有必要对韩国成功人士的心态加以研究。1970年,他把《成功并不像你想像的那么难》作为毕业论文,提交给现代经济心理学的创始人威尔·布雷登教授。布雷登教授读后,大为惊喜,他认为这是个新发现,这种现象虽然在东方甚至在世界各地普遍存在,但此前还没有一个人大胆地提出来并加以研究。惊喜之余,他写信给他的剑桥校友——当时正坐在韩国政坛第一把交椅上的人。他在信中说,“我不敢说这部著作对你有多大的帮助,但我敢肯定它比你的任何一个政令都能产生震动。”

    后来这本书果然伴随着韩国的经济起飞了。这本书鼓舞了许多人,因为他们从一个新的角度告诉人们,成功与“劳其筋骨,饿其体肤”、“三更灯火五更鸡”、“头悬梁,锥刺股”没有必然的联系。只要你对某一事业感兴趣,长久地坚持下去就会成功,因为上帝赋予你的时间和智慧够你圆满做完一件事情。后来,这位青年也获得了成功,他成了韩国泛业汽车公司的总裁。

    人世中的许多事,只要想做,都能做到,该克服的困难,也都能克服,用不着什么钢铁般的意志,更用不着什么技巧或谋略。只要一个人还在朴实而饶有兴趣地生活着,他终究会发现,造物主对世事的安排,都是水到渠成的。

    8、永远的坐票
    生活真是有趣:如果你只接受最好的,你经常会得到最好的。
    有一个人经常出差,经常买不到对号入坐的车票。可是无论长途短途,无论车上多挤,他总能找到座位。
    他的办法其实很简单,就是耐心地一节车厢一节车厢找过去。这个办法听上去似乎并不高明,但却很管用。每次,他都做好了从第一节车厢走到最后一节车厢的准备,可是每次他都用不着走到最后就会发现空位。他说,这是因为像他这样锲而不舍找座位的乘客实在不多。经常是在他落座的车厢里尚余若干座位,而在其他车厢的过道和车厢接头处,居然人满为患。

    他说,大多数乘客轻易就被一两节车厢拥挤的表面现象迷惑了,不大细想在数十次停靠之中,从火车十几个车门上上下下的流动中蕴藏着不少提供座位的机遇;即使想到了,他们也没有那一份寻找的耐心。眼前一方小小立足之地很容易让大多数人满足,为了一两个座位背负着行囊挤来挤去有些人也觉得不值。他们还担心万一找不到座位,回头连个好好站着的地方也没有了。与生活中一些安于现状不思进取害怕失败的人,永远只能滞留在没有成功的起点上一样,这些不愿主动找座位的乘客大多只能在上车时最初的落脚之处一直站到下车。

    温馨提示:自信、执着、富有远见、勤于实践,会让你握有一张人生之旅永远的坐票。
    9、心中的顽石
    阻碍我们去发现、去创造的,仅仅是我们心理上的障碍和思想中的顽石。
    从前有一户人家的菜园摆着一颗大石头,宽度大约有四十公分,高度有十公分。到菜园的人,不小心就会踢到那一颗大石头,不是跌倒就是擦伤。

    儿子问:"爸爸,那颗讨厌的石头,为什么不把它挖走?"
    爸爸这么回答:"你说那颗石头喔?从你爷爷时代,就一直放到现在了,它的体积那么大,不知道要挖到到什么时候,没事无聊挖石头,不如走路小心一点,还可以训练你的反应能力。"

    过了几年,这颗大石头留到下一代,当时的儿子娶了媳妇,当了爸爸。
    有一天媳妇气愤地说:"爸爸,菜园那颗大石头,我越看越不顺眼,改天请人搬走好了。"
    爸爸回答说:"算了吧!那颗大石头很重的,可以搬走的话在我小时候就搬走了,哪会让它留到现在啊?"
    媳妇心底非常不是滋味,那颗大石头不知道让她跌倒多少次了。
    有一天早上,媳妇带着锄头和一桶水,将整桶水倒在大石头的四周。
    十几分钟以后,媳妇用锄头把大石头四周的泥土搅松。
    媳妇早有心理准备,可能要挖一天吧,谁都没想到几分钟就把石头挖起来,看看大小,这颗石头没有想像的那么大,都是被那个巨大的外表蒙骗了。

    温馨提示:你抱着下坡的想法爬山,便无从爬上山去。如果你的世界沉闷而无望,那是因为你自己沉闷无望。改变你的世界,必先改变你自己的心态。

    10、追求忘我
    不要把自己当做鼠,否则肯定被猫吃。
    1858年,瑞典的一个富豪人家生下了一个女儿。然而不久,孩子染患了一种无法解释的瘫痪症,丧失了走路的能力。
    一次,女孩和家人一起乘船旅行。船长的太太给孩子讲船长有一只天堂鸟,她被这只鸟的描述迷住了,极想亲自看一看。于是保姆把孩子留在甲板上,自己去找船长。孩子耐不住性子等待,她要求船上的服务生立即带她去看天堂鸟。那服务生并不知道她的腿不能走路,而只顾带着她一道去看那只美丽的小鸟。奇迹发生了,孩子因为过度地渴望,竟忘我地拉住服务生的手,慢慢地走了起来。从此,孩子的病便痊愈了。女孩子长大后,又忘我地投入到文学创作中,最后成为第一位荣获诺贝尔文学奖的女性,也就是茜尔玛·拉格萝芙。

    温馨提示:忘我是走向成功的一条捷径,只有在这种环境中,人才会超越自身的束缚,释放出最大的能量。
    11、乐观者与悲观者
    乐观者在每次危难中都看到了机会,而悲观的人在每个机会中都看到了危难。
    父亲欲对一对孪生兄弟作"性格改造",因为其中一个过分乐观,而另一个则过分悲观。一天,他买了许多色泽鲜艳的新玩具给悲观孩子,又把乐观孩子送进了一间堆满马粪的车房里。

    第二天清晨,父亲看到悲观孩子正泣不成声,便问:"为什么不玩那些玩具呢?"
    "玩了就会坏的。"孩子仍在哭泣。
    父亲叹了口气,走进车房,却发现那乐观孩子正兴高采烈地在马粪里掏着什么。
    "告诉你,爸爸。"那孩子得意洋洋地向父亲宣称,"我想马粪堆里一定还藏着一匹小马呢!"
    温馨提示:乐观者与悲观者之间,其差别是很有趣的:乐观者看到的是油炸圈饼,悲观者看到的是一个窟窿。
    12、勇于冒险
    对于那些害怕危险的人,危险无处不在。
    有一天,龙虾与寄居蟹在深海中相遇,寄居蟹看见龙虾正把自己的硬壳脱掉,只露出娇嫩的身躯。寄居蟹非常紧张地说:"龙虾,你怎可以把唯一保护自己身躯的硬壳也放弃呢?难道你不怕有大鱼一口把你吃掉吗?以你现在的情况来看,连急流也会把你冲到岩石去,到时你不死才怪呢?"

    龙虾气定神闲地回答:"谢谢你的关心,但是你不了解,我们龙虾每次成长,都必须先脱掉旧壳,才能生长出更坚固的外壳,现在面对的危险,只是为了将来发展得更好而作出准备。"

    寄居蟹细心思量一下,自己整天只找可以避居的地方,而没有想过如何令自己成长得更强壮,整天只活在别人的护荫之下,难怪永远都限制自己的发展。

    温馨提示:每个人都有一定的安全区,你想跨越自己目前的成就,请不要划地自限,勇于接受挑战充实自我,你一定会发展得比想像中更好。

    13、再试一次
    什么东西比石头还硬,或比水还软?然而软水却穿透了硬石,坚持不懈而已。
    有个年轻人去微软公司应聘,而该公司并没有刊登过招聘广告。见总经理疑惑不解,年轻人用不太娴熟的英语解释说自己是碰巧路过这里,就贸然进来了。总经理感觉很新鲜,破例让他一试。面试的结果出人意料,年轻人表现糟糕。他对总经理的解释是事先没有准备,总经理以为他不过是找个托词下台阶,就随口应道:"等你准备好了再来试吧"。

    一周后,年轻人再次走进微软公司的大门,这次他依然没有成功。但比起第一次,他的表现要好得多。而总经理给他的回答仍然同上次一样:"等你准备好了再来试。"就这样,这个青年先后5次踏进微软公司的大门,最终被公司录用,成为公司的重点培养对象。

    温馨提示:也许,我们的人生旅途上沼泽遍布,荆棘丛生;也许我们追求的风景总是山重水复,不见柳暗花明;也许,我们前行的步履总是沉重、蹒跚;也许,我们需要在黑暗中摸索很长时间,才能找寻到光明;也许,我们虔诚的信念会被世俗的尘雾缠绕,而不能自由翱翔;也许,我们高贵的灵魂暂时在现实中找不到寄放的净土……那么,我们为什么不可以以勇敢者的气魄,坚定而自信地对自己说一声"再试一次!"

    再试一次,你就有可能达到成功的彼岸!
    14、天道酬勤
    没有人能只依靠天分成功。上帝给予了天分,勤奋将天分变为天才。
    曾国藩是中国历史上最有影响的人物之一,然他小时候的天赋却不高。有一天在家读书,对一篇文章重复不知道多少遍了,还在朗读,因为,他还没有背下来。这时候他家来了一个贼,潜伏在他的屋檐下,希望等读书人睡觉之后捞点好处。可是等啊等,就是不见他睡觉,还是翻来复去地读那篇文章。贼人大怒,跳出来说,"这种水平读什么书?"然后将那文章背诵一遍,扬长而去!

    贼人是很聪明,至少比曾先生要聪明,但是他只能成为贼,而曾先生却成为主席都钦佩的人:"近代最有大本夫源的人。"
    "勤能补拙是良训,一分辛苦一分才。"那贼的记忆力真好,听过几遍的文章都能背下来,而且很勇敢,见别人不睡觉居然可以跳出来"大怒",教训曾先生之后,还要背书,扬长而去。但是遗憾的是,他名不经传,曾先生后来启用了一大批人才,按说这位贼人与曾先生有一面之交,大可去施展一二,可惜,他的天赋没有加上勤奋,变得不知所终。

    温馨提示:伟大的成功和辛勤的劳动是成正比的,有一分劳动就有一分收获,日积月累,从少到多,奇迹就可以创造出来。
    15、好学不倦
    只有一个洞穴的老鼠很快被捉。
    在一个漆黑的晚上,老鼠首领带领着小老鼠出外觅食,在一家人的厨房内,垃圾桶之中有很多剩余的饭菜,对于老鼠来说,就好像人类发现了宝藏。

    正当一大群老鼠在垃圾桶及附近范围大挖一顿之际,突然传来了一阵令它们肝胆俱裂的声音,那就是一头大花猫的叫声。它们震惊之余,更各自四处逃命,但大花猫绝不留情,不断穷追不舍,终于有两只小老鼠走避不及,被大花猫捉到,正要向它们吞噬之际,突然传来一连串凶恶的狗吠声,令大花猫手足无措,狼狈逃命。

    大花猫走后,老鼠首领施施然从垃圾桶后面走出来说:"我早就对你们说,多学一种语言有利无害,这次我就因而救了你们一命。"
    温馨提示:"多一门技艺,多一条路。"不断学习实在是成功人士的终身承诺。
    16、居安思危
    洪水未到先筑堤,豺狼未来先磨刀。
    一只野狼卧在草上勤奋地磨牙,狐狸看到了,就对它说:"天气这么好,大家在休息娱乐,你也加入我们队伍中吧!"野狼没有说话,继续磨牙,把它的牙齿磨得又尖又利。狐狸奇怪地问道:"森林这么静,猎人和猎狗已经回家了,老虎也不在近处徘徊,又没有任何危险,你何必那么用劲磨牙呢?"野狼停下来回答说:"我磨牙并不是为了娱乐,你想想,如果有

    一天我被猎人或老虎追逐,到那时,我想磨牙也来不及了。而平时我就把牙磨好,到那时就可以保护自己了。"
    温馨提示:做事应该未雨绸缪,居安思危,这样在危险突然降临时,才不至于手忙脚乱。"书到用时方恨少",平常若不充实学问,临时抱佛脚是来不及的。也有人抱怨没有机会,然而当升迁机会来临时,再叹自己平时没有积蓄足够的学识与能力,以致不能胜任,也只好后悔莫及。

    17、困境即是赐予
    一个障碍,就是一个新的已知条件,只要愿意,任何一个障碍,都会成为一个超越自我的契机。
    有一天,素有森林之王之称的狮子,来到了天神面前:"我很感谢你赐给我如此雄壮威武的体格、如此强大无比的力气,让我有足够的能力统治这整座森林。"

    天神听了,微笑地问:"但是这不是你今天来找我的目的吧!看起来你似乎为了某事而困扰呢!"
    狮子轻轻吼了一声,说:"天神真是了解我啊!我今天来的确是有事相求。因为尽管我的能力再好,但是每天鸡鸣的时候,我总是会被鸡鸣声给吓醒。神啊!祈求您,再赐给我一个力量,让我不再被鸡鸣声给吓醒吧!"

    天神笑道:"你去找大象吧,它会给你一个满意的答复的。"
    狮子兴匆匆地跑到湖边找大象,还没见到大象,就听到大象跺脚所发出的"砰砰"响声。
    狮子加速地跑向大象,却看到大象正气呼呼地直跺脚。
    狮子问大象:"你干嘛发这么大的脾气?"
    大象拼命摇晃着大耳朵,吼着:"有只讨厌的小蚊子,总想钻进我的耳朵里,害我都快痒死了。"
    狮子离开了大象,心里暗自想着:"原来体型这么巨大的大象,还会怕那么瘦小的蚊子,那我还有什么好抱怨呢?毕竟鸡鸣也不过一天一次,而蚊子却是无时无刻地骚扰着大象。这样想来,我可比他幸运多了。"

    狮子一边走,一边回头看着仍在跺脚的大象,心想:"天神要我来看看大象的情况,应该就是想告诉我,谁都会遇上麻烦事,而它并无法帮助所有人。既然如此,那我只好靠自己了!反正以后只要鸡鸣时,我就当做鸡是在提醒我该起床了,如此一想,鸡鸣声对我还算是有益处呢?"

    温馨提示:在人生的路上,无论我们走得多么顺利,但只要稍微遇上一些不顺的事,就会习惯性地抱怨老天亏待我们,进而祈求老天赐给我们更多的力量,帮助我们度过难关。但实际上,老天是最公平的,就像它对狮子和大象一样,每个困境都有其存在的正面价值。

    18、永远的一课
    面对困难,许多人戴了放大镜,但和困难拼搏一番,你会觉得,困难不过如此。
    那天的风雪真暴,外面像是有无数发疯的怪兽在呼啸厮打。雪恶狠狠地寻找袭击的对象,风呜咽着四处搜索。
    大家都在喊冷,读书的心思似乎已被冻住了。一屋的跺脚声。
    鼻头红红的欧阳老师挤进教室时,等待了许久的风席卷而入,墙壁上的《中学生守则》一鼓一顿,开玩笑似的卷向空中,又一个跟头栽了下来。

    往日很温和的欧阳老师一反常态:满脸的严肃庄重甚至冷酷,一如室外的天气。
    乱哄哄的教室静了下来,我们惊异地望着欧阳老师。
    "请同学们穿上胶鞋,我们到操场上去。"
    几十双眼睛在问。
    "因为我们要在操场上立正五分钟。"
    即使欧阳老师下了"不上这堂课,永远别上我的课"的恐吓之词,还是有几个娇滴滴的女生和几个很横的男生没有出教室。
    操场在学校的东北角,北边是空旷的菜园,再北是一口大塘。
    那天,操场、菜园和水塘被雪连成了一个整体。
    矮了许多的篮球架被雪团打得"啪啪"作响,卷地而起的雪粒雪团呛得人睁不开眼张不开口。脸上像有无数把细窄的刀在拉在划,厚实的衣服像铁块冰块,脚像是踩在带冰碴的水里。

    我们挤在教室的屋檐下,不肯迈向操场半步。
    欧阳老师没有说什么,面对我们站定,脱下羽绒衣,线衣脱到一半,风雪帮他完成了另一半。"在操场上去,站好!"欧阳老师脸色苍白,一字一顿地对我们说。

    谁也没有吭声,我们老老实实地到操场排好了三列纵队。
    瘦削的欧阳老师只穿一件白衬褂,衬褂紧裹着的他更显单薄。
    后来,我们规规矩矩地在操场站了五分多钟。
    在教室时,同学们都以为自己敌不过那场风雪,事实上,叫他们站半个小时,他们顶得住,叫他们只穿一件衬衫,他们也顶得住。
    温馨提示:正如生命中的许多伤痛一样,其实并不如自己想像的那么严重。如果不把它当回事,它是不会很痛的。你觉得痛,那是因为你自以为伤口在痛,害怕伤口的痛。

    19、大海里的船
    在大海上航行的船没有不带伤的。
    英国劳埃德保险公司曾从拍卖市场买下一艘船,这艘船1894年下水,在大西洋上曾138次遭遇冰山,116次触礁,13次起火,207次被风暴扭断桅杆,然而它从没有沉没过。

    劳埃德保险公司基于它不可思议的经历及在保费方面给带来的可观收益,最后决定把它从荷兰买回来捐给国家。现在这艘船就停泊在英国萨伦港的国家船舶博物馆里。

    不过,使这艘船名扬天下的却是一名来此观光的律师。当时,他刚打输了一场官司,委托人也于不久前自杀了。尽管这不是他的第一次失败辩护,也不是他遇到的第一例自杀事件,然而,每当遇到这样的事情,他总有一种负罪感。他不知该怎样安慰这些在生意场上遭受了不幸的人。

    当他在萨伦船舶博物馆看到这艘船时,忽然有一种想法,为什么不让他们来参观参观这艘船呢?于是,他就把这艘船的历史抄下来和这艘船的照片一起挂在他的律师事务所里,每当商界的委托人请他辩护,无论输赢,他都建议他们去看看这艘船。

    它使我们知道:在大海上航行的船没有不带伤的。
    温馨提示:虽然屡遭挫折,却能够坚强地百折不挠地挺住,这就是成功的秘密。


    20、驴的哲学
    人生必须渡过逆流才能走向更高的层次,最重要的是永远看得起自己。
    有一天某个农夫的一头驴子,不小心掉进一口枯井里,农夫绞尽脑汁想办法救出驴子,但几个小时过去了,驴子还在井里痛苦地哀嚎着。

    最后,这位农夫决定放弃,他想这头驴子年纪大了,不值得大费周章去把它救出来,不过无论如何,这口井还是得填起来。于是农夫便请来左邻右舍帮忙一起将井中的驴子埋了,以免除它的痛苦。

    农夫的邻居们人手一把铲子,开始将泥土铲进枯井中。当这头驴子了解到自己的处境时,刚开始哭得很凄惨。但出人意料的是,一会儿之后这头驴子就安静下来了。农夫好奇地探头往井底一看,出现在眼前的景象令他大吃一惊:

    当铲进井里的泥土落在驴子的背部时,驴子的反应令人称奇──它将泥土抖落在一旁,然后站到铲进的泥土堆上面!
    就这样,驴子将大家铲倒在它身上的泥土全数抖落在井底,然后再站上去。很快地,这只驴子便得意地上升到井口,然后在众人惊讶的表情中快步地跑开了!

    温馨提示:就如驴子的情况,在生命的旅程中,有时候我们难免会陷入"枯井"里,会被各式各样的"泥沙"倾倒在我们身上,而想要从这些"枯井"脱困的秘诀就是:将"泥沙"抖落掉,然后站到上面去!

  • 开源测试工具

    2007-11-27 16:44:28

    Linux Test Project
    http://ltp.sourceforge.net/
    工具描述:
    Linux Test Project是一个测试Linux内核和内核相关特性的工具集合。该工具的目的是通过把测试自动化引入到Linux内核测试,提高Linux的内核质量。
    使用环境:
    Linux

    MaxQhttp://maxq.tigris.org/
    工具描述:
    MaxQ是一个免费的功能测试工具。它包括一个HTTP代理工具,可以录制测试脚本,并提供回放测试过程的命令行工具。测试结果的统计图表类似于商用测试工具,比如Astra QuickTest和Empirix e-Test,这些商用工具都很昂贵。MaxQ希望能够提供一些关键的功能,比如HTTP测试录制回放功能,并支持脚本。
    使用环境:
    Java 1.2以上版本

    WebInject
    http://www.webinject.org/
    工具描述:
    WebInject是一个针对Web应用程序和服务的免费测试工具。 它可以通过HTTP接口测试任意一个单独的系统组件。可以作为测试框架管理功能自动化测试和回归自动化测试的测试套。
    使用环境:
    Windows, OS Independent, Linux

    开源测试工具—性能测试工具

    Apache JMeter
    http://jakarta.apache.org/jmeter/
    工具描述:
    Apache JMeter是100%的Java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计Jmeter的初衷是测试Web应用,后来又扩充了其它的功能。Jmeter可以完成针对静态资源和动态资源(讹误女监, Servlets, Perl脚本, Java对象, 数据查询s, FTP服务等)的性能测试。。 Jmeter可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能。Jmeter提供图形化的性能分析。
    使用环境:
    Solaris, Linux, Windows (98, NT, 2000). JDK1.4以上.

    DBMonster
    http://dbmonster.kernelpanic.pl/
    工具描述:
    DBMonster是一个生成随机数据,用来测试SQL数据库的压力测试工具。
    使用环境:
    OS Independent

    OpenSTA (Open System Testing Architecture)
    http://portal.opensta.org/index.php
    工具描述:
    基于CORBA的分布式软件测试构架。使用OpenSTA,测试人员可以模拟大量的虚拟用户。OpenSTA的结果分析包括虚拟用户响应时间、web服务器的资源使用情况、数据库服务器的使用情况,可以精确的度量负载测试的结果。
    使用环境:
    OS Independent

    TPTEST
    http://tptest.sourceforge.net/about.php
    工具描述:
    TPTest的提供测试Internet连接速度的简单方法。
    使用环境:
    MacOS/Carbon、 Win32

    Web Application Load Simulator
    http://www.openware.org/loadsim/index.html
    工具描述:
    LoadSim是一个网络应用程序的负载模拟器。
    使用环境:
    JDK 1.3以上

    开源测试工具—缺陷管理工具

    Mantis
    http://mantisbt.sourceforge.net/
    工具描述:
    Mantis是一款基于WEB的软件缺陷管理工具,配置和使用都很简单,适合中小型软件开发团队。
    使用环境:
    MySQL, PHP

    Bugzilla http://www.mozilla.org/projects/bugzilla/
    工具描述:
    一款不错的软件缺陷管理工具。
    使用环境:
    TBC

    开源测试工具—测试管理工具

    TestLink
    http://testlink.sourceforge.net/docs/testLink.php
    工具描述:
    基于WEB的测试管理和执行系统。测试小组在系统中可以创建、管理、执行、跟踪测试用例,并且提供在测试计划中安排测试用例的方法。
    使用环境:
    Apache, MySQL, PHP

    Bugzilla Test Runner http://sourceforge.net/projects/testrunner/
    工具描述:
    Bugzilla Test Runner基于Bugzilla缺陷管理系统的测试用例管理系统。
    使用环境:
    Bugzilla 2.16.3 or above

  • SilkTest2006——(5)快速入门摘记

    2007-11-26 18:04:31

    测试DefaultBaseState
    在下面的练习中你将要运行DefaultBaseState以保证你正确创建测试框架。做这些的目的是保证恢复系统可以正确工作。

    1 如果GMO应用程序在运行则关闭
    2 在SilkTest中,打开测试框架
    3 点击[Run/Application State]打开[Run Application State]对话框
    4 如果没有被选择,则点选DefaultBaseState,点击[Run],则[Runtime Status]对话框立刻被打开
      接下来结果文件将被打开,表明DefaultBaseState是否实现。

    -----------------

    每一个对象声明将有一个class、一个tag、一个identifier。
    GMO web应用程序的主页的class为BrowserChild,而GMO c/s应用程序的主窗口的类为MainWin
    他们的identifier是你在生成测试框架时在4test identifier区域指定的名称。
    tag是不可编辑的,由silktest生成,用于在在运行时中识别对象

    ------------------
    为了使测试更容易维护,你可以改变对象的identifier与在应用程序中的意思相呼应。


    修改 identifier

    你可以用下面中的一种方法来修改identifier

    1 在录制了窗口声明后,在测试框架中直接修改
    2 在录制了窗口声明后,在[Record Window Declarations]对话框中的[Window Detail]区域修改


    ===========================================
    创建测试用例

    当你创建测试用例时,要记住以下几点:

    1 一个测试用例有三个基本任务
     (1)驱动程序到待测状态
     (2)验证程序实际状态是否符合预期状态
     (3)使程序回到最初状态(也成为base state)

    2 每个测试用例和其他测试用例都是相互独立的。也就是说脚本或者测试用例不能依赖于之前脚本或测试用例的完成来实现

    3 每个测试用例都有单一的目的,这样比较容易判断程序是否正确工作

    4 一个测试用例从基本状态(base state)开始。为了使一个测试用例能够正确运行,则测试用例开始执行时程序必须处在
    一个稳定的状态

    小建议:在下面的章节中简单学习了录制测试用例后,请一定要阅读《从测试计划录制》,该章节描述了怎么自动在测试计
    划和测试用例之间建立链接以使录制更加简单。

    ------------------
    录制一个测试用例有三个步骤:
    步骤1 :设置录制状态
    步骤2 :录制安装阶段(SetUp Stage)
    步骤3 :录制验证阶段(Verification Stage)

    学习silktest到现在,终于遇到一个自己无法解决的问题,那就是在生成测试框架(test frame)的过程中,silktest agent将GMO web应用程序当成了c/s结构的程序,不知道该怎么解决

  • SilkTest2006——(4)快速入门摘记

    2007-11-23 12:07:29


    下面练习如何定义一个新的属性并给其赋值。

    1 在[Define Attributes]对话框中,点击[New]按钮,打开[New Attributes]对话框
    2 在[Name]文本框中填写属性名称Priority
    3 选择属性类型(红色字体表示不太明白的)
     Normal : 你定义属性时指定属性值,每个测试计划语句只能分配一个值
     Edit   : 当你将测试计划与值相连时,每个测试计划语句只能分配一个值
     Set    : 你定义属性时指定属性值,每个测试几乎语句可以分配多个值
    4 点击[OK],关闭[New Attributes]对话框
    5 在[Add]文本框中填写值High后,点击[Add]按钮,给属性添加属性值,重复添加Medium和Low
    6 点击[OK]按钮,关闭[Define Attributes]对话框

    ===========================================================

    下面练习怎样将属性值应用到测试计划语句上。
    1 在SilkTest中,打开测试计划
    2 选择一个测试计划语句,点选[Verify caption is correct]这行语句
    3 点击[TestPlan]->[Detail],打开[TestPlan Detail]对话框
      在该对话框的顶部的文本框中,右箭头指向测试计划中光标所在位置的测试计划语句
    4 点击[Test Attributes]标签,为选择的测试计划语句选择Develoer、Catagory。。等等
    5 点击[OK]按钮,则[TestPlan Detail]对话框关闭。回到silktest中,你将会发现你刚刚选择的属性值被添加到
    选择的测试计划的下面,以深红色字体显示。
    6 点击[File]->[Save]保存测试计划的变化
    5 点击[File/Close]关闭测试计划

    感觉看的很乱,等全部都看完了,再好好按照一个完整的工作流程好好整理一下!

  • SilkTest2006——(3)快速入门摘记

    2007-11-23 12:05:38

    三 明确使用文件(Use Files)

    使用文件(Use Files)中详细说明了一个或多个包含文件(include file)的名字,使得silktest可以在启动时加载。
    这意味着silktest可以使用在那些.inc文件中声明的对象描述,从而识别你的应用程序中的GUI对象。

    当你录制一个测试框架(test frame)时,测试框架的完整路径将被自动地添加到[Use Files]文本框中。
    但是本导航手册使用测试框架文件gmow.inc,你需要手动添加该路径,通过以下步骤:
    1 在silktest中,点击OPtions->Runtime
    2 在[Runtime Options]对话框中,点击[Use Files]文本框旁边的[Add]按钮

    四 熟悉Web AUT
    在你测试你的应用程序之前,你必须先要熟悉AUT。下面的练习中你将会熟悉你要使用的web应用程序示例。同时将告诉你
    怎样用silktest识别AUT中的对象。

    GMO web应用程序
    GMO web应用程序是一个基本的在线的目录应用程序。下面显示了GMO的框架结构

    GMO Online
     Online Catalog
      Place Order
       Billing Information
        Online Store Receipt
     All Browsers
     About This Site

    进行终端对终端的交易
    1 启动GMO应用程序
    2 点击[Enter GMO Online]
    3 点击任意商品的名称链接,可以阅读产品的描述信息
    4 点击浏览器上的返回按钮
    5 在某商品的对应[Order Quantity]栏填写所需数量,就选择了购买该产品
    6 点击[Place An Order],进入[Place Order]页面
    7 点击[Proceed with Order],[Billing Information]页面打开
    8 填写帐单信息,要注意以下几点
       电话号码必须是10位
       信用卡号码必须是15位
       截止到货日必须是将来的某一天(MM/YY)
       邮编号码是5位数字
      

    四 用silktest查看对象
    在下面的联系中,你将通过silktest查看AUT,并查看silktest怎样识别对象
    1 进入GMO主页
    2 在silktest中,打开[Record Window Identifiers]对话框
      Record —>Windows Identifiers
      在[Record Window Identifiers]中显示了对GUI对象的4test识别。在该工具中显示的实际名称取决于你是否精确地录制
    对象的定义以及这些文件是否在RunTime Options的Use Files文本框中明确制定了
    3 最小化silktest的主窗口,为了查看AUT中的对象,AUT必须可见
     首先我们来看一下浏览器对象
     1)查看浏览器对象
        鼠标置于浏览器的标题栏上。你将发现[Window Identifier]中显示“Browser”。“Browser”是浏览器的内置
     窗口声明。
     2)鼠标置于浏览器工具栏的主页按钮图标上。则看到显示为“Browser.Home”,就是说window对象中的Home对象。
     3)鼠标置于浏览器工具栏上的其他的图标上。将发现显示某些按钮为“Explore.X”,这里的x就是按钮的名称。


    DOM使用下面语法动态实例化对象
    Browser.BrowserChild.Class("tag")
    例如:Browser.BrowserChild.HtmlHeading("GMO OnLine")
    Browser指的是你的web浏览器
    Browser指的是任何一个你还没有声明的web网页
    HtmlHeading指的是对象的类
    GMO OnLine is the caption

     

    TestPlan Editor
    绿色:注释
    黑色:组描述信息
    蓝色:文本描述信息
    深红色:测试计划语句
    品红色:打开自测试计划文件标识

    定义和连接属性
    属性(Attrbutes):Attributes are site-specific or project-specific characteristics that you define for
    your testplan and assign to test descrīptions or group descrīptions。

    silktest提供了三个默认的属性:Category、Component、Developer

    属性的名称不能超过11个字符、不能含有空格、大小写不敏感
     

     

     

     

     

     

  • SilkTest2006——(2)快速入门摘记

    2007-11-20 17:18:51

    测试过程的六个步骤:plan-〉Capture-〉Create-〉Run-〉Report-〉Track
    1 Plan    : Determine the testing strategy and define specific test requirements
                 决定测试策略、定义明确的测试需求

    2 Capture :  Classify the GUI objects in your application and build a framework for running your tests
                 识别程序中的GUI对象并为运行你的测试建立框架结构

    3 Create  :  Create automated,reusable tests.Use recording and/or programming to build test scrīpts written in 4Test Language
          创建自动化的,可复用的测试.录制和/或编制测试4test语言脚本

    4 Run     :  Select specific tests and execute them against the AUT
                 选择针对AUT的脚本并执行测试

    5 Report  :  Analyze test results and generate defect reports.
          分析测试结果,产生缺陷报告

    6 Track   :  Track defects in the AUT and perform regression testing.
                 在AUT中定位缺陷,执行回归测试


    SilkTest 文件类型
    在silktest的自动测试过程中有8种文件类型(但是列出了10种文件类型,可以从下面列表中看出为什么。。。)
    1)project                      .vtp(Verify Test Project)
    2)TestPlan                     .pln
       Masterplan   subplan
    3)TestFrame                    .inc
    4)4Test scrīpt                 .t
    5)Data Driven scrīpt           .g.t
    6)4Test Include scrīpt         .inc(包含窗口声明、常量、变量、类和用户自定义函数的文件)
    7)Suite                        .s
    8)Text File                    .txt
    9)Results File                 .res
    10)Initialization File         .ini


    熟悉SilkTest界面
    SilkTest opens,with the Basic Workflow bar enabled.
    启动SilkTest后,默认为基本流方式,并显示基本流工具条
    If you want to turn off the Basic Workflow bar,click Workflows/Basic.
    如果你想关闭基本流工具条,点击Workflows—>Basic


    对Web应用程序使用SilkTest
    挑战性:Multiple browsers 、Multiple technologies、Dynamic content、Synchronization issuse

    根据需要可以选择学习部分,选择1
    1 Setting up to test Web application
    2 Becoming familiar with the Web Application Under Test
    3 Setting up to test Client/Server Application
    4 Becoming familiar with the Client/Server Application Under Test

    GMO which is short for Green Mountain Outpost. 
    描述了用SilkTest测试GMO Web应用程序所要做的准备步骤,分以下三个部分:
    1 Creating a new project
    2 Enabling Extensions
    3 Specifying the use Files

    一 创建项目
    SilkTest的项目将一组测试相关的资源组织起来并呈现在项目浏览器中,使得在你的测试环境中比较容易查看、管理和工作

    Open Project->New Project->Create Project[OK]/double click

    SilkTest将在保存路径下产生一个以项目名命名的文件夹。在该文件夹中有项目名.vtp和项目名.ini两个文件,并且在项目名/extend子
    文件夹下有一些扩展的ini文件。

    SilkTest创建的项目在项目浏览器中有一个节点,该节点以树结构将项目相关的文件和资源显示在Files和Globle两个标签下

    创建了项目后,你就可以为测试GMO应用程序激活所需要的扩展了

    二 激活扩展

    注意:请用IE5.X以上的浏览器

    1 用浏览器打开GMO Web应用程序http://demo.borland.com/gmopost/
    2 点击基本流工具条上的[Enable Extensions],打开[Enable Extensions]对话框,列出了打开的没有被最小化的应用程序,包括Web应用程序,可以通过当前被加载的页面标题来识别
    3 点击[Welcome to Green Mountain Outpost]后,点击[Select]以激活该应用程序所需要的扩展
      如果在对话框中没有出现[Welcome to Green Mountain Outpost],请确保不是最小化,然后再点击[Refresh]
    4 在[Test Extension Settings]对话框中,点击[OK]激活DOM扩展
    5 关闭浏览器,重新打开后,进入http://demo.borland.com/gmopost/
    6 在[Test Extension Settings]对话框,点击[Text]
    7 在[Test passed]对话框,点击[OK]。如果你要测试你的应用程序,接下来就可能就要配置恢复系统,能自动地产生框架文件,详细内容可以参见在线的帮助文件
      但是,对于该快速入门教程,我们将使用SilkTest生成的框架文件。

    三 明确使用文件P29

  • SilkTest2006——(1)简介

    2007-11-20 14:34:17

    在我的机器上,怎么都安装不了QTP,总要学一样测试工具吧,于是在segue网站上下载了一个SilkTest2006的30天试用版本来学习自动化测试工具。

    网上对SilkTest的评价也是很不错的,我感觉学习这个测试工具应该也是个不错的选择吧。

    ==============================================================

    Borland SilkTest 2006属于软件功能测试工具,是Borland公司所提出软件质量管理解决方案的套件之一。这个工具采用精灵设定与自动化执行测试,无论是程序设计新手或资深的专家都能快速建立功能测试,并分析程序错误。

     

    SilkTest 2006有两个核心组件:SilkTest IDE SilkTest Agent

    SilkTest IDE的可视化使用者接口,让测试人员可以针对指令码、架构与测试计划等,快熟开发、编辑、编译、执行、分析,以及除错。

    SilkTest Agent会将4test scrīpt中的指令转译成可视化的指令,并负责驱动与监视整个测试过程。

    此外,在测试执行过程中,IDE也负责与代理程序沟通。由于IDE可与代理程序分别安装在不同的计算机上执行,一个IDE可分析多个代理程序的结果,让设计师可同时在堕胎电脑进行测试,缩减测试周期。

     

    2006版新增加TrueLog技术,这是独立的分析工具,每当测试案例产生错误时,TrueLog可以快速地定位出产生错误的程序代码位置,特别是当程序代码非常庞大时,TrueLog还可以比对不同测试结果。

    新版更可以整合Borland StarTeam,用于管理程序代码,以及在Windows操作系统中使用Eclipse3.2开发的应用程序。SilkTest 2006也提供自动化功能和回归测试工具,使测试人员可验证网页、Java、客户端/服务器和企业应用程序等。

     

    两种测试流程:基本流程与数据驱动流程。

    基本流程:用于从无到有建立一个测试流程,通常是软件开发时新增功能的验证。

    数据驱动流程:从现有的测试案例中,籍由记录、数据导向精灵,让新手不需要编写程序代码就可以建立并自定测试,只要修改原来测试案例中的参数即可。

     

    基本流程具有错误复原系统,执行长时期的无人测试。

     

    设计师为软件新增功能时,可以先从基本流程建立测试案例,工具上有五个主要步骤,分别是建立项目、开启延伸文件、设定系统回复、录制测试案例、执行和检视结果。

     

    开启延伸文件主要是因为在测试网页应用程序时,还包括DCOM组件和ActiveX组件。

     

    录制测试用例是从使用者操作的角度,录制成自动执行档,后续只要执行测试用例,系统会以录制好的脚本,依流程执行。以往设计师必须撰写测试程序,录制可以短时间产生复杂的功能测试动作。录制动作完成后,系统会自动产生4test scrīpt程序代码(面向对象的第4代指令代码语言),设计师只要按下[贴到编辑器]按钮,就可以带IDE上检视测试用例程序和修改等。

     

    测试人员执行长时期的自动化无人测试时,为避免发生错误而损坏应用程序,可以设定系统回复,在错误产生时记录并恢复程序原来正常的状态。

     

    数据驱动使用前必须设定数据来源,系统支持如的dBaseExcelAccessSegue DDA Excel等,甚至Whatsup所产生的数据文件。

     

    支持5种语言测试

    Borland将原来的SilkTest International版整合到SilkTest2006种,目前可以支持英语、法文、德文、日文、简体中文等5种语言测试。

     

    测试网页应用程序时,此工具可模拟的浏览器包括Netscape Navagator7.xIE6.xFirefox1.5等。

     

    Borland也提供选用的附加项目,可用来测试.NET WinForms应用程序、IBM AS/400专属应用程序,或AOL客户端等。

     

  • 测试基础知识——因果图

    2007-11-20 09:34:06

    文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest

    一.    方法简介

    1.定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
    2.因果图法产生的背景:
    等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
    如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
    3.因果图介绍
    1) 4种符号分别表示了规格说明中向4种因果关系。

    2) 因果图中使用了简单的逻辑符号,以直线联接左右结点。左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。
    3) Ci表示原因,通常置于图的左部;ei表示结果,通常在图的右部。Ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现。
    4. 因果图概念
    1)    关系
    ①恒等:若ci是1,则ei也是1;否则ei为0。
    ②非:若ci是1,则ei是0;否则ei是1。
    ③或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。
    ④与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。
    2)    约束
    输入状态相互之间还可能存在某些依赖关系,称为约束。例如, 某些输入条件本身不可能同时出现。输出状态之间也往往存在约束。在因果图中,用特定的符号标明这些约束。
    A.输入条件的约束有以下4类:
       ① E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。
       ② I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。
       ③ O约束(唯一);a和b必须有一个,且仅有1个为1。
       ④R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。
    B.输出条件约束类型
       输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。
    5. 采用因果图法设计测试用例的步骤:
    1)分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
    2)分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。
    3)由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
    4)把因果图转换为判定表。
    5)把判定表的每一列拿出来作为依据,设计测试用例。
    二. 实战演习
    1. 某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
    解答:
    1) 根据题意,原因和结果如下:
           原因:
              1——第一列字符是A;
              2——第一列字符是B;
              3——第二列字符是一数字。
           结果:
              21——修改文件;
              22 ——给出信息L;
              23——给出信息M。
    2) 其对应的因果图如下:
    11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。
    3)根据因果图建立判定表。
     
           表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。
    2.有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
    1) 分析这一段说明,列出原因和结果
    原因:
    1.售货机有零钱找
    2.投入1元硬币
    3.投入5角硬币
    4.押下橙汁按钮
    5.押下啤酒按钮
    结果:
    21.售货机〖零钱找完〗灯亮   
    22.退还1元硬币
    23.退还5角硬币             
    24.送出橙汁饮料
    25.送出啤酒饮料
    2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:
    11. 投入1元硬币且押下饮料按钮
                    12. 押下〖橙汁〗或〖啤酒〗的按钮
                    13. 应当找5角零钱并且售货机有零钱找
                    14. 钱已付清
    3)转换成判定表:
     
    4) 在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。第16列与第32列因什么动作也没做,也删去。最后可根据剩下的16列作为确定测试用例的依据。
  • 测试基础知识——验收测试

    2007-11-16 18:05:59

    验收测试主要是针对项目型的测试系统,α测试和β测试主要是针对产品型的测试系统,而不能说验收测试包括α测试和β测试
    验收测试也是UAT-User Acceptance Testing即用户可接收性测试,它是以用户为主的测试
    它的特点是
    1、主要目的是评价软件使用质量
    2、以用户为主的测试,测试用例由用户设计,有测试人员、开发人员、QA参与
    3、测试用例的依据是合同、《需求规格说明书》或《验收测试计划》
    4、通常在用户的所在地进行
    α测试的特点是
    1、它是在开发环境下进行的(不对外发布)
    2、它不需要测试用例评价软件使用质量
    3、用户往往没有相关经验,可以是兼职人员,开发者或测试者坐用户旁边
    4、目的主要评价软件产品的FLURS-Function、Location、Usability、reliability、Performance、Security即功能、局域化、可用性、可靠性、性能和技术支持
    β测试的特点是
    1、它是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试
    2、开发者通常不在测试现场
    3、免费的
    4、用户是任意的,环境是无法控制的
  • [20071116]工作总结

    2007-11-16 11:56:45

    1 编程有编程思想,测试也要有测试思想

    我是非计算机专业毕业的,在学校也就只学过C语言,所以进入华阳做软件开发工作我很担心自己做不了,于是就对一个同事说了,他很不以为然地对我讲“你只要有编程思想就可以了”,当时对这句话很不理解。后来在项目开发中,我渐渐就明白了这句话,我发现即使我没有学过VBC#,但是我能够完成分配给我的任务,虽然有时候也有语法不会,但是即查即用还是可以的。说了上面那么多,我想说的是测试也要有测试思想。以前没想过到底什么才是“思想”,到底怎样才有“思想”,我想这种思想应该是建立在系统学习知识的基础上的吧。所以我觉得最好要认认真真地看完一本测试方面的基础知识书籍。最近在看《软件测试》,这本书的内容比较适合我们这些才入测试行的人阅读,知识结构组织及解释系统而详细。书里有很多经典论断,记住了理解了,对测试工作很有帮助。

     

    2 学习做事要有计划

    这个道理不该是我现在才领悟出来的。因为首先这是很浅显得道理,而且是经常被强调的。可能是以前一直没有机会实践这个道理吧。以前都是项目组安排我们做什么,我们做好就可以了。但是这两个多星期的时间,项目组没有给我们安排任务,我们就闲了下来,我发现闲下来我很难受,因为总觉得像是没头的苍蝇不知道该干什么,有很多东西要学,却不知道该先学哪个。郁闷了一段时间后,我意识到这是我没计划好的原因。所以现在都是前一天晚上计划好第二天的事情,虽然作计划是件痛苦的事情,但是好处是显而易见的,现在受益中,每天感觉很充实,也感觉到了“每天进步一点点”,很满足。

     

    3 有时间多学点计算机相关知识

    曾经看到一句话,大概意思是,好的测试人员要能够对bug的发生原因进行分析,以协助开发人员共同解决bug。虽然项目组对我们从来都没有这方面的要求,但是我觉得分析bug的发生原因还是很有必要的。现在测试SPIF的过程中,对于发生的bug我很难用现在的知识水平来解释,以前做过一段时间的.NET WEB开发,就感觉.NETJava WEB开发有很大的区别。所以我想如果我要做好SPIF的功能测试,最好了解一下JavaTomcat Web开发方面的知识。

    现在大多数编程用的系统都是Windows系统,了解Windows系统内部原理应该也蛮好的。

    另外,有时候知识多了,就可以做到触类旁通,其实本来很多知识都是共同的。

     

     

    以下是这个星期看书的一些摘记:

     

    自动化应在所有测试用例根据完善的需求定义好之后,并在AUT的一个构建版本可交付之后进行。

     

    如果该项目将重复地被交付测试,而新的特征集将在多个测试间隔交付,且特征集很复杂,自动化测试可能会有很大益处。

     

    测试覆盖矩阵,一个轴线是需求,另一个显示已开发测试

     

    测试就是确定既被描述又被实现的程序行为的范围。

     

    功能性测试的基本观点是,任何程序都可以看作是将从输入定义域取值映射到输出值域的函数。

     

    功能性测试用例有两个显著的优点:

    1)  功能性测试与软件如何实现无关,所以如果实现发生变化,测试用例仍然有用

    2)  测试用例开发可以与实现并行进行,因此可压缩总的项目开发时间

     

    在缺点方面,功能性测试用例也常常会带来两个问题:

    1)  测试用例之间存在严重的冗余

    2)  有可能有未测试的软件漏洞

    功能性测试基于已描述的行为

    结构测试基于已编程实现行为

    功能性测试只利用规格说明标识测试用例,而结构性测试使用程序源代码作为测试用例标识的基础。

    如果所有已描述行为都没有被实现,则结构性测试永远也不会认识到这一点,反过来,如果程序实现了没有被描述的行为,功能性测试用例永远也不会揭示这一点。(病毒是这种未描述行为的很好的例子)

     

    前面提到,功能性测试常常会有冗余和漏洞两方面的问题,如果功能性测试结合结构性测试覆盖率指标执行,则这两个问题都会被发现并解决。

     

    SQA更注重减少开发过程中的错误做法,而测试更注重发现产品中的缺陷。

     

    自动化测试相关

    1 工具分类

    测试设计工具:测试设计工具为软件测试活动做计划。可以产生测试产物以驱动后续的测试活动。

    静态分析工具:用这些工具分析程序,而不用执行程序。审查(Inspection)和遍历(Walkthrough)

    动态分析工具:执行软件来对它进行测试。

    GUI测试驱动和捕获/回放工具

    GUI测试驱动和测试管理器

    负载和性能测试工具

  • 测试基础知识——边界值

    2007-11-14 14:07:14

    文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest

    一.方法简介
    1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
     

    2.与等价划分的区别
      1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
      2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

    3.边界值分析方法的考虑:
      长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
      使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

    4.常见的边界值
      1)对16-bit 的整数而言 32767 和 -32768 是边界
      2)屏幕上光标在最左上、最右下位置
      3)报表的第一行和最后一行
      4)数组元素的第一个和最后一个
      5)循环的第 0 次、第 1 次和倒数第 2 次、最后一次

    5.边界值分析
      1)边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。
        例:测试计算平方根的函数
            --输入:实数
            --输出:实数
            --规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。
           
      2)等价类划分:
        I.可以考虑作出如下划分:
          a、输入 (i)<0 和 (ii)>=0
          b、输出 (a)>=0 和 (b) Error
        II.测试用例有两个:
          a、输入4,输出2。对应于 (ii) 和 (a) 。
          b、输入-10,输出0和错误提示。对应于 (i) 和 (b) 。

      3)边界值分析:
        划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0。由此得到以下测试用例:
        a、输入 {最小负实数}
        b、输入 {绝对值很小的负数}
        c、输入 0
        d、输入 {绝对值很小的正数}
        e、输入 {最大正实数}
       
      4)通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、重量、大小、速度、方位、尺寸、空间等。
      5)相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、  最短/最长、 空/满等情况下。
      6)利用边界值作为测试数据

     
    边界值
    测试用例的设计思路
    字符
    起始-1个字符/结束+1个字符
    假设一个文本输入区域允许输入1个到255个 字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。
    数值
    最小值-1/最大值+1
    假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的 数值来作为边界条件。
    空间
    小于空余空间一点/大于满空间一点
    例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。


      7)内部边界值分析:
        在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。
        内部边界值条件主要有下面几种:
        a)数值的边界值检验:计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。

    范围或值
    位(bit)
    0 或 1
    字节(byte)
    0 ~ 255
    字(word)
    0~65535(单字)或 0~4294967295(双字)
    千(K)
    1024
    兆(M)
    1048576
    吉(G)
    1073741824

        b)字符的边界值检验:在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。下表中列出了一些常用字符对应的ASCII码值。

     

    字符
    ASCII码值
    字符
    ASCII码值
    空 (null)
    0
    A
    65
    空格 (space)
    32
    a
    97
    斜杠 ( / )
    47
    Z
    90
    0
    48
    z
    122
    冒号 ( : )
    58
    单引号 ( ‘ )
    96
    @
    64
     
     


        c)其它边界值检验
       
    6.基于边界值分析方法选择测试用例的原则
      1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
        例如,如果程序的规格说明中规定:"重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……"。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。
      2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
        比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
      3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
        例如,某程序的规格说明要求计算出"每月保险金扣除额为0至1165.25元",其测试用例可取0.00及1165.24、还可取一0.01及1165.26等。
        再如一程序属于情报检索系统,要求每次"最少显示1条、最多显示4条情报摘要",这时我们应考虑的测试用例包括1和4,还应包括0和5等。
      4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
      5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
      6)分析规格说明,找出其它可能的边界条件。

    二.实战演习
    1.现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,如右图所示,所有记录分为3组:

     

     


      ①标题:这一组只有一个记录,其内容为输出成绩报告的名字。
      ②试卷各题标准答案记录:每个记录均在第80个字符处标以数字"2"。该组的第一个记录的第1至第3个字符为题目编号(取值为1一999)。第10至第59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。该组的第2,第3……个记录相应为第51至第100,第101至第150,…题的答案。
      ③每个学生的答卷描述:该组中每个记录的第80个字符均为数字"3"。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10至第59字符列出的是甲所做的第1至第50题的答案。若试题数超过50,则第2,第3……纪录分别给出他的第51至第100,第101至第150……题的解答。然后是学生乙的答卷记录。
      ④学生人数不超过200,试题数不超过999。
      ⑤程序的输出有4个报告:
        a)按学号排列的成绩单,列出每个学生的成绩、名次。
        b)按学生成绩排序的成绩单。
        c)平均分数及标准偏差的报告。
        d)试题分析报告。按试题号排序,列出各题学生答对的百分比。
      解答:分别考虑输入条件和输出条件,以及边界条件。给出下表所示的输入条件及相应的测试用例。


      输出条件及相应的测试用例表。


     
    2.三角形问题的边界值分析测试用例
    在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。
     

    测试用例
    a
    b
    c
    预期输出
    Test1
    Test2
    Test3
    Test4
    Test5
    60
    60
    60
    50
    50
    60
    60
    60
    50
    50
    1
    2
    60
    99
    100
    等腰三角形
    等腰三角形
    等边三角形
    等腰三角形
    非三角形
    Test6
    Test7
    Test8
    Test9
    60
    60
    50
    50
    1
    2
    99
    100
    60
    60
    50
    50
    等腰三角形
    等腰三角形
    等腰三角形
    非三角形
    Test10
    Test11
    Test12
    Test13
    1
    2
    99
    100
    60
    60
    50
    50
    60
    60
    50
    50
    等腰三角形
    等腰三角形
    等腰三角形
    非三角形

     


      
     

    3.NextDate函数的边界值分析测试用例
    在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。

    测试用例
    mouth
    day
    year
    预期输出
    Test1
    Test2
    Test3
    Test4
    Test5
    Test6
    Test7
    6
    6
    6
    6
    6
    6
    6
    15
    15
    15
    15
    15
    15
    15
    1911
    1912
    1913
    1975
    2049
    2050
    2051
    1911.6.16
    1912.6.16
    1913.6.16
    1975.6.16
    2049.6.16
    2050.6.16
    2051.6.16
    Test8
    Test9
    Test10
    Test11
    Test12
    Test13
    6
    6
    6
    6
    6
    6
    -1
    1
    2
    30
    31
    32
    2001
    2001
    2001
    2001
    2001
    2001
    day超出[1…31]
    2001.6.2
    2001.6.3
    2001.7.1
    输入日期超界
    day超出[1…31]
    Test14
    Test15
    Test16
    Test17
    Test18
    Test19
    -1
    1
    2
    11
    12
    13
    15
    15
    15
    15
    15
    15
    2001
    2001
    2001
    2001
    2001
    2001
    Mouth超出[1…12]
    2001.1.16
    2001.2.16
    2001.11.16
    2001.12.16
    Mouth超出[1…12]

  • [20071112]日志

    2007-11-13 09:39:28

        项目组突然跟我们讲要在测试中引入自动化,小小开心了一把,因为一直这么手工测试不但人是觉得很累,而且确实很不利于以后的职业发展。

        对项目不是很了解,只知道是Java开发的Web应用程序,任务是找到适合于该项目的功能测试工具。一开始脑子里迸出来的就是QTP,虽说没有用过该工具,但是也查过一些工具的功能,稍微了解一点。但是今天我看了一点《软件测试自动化》这本书后却对引入哪种功能自动化测试工具更加迷茫了。

        现在大概知道要解决的问题是:1)项目哪些部分可以采用自动化测试工具? 2)什么时候使用自动化测试工具 3)采用什么样的自动化测试工具? 4)测试脚本怎么维护?

        对自动化一点都不了解的时候,感觉自动化测试是万能的,即觉得什么都是可以采用自动化的,呵呵,这种盲目的自动化崇拜现在想想还真是好笑,不过知识嘛,就是从不知道到知道~

        以下是看书时的一点摘录:

        1)任何自动化测试的最终目标都应当是与一套测试需求相对应的一套有计划的测试,这些需求反过来也能在自动化测试中体现出来。

        2)测试工作的中心是测试数据,而不是测试脚本。

        3)自动化测试框架的另一个可操作目标是让测试脚本的维护量减至最少。

        4)真正的功能测试需要测试工程师编写对AUT进行深度探查的数据。

        5)创建结构化的基于组件的测试脚本并让这些脚本与其所执行的数据相分离是创建有效软件测试自动化基础设施的唯一途径,这样可以达到最佳的测试精度并将测试维护减至最小。

        6)理解如何对测试结果进行验证与知道测试是什么同样重要。自动化测试验证也具有数据依赖性。作为最主要的验证方法,自动化测试经常将基准数据捕获并存储起来,稍后与回归测试中捕获的形同数据进行比较。

        7)什么类型能够自动化呢?包括:单元测试、集成测试、系统测试。系统测试进一步分类如下:安全测试、配置测试、负载测试。自动化回归测试贯穿于整个开发过程的单元测试、集成测试和系统测试,并使用最大和最小发布版本的系统产品分别测试。

       

                                                                    

  • 测试基础知识——白盒测试中的六种覆盖方法(转)

    2007-11-09 16:35:23

    摘要:白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

    白盒测试的概述

      由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。

      白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

      白盒的测试用例需要做到:

    ·保证一个模块中的所有独立路径至少 被使用一次
    ·对所有逻辑值均需测试 true 和 false
    ·在上下边界及可操作范围内运行所有循环
    ·检查内部数据结构以确保其有效性

      白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

      白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。

      白盒测试的实施步骤:

    1.测试计划阶段:根据需求说明书,制定测试进度。
    2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。
    3.测试执行阶段:输入测试用例,得到测试结果。
    4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

      白盒测试的方法:总体上分为静态方法和动态方法两大类。

      静态分析是一种不通过执行程序而进行测试的技术。静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

      动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后 , 对软件系统行为的分析。动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。

      白盒测试的优缺点

      1. 优点

    ·迫使测试人员去仔细思考软件的实现
    ·可以检测代码中的每条分支和路径
    ·揭示隐藏在代码中的错误
    ·对代码的测试比较彻底
    ·最优化

      2. 缺点

    ·昂贵
    ·无法检测代码中遗漏的路径和数据敏感性错误
    ·不验证规格的正确性

    六种覆盖方法

      首先为了下文的举例描述方便,这里先给出一张程序流程图。(本文以1995年软件设计师考试的一道考试题目为例,图中红色字母代表程序执行路径)。

      1、语句覆盖

      1)主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。

      2)用例设计:(如果此时将A路径上的语句1—〉T去掉,那么用例如下)

       X  Y  路径
     1  50  50  OBDE
     2  90  70  OBCE

      3)优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。

      4)缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。在本例中去掉了语句1—〉T去掉,那么就少了一条测试路径。在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。但是我们不能排除这种以外的分支不会被执行,而往往这种错误会经常出现。再如,在Do-While结构中,语句覆盖执行其中某一个条件分支。那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。

      2、判定覆盖

      1)主要特点:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。

      2)用例设计:

       X  Y  路径
     1  90  90  OAE
     2  50  50  OBDE
     3  90  70  OBCE

      3)优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

      4)缺点:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。

      3、条件覆盖

      1)主要特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。

      2)用例设计:

       X  Y  路径
     1  90  70 OBC
     2 40   OBD

      3)优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。

      4)缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

      4、判定/条件覆盖

      1)主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

      2)用例设计:

       X  Y  路径
     1  90  90  OAE
     2  50  50  OBDE
     3  90  70  OBCE
     4  70  90  OBCE

      3)优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。

      4)缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。

      5、组合覆盖

      1)主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。

      2)用例设计:

       X  Y  路径
     1  90  90  OAE
     2  90  70  OBCE
     3  90  30  OBDE
     4  70  90  OBCE
     5  30  90  OBDE
     6  70  70  OBDE
     7  50  50  OBDE

      3)优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响判定结果。

      4)缺点:线性地增加了测试用例的数量。

      6、路径覆盖

      1)主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。

      2)用例设计:

       X  Y  路径
     1  90  90  OAE
     2  50  50  OBDE
     3  90  70  OBCE
     4  70  90  OBCE

      3)优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。

      4)缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的,如:
      If  (!A)B++;
      If  (!A)D--;

      这两个语句实际只包括了2条执行路径,即A为真或假时候对B和D的处理,真或假不可能都存在,而路径覆盖测试则认为是包含了真与假的4条执行路径。这样不仅降低了测试效率,而且大量的测试结果的累积,也为排错带来麻烦。

    总结

      白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。

      那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。任何一个高效的测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。

  • 测试时代的一些测试工具简介

    2007-11-08 15:42:02

    1 WebChecker

        最大的特点是可以Check出页面的HTML代码中你想检查的部分

        适合检查HTML中各个标记、名称、属性等是否符合你公司的代码标准

        可以Check出各个页面的Title,以确认页面命名是否正确

        可以和WebPDT回归测试工具结合,自动产生WebPDT应用的参数文件,免除手工书写

        此测试工具可以自动记录你访问的页面地址,利用这些地址可以方便进行页面确认测试

        可以形成Web检查确认报告

    2 WebRunner

        WebRunner是Web软件测试的辅助工具,可以录制脚本、录制测试用例,回放测试脚本等。

    3 WebValidator Pro

        四种方式数据驱动测试

        边界值和超边界值测试

        查询测试(今天用了一下,似乎这个功能会出现运行时错误)

        测试用例驱动测试

        查看Web页面对象

    测试工具的功能简介来自开发者的csdn博客,开发者提供了这些测试工具,给我们的测试工作带来了极大的便利。

    今天大概用了一下这几个工具,工具开发者的思想是,完全自动化不可能,测试工具是辅助之用。

    几个工具的使用方式都很简单,但是由于用户文档的欠缺,使用法误解常常出现。而且在使用WebValidator Pro的查询测试时出现了一个运行时错误。不知道是我操作有误还是真的有错误。

    明天继续使用其他的测试工具。。

    4 WebPDT

        Web PDT适用于Web方面的冒烟测试、功能测试和回归测试,更加适用于频繁修改的Web系统的回归测试。

        Web PDT——Web Parameters-Driven Testing Tool,就是Web参数驱动测试工具。参数驱动测试工具的最大特点是不需要频繁的修改测试脚本(指一些商业测试工具中的测试脚本),而需要做的是仅仅修改一个参数文件,很容易的就可以驱动工具进行有计划的自动测试。

        由五个部分组成:参数编辑、测试用例编辑、错误类型编辑、测试配置、测试执行

261/212>

数据统计

  • 访问量: 18376
  • 日志数: 29
  • 建立时间: 2007-10-18
  • 更新时间: 2008-02-20

RSS订阅

Open Toolbar