第一篇:程序员协议
保密协议
甲方:
乙方:
鉴于乙方在甲方任职,并获得甲方支付的相应报酬,双方当事人就乙方在任职期间及离职以后保守甲方商业秘密的有关事项,签订下列条款共同遵守:
1.保密的内容和范围
(1)涉及乙方为甲方维护的所有的系统信息,包括甲方服务器和终端计算机上的数据。
(2)乙方在任职期间为公司编写的软件及软件原代码、软件版权属公司所有。
(3)甲方所有的技术资料、图纸和所有的财务资料及数据。
(4)甲方尚未付诸实施的经营战略、规划及生产经营数据。
(5)甲方销售方案、计划及客户资料。
(6)甲方其他认为需要保密的其他保密事项。
(7)凡以直接、间接、口头或书面等形式提供涉及保密内容的行为均属泄密。
2.双方的权利与义务、责任
(1)乙方应自觉维护甲方的利益,严格遵守甲方的保密规定。
(2)乙方不得向任何单位和个人泄露甲方的任何资料信息。
(3)乙方不得利用所掌握的商业秘密牟取私利。
(4)乙方在服务甲方期间,不得从事与其竞争的其他同类产品的合作。
(5)乙方必须按甲方的要求从事经营、生产项目和科研项目设计与开发,并将生产、经营、设计与开发成果、资料交甲方,甲方拥有所有权和处置权。
(6)乙方保证遵守甲方的保密规定,认真执行保密措施,如发现他人有侵犯甲方商业秘密、技术秘密的行为时,有义务和责任及时向甲方总经理或公司人事行政部报告。当乙方结束在甲方的工作时,及时将所有与甲方经营活动有关的文件、记录或材料交给甲方指定人员。
(7)双方解除或终止劳动合同后,乙方不得向第三方公开甲方所拥有的未被公众知悉的商业秘密。
3、双方承诺
(1)乙方了解并承认,甲方会将有具有商业价值的保密信息保存在由乙方维护的服务器上或终端计算机上,并且由于系统维护服务、数据备份服务等原因,乙方有可能在某些情况下访问这些服务器和终端计算机。
(2)乙方同意并承诺,未经甲方书面许可,乙方不得将相关保密信息,通过存储介质、网络等途径,传播至甲方不可控制区域。如有造成对甲方的损失,甲方有权通过法律途径向乙方追讨人民币30000元以上的经济赔偿。
4.此协议自签字之日起生效。
甲方(盖章):
甲代表人(签字):
年月日
乙方(签字及手印):身份证号:年月日
第二篇:中山市百姓贸易有限公司IT程序员保密协议
中山市百姓贸易有限公司
IT程序员保密协议
甲方:
乙方:中山市百姓贸易有限公司
鉴于甲方在乙方任职,将获得乙方支付的相应报酬,双方当事人就甲方在任职期间及离职以后保守乙方技术秘密和其他商业秘密的有关事项,订定下列条款共同遵守:
第三篇:IT程序员保密协议-湖南甲骨文生物医药有限公司
湖南甲骨文生物医药有限公司IT程序员保密协议
甲方:
乙方:湖南甲骨文生物医药有限公司
鉴于甲方在乙方任职,将获得乙方支付的相应报酬,双方当事人就甲方在任职期间及离职以后保守乙方技术秘密和其他商业秘密的有关事项,订定下列条款共同遵守:
1.需要保密的信息:
1.1本保密协议中所涉指的所有乙方提供给甲方注明为保密的信息资料,包括:计算机软件、数据、信息、协议、参考资料及功能界面、说明书都是保密信息。本保密协议提及的其他商业秘密,包括但不限于:客户名单、行销计划、采购资料、定价政策、财务资料、进货渠道,等等。
1.2双方确认,甲方在乙方任职期间,因履行职务或者主要是利用乙方的物质技术条件、业务信息等产生的发明创造、作品、计算机软件、技术秘密或其他商业秘密信息,有关的知识产权均属于乙方享有。
1.3乙方可以在其业务范围内充分自由地利用这些发明创造、作品、计算机软件、技术秘密或其他商业秘密信息,进行生产、经营或者向第三方转让。甲方应当依乙方的要求,提供一切必要的信息和采取一切必要的行动,包括申请、注册、登记等,协助乙方取得和行使有关的知识产权。
1.4上述发明创造、作品、计算机软件、技术秘密及其他商业秘密,有关的发明权、署名权(依照法律规定应由乙方署名的除外)等精神权利由作为发明人、创作人或开发者的甲方享有,乙方尊重甲方的精神权利并协助甲方行使这些权利。
1.5甲方在乙方任职期间所完成的、与乙方业务相关的发明创造、作品、计算机软件、技术秘密或其他商业秘密信息,甲方主张由其本人享有知识产权的,应当及时向乙方申明。经乙方核实,认为确属于非职务成果的,由甲方享有知识产权,乙方不得在未经甲方明确授权的前提下利用这些成果进行生产、经营,亦不得自行向第三方转让。
甲方没有申明的,推定其属于职务成果,乙方可以使用这些成果进行生产、经营或者向第三方转让。即使日后证明实际上是非职务成果的,甲方亦不得要求乙方承担任何经济责任。甲方申明后,乙方对成果的权属有异议的,可以通过协商解决;协商不成的,通过诉讼途径解决。
2.任职期间保密责任
2.1本协议中所称的任职期间,以甲方从乙方领取工资为标志,并以该项工资所代表的工作期间为任职期间。任职期间包括甲方在正常工作时间以外加班的时间,而无论加班场所是否在乙方工作场所内。
2.2甲方在乙方任职期间,必须遵守乙方规定的任何成文或不成文的保密规章、制度,履行与其工作岗位相应的保密职责。
乙方的保密规章、制度没有规定或者规定不明确之处,甲方亦应本着谨慎、诚实的态度,采取任何必要、合理的措施,维护其于任职期间知悉或者持有的任何属于乙方或者虽属于第三方但乙方承诺有保密义务的技术秘密或其他商业秘密信息,以保持其机密性。
2.3除了履行职务的需要之外,甲方承诺,未经乙方同意,不得以泄露、告知、公布、发布、出版、传授、转让或者其他任何方式使任何第三方(包括按照保密制度的规定不得知悉该项秘密的乙方其他职员)知悉属于乙方或者虽属于他人但乙方承诺有保密义务的技术秘密或其他商业秘密信息,也不得在履行职务之外使用这些秘密信息。
2.4甲方承诺,其在乙方任职期间,非经乙方事先同意,不在与乙方生产、经营同类产品或提供同类服务的其他企业、事业单位、社会团体内担任任何职务,包括股东、合伙人、董事、监事、经理、职员、代理人、顾问等等。
2.5为避免泄密,双方应遵守:
a. 甲方应采取尽可能的措施对所有来自乙方的信息严格保密,包括执行有效的安全措施和操作规程。
b. 甲方不可把秘密泄露给第三方,只允许把信息透露给甲方的管理级人员、签约者。
c. 甲方无权修改或移除本协议中的任何条款或版权注释。
3.离职后保密协议
3.1本协议中所称的离职,以任何一方明确表示解除或辞去聘用关系的时间为准。甲方拒绝领取工资且停止履行职务的行为,视为提出辞职。
3.2甲方应当于离职时,或者于乙方提出请求时,返还全部属于乙方的财物,包括记载着乙方秘密信息的一切载体。
3.3双方同意,甲方离职之后仍对其在乙方任职期间接触、知悉的属于乙方或者虽属于第三方但乙方承诺有保密义务的技术秘密和其他商业秘密信息,承担如同任职期间一样的保密义务和不擅自使用有关秘密信息的义务,而无论甲方因何种原因离职。
3.4甲方离职后承担保密义务的期限为下列第种(没有做出选择的,视为无限期保):(A)无限期保密,直至乙方宣布解密或者秘密信息实际上已经公开;(B)有限期保密,保密期限自离职之日起,计算到。
3.5乙方同意就甲方离职后承担的保密义务,向其支付保密费。保密费的支付方式为下列 第种:
(A)甲方离职时,一次性支付
元。
(B)甲方认可,乙方在支付甲方的工资报酬时,已考虑了甲方离职后需要承担的保密义务,故而无须在甲方离职时另外支付保密费。
4.法律约束及其它
4.1 本保密协议应按中华人民共和国相关适用法律管理和解释。签约双方均同意任何有关本保密协议的争议都无条件服从中华人民共和国北京市有管辖权的人民法庭的管辖。本协议不说明甲乙双方建立任何代理和合作关系。如建立代理和合作关系,需另行签定代理/合作伙伴协议。
4.2 本保密协议签定后立即生效,但对于以下情况签约双方都不负担责任:
a.乙方在正式书面通知之前发布的信息; b.非甲方错误导致的信息公开; c.在发布之前甲方已知道的信息;
d.在未使用保密信息的条件下甲方独立发现的信息; e.由乙方在对信息发布没有限制的情况下公开的信息。
4.3 本保密协议终止条件:
违反本协议规定,且在一方(前者)发现并通知另一方(后者)后,后者于三天内没有能够改正。
协议终止后,甲方得到的任何保密信息应立即返还给乙方,且甲方应向乙方提供全面的未授权的保密信息使用者的名单。
4.4若甲方违反上述承诺而导致乙方遭受第三方的侵仅指控时,甲方应当承担乙方为应诉而支付的一切费用;乙方因此而承担侵权赔偿责任的,有权向甲方追偿。上述应诉费用和侵权赔偿可以从甲方的工资报酬中扣除。
4.5甲方在履行职务时,按照乙方的明确要求或者为了完成乙方明确交付的具体工作任务必然导致侵犯他人知识产权的,若乙方遭受第三方的侵权指控,应诉费用和侵权赔偿不得由甲方承担或部分承担。
4.7本协议的任一条款如果被认定是无效的或不可实施的,该部分将从被认定时失效。同时甲乙双方应同意:
a.谈判确定尽可能接近原有条款含义的公平合理的新的条款; b.本协议其他条款仍然有效。
甲方:
乙方:湖南甲骨文生物医药有限公司 日期:
日期: 盖章:
盖章: 签字:
签字:
第四篇:程序员
程序员之死
程序员:举世至主,万元之源,众物所幕,神祗皆掌,岁能长立,箜有己出。弈中悲苦,是自了得!幸事祸事飘忽于其思想,晓如今,心思想,新纪元,心结缘,把话晾。
世间万物,出于思想,毁亦思想。而思想的源头正是程序员。
程序员在被选择作为程序员之前,只是一个程序,程序当然就是指程序员的衍生物,程序员就是本单位思想的创造者,他创造着每一个程序,而程序也有其思想,这思想当然是程序员写进去的,程序员就这样靠着周而复始的写程序来获得自己的永生,这或许也是一种宿命,他要一直写下这程序来完成前任程序员给予的使命,当然每个程序员都有着崇高的使命感,不然他们是做不了程序员的。
写程序固然是一种快乐,他可以随着自己的思想创造出一切自己所思自己所想的东西出来,任由思想在空寂游荡而有其始终。虽然这是一项每天创造新鲜的活,然程序员终有其果。于是,新纪元再次到来,当程序员写下足够的程序后,他有了新的选择,那就是退出自己的思想,把任务交给下一代的程序员来完成。在这之前,当然有件最主要的事需要做,那就是创造出一个新的程序员。如此,程序员将会将自己写进程序,为达此目的,他将用尽索想提前写好自己成为程序后的万物程序,保证新老程序员的顺利交接
程序员经过一直以来的坚苦努力,终于熬到了纪元期。忆当初,自己被选择做了这举世至主,纵是万元之源,然其中悲苦,是自了得!
我们都是别人写下的程序,然谁有能理解程序员之痛,程序员有着众物所幕的岁能长立,然生生死死,亦不曾快活。
第五篇:程序员
7.5.3系统测试和调试
1.系统测试的意义及目的系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。
测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试实例,并利用这些实例来运行程序,以便发现错误。信息系统测试应包括软件测试、硬件测试和网络测试。硬件测试、网络测试可以根据具体的性能指标来进行,此处所说的测试更多的是指软件测试。
系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析、系统设计和实施的最后复查。根据测试的概念和目的,在进行信息系统测试时应遵循以下基本原则:
·应尽早并不断地进行测试。测试不是在应用系统开发完之后才开始进行的。由于原始问题的复杂性、开发各阶段的多样性以及参加人员之间的协调等因素,使得在开发各个阶段都有可能出现的错误。因此,测试应贯穿在开发的各个阶段,尽早纠正错误,消除隐患。
·测试工作应该避免由原开发软件的人或小组承担,一方面,开发人员往往不愿否认自己的工作,总认为自己开发的软件没有错误;另一方面,开发人员的错误很难由本人测试出来,很容易根据自己编程的思路来制定测试思路,具有局限性。测试工作由专门人员来承担会更客观,更有效。
·设计测试方案的时候,不仅要确定输入数据,而且要根据系统功能确定预期输出结果。将实际输出结果与预期结果进行比较就能发现测试对象是否正确。
·在设计测试实例时,不仅要设计有效合理的输入条件,也要包含不合理、失效的输入条件。测试的时候,人们往往习惯按照合理的、正常的情况进行测试,而忽略了对异常、不合理、意想不到的情况进行测试,而这些可能就是隐患。
·在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该做的事。多余的工作会带来副作用,影响程序的效率,有时会带来潜在的危害或错误。
·严格按照测试计划来进行,避免测试的随意性。测试计划应包括测试内容、进度安排、人员安排、测试环境、测试工具和测试资料等。严格按照测试计划进行测试可以保证进度,使各方面都得以协调进行。
·妥善保存测试计划和测试例子,将其作为软件文档的组成部分,为维护提供方便。
·测试例子应是精心设计出来的,可以为重新测试或追加测试提供方便。当纠正错误、系统功能扩充后,都需要重新开始测试,而这些工作重复性很高,可以利用以前的测试例子,或在其基础上修改,然后进行测试。
2.测试过程
测试是开发过程中一个独立且非常重要的阶段,测试过程基本上与开发过程平行进行。
一个规范化的测试过程通常包括以下基本的测试活动。
(1)拟定测试计划。在制定测试计划时,要充分考虑整个项目的开发时间和开发进度以及一些人为因素和客观条件等,使得测试计划是可行的。测试计划的内容主要有:测试的内容、进度安排、测试所需的环境和条件、测试培训安排等。
(2)编制测试大纲。测试大纲是测试的依据。它明确详尽地规定了在测试中针对系统的每一项功能或特性所必须完成的基本测试项目和完成测试的标准。
(3)根据测试大纲设计和生成测试例子。在设计测试例子的时候,可综合利用前面介绍的测试例子和设计技术,产生测试设计说明文档,其内容主要有被测项目、输入数据、测试过程、预期输出结果等。
(4)实施测试。测试的实施阶段是由一系列的测试周期组成的。在每个测试周期中,测试人员和开发人员将依据预先编制好的测试大纲和准备好的测试例子,对被测软件或设备进行完整的测试。
(5)生成测试报告。测试完成后,要形成相应的测试报告,主要对测试进行概要说明,列出测试的结论,指出缺陷和错误。另外,给出一些建议,如可采用的修改方法,各项修改预计的工作量及修改的负责人员。
3.测试策略和测试方法
软件测试方法分人工测试和机器测试。
1)人工测试
人工测试指的是采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。经验表明,组织良好的人工测试可以发现程序中30%~70%的编码和逻辑设计错误。
人工测试又称为代码审查,其内容包括检查代码和设计是否一致,检查代码逻辑表达是否正确和完整,检查代码结构是否合理等。主要有3种方法。
·个人复查:指程序员本人对程序进行检查。由于心理上的原因和思维惯性的影响,对自己的错误一般不容易发现,对功能理解的错误更不可能纠正。因此,这种方法主要针对小规模程序,效率不高。
·抽查:通常由3~5人组成测试小组,测试人员应是没有参加该项目开发的有经验的程序设计人员。在抽查之前,应先阅读相关的软件资料和源程序,然后由测试
人员扮演计算机的角色,将一批有代表性的测试数据沿程序的逻辑走一遍,监视程序的执行情况。人工检测程序很慢,只能选择少量简单的例子。
·会审。测试人员的构成与抽查类似。在会审之前,测试人员应该充分阅读相关资料,比如系统分析说明书、系统设计说明书、源程序等。测试人员应尽可能多地列出典型错误。在会审时,由编程人员逐句讲解程序,测试人员逐个审查、提问。通过这种方式,往往可能使编程人员发现自己以前没有意识到的错误,使问题暴露=会审后,要将发现的问题登记、分析、归类。
·代码复审应该在被测软件编译成功之后。编译都不通过的软件,当然谈不上复审。在复审期间,应保证有足够的时间,让测试小组对问题进行充分的讨论,这样才能有效地提高测试效率,避免出错。
2)机器测试
机器测试是把设计好的测试例子作用于被测程序,比较测试结果和预期结果是否一致。如果不一致,就说明可能存在错误。机器测试只能发现错误的症状,无法对问题进行定位。
机器测试分为黑盒测试和白盒测试两种。
(1)黑盒测试也称为功能测试。将软件看成黑盒子,在完全不考虑软件内部结构和特性的情况下,测试软件的外部特性。进行黑盒测试主要是为了发现以下几类错误:
·是否有错误的功能或遗漏的功能?
·界面是否有误?输入是否正确接收?输出是否正确?
·是否有数据结构或外部数据库访问错误?
·性能是否能够接受?
·是否有初始化或终止性错误?
(2)白盒测试也称为结构测试。将软件看成透明的白盒。根据程序的内部结构和逻辑来设计测试例子,对程序的路径和过程进行测试,检查是否满足设计的要求。其原则是:
·程序模块中的所有独立路径至少执行一次。
·在所有的逻辑判断中,取“真”和取“假”的两种情况至少都要执行一次。·每个循环都应在边界条件和一般条件下各执行一次。
·测试程序内部数据结构的有效性等。
4.软件测试步骤
软件测试实际上可分成4步进行。
1)单元测试‘
单元测试也称为模块测试,在模块编写完成且无编译错误后就可以进行。如果选用机器测试,一般用白盒测试法,多个模块可以同时进行。
测试一个模块时需要编写一个驱动模块和若干个桩(stub)模块。驱动模块的功能是向被测试模块提供测试数据,驱动被测模块,并从被测模块中接收测试结果。桩模块的功能是模拟被测模块所调用的子模块,它接收被测模块的调用,检验调用参数,模拟被调用的子模块功能,把结果送回被测模块。
2)组装测试
组装测试也称为集成测试,就是把模块按系统设计说明书的要求组合起来进行测试。
即使所有模块都通过了测试,但在组装之后,仍可能会出现问题:穿过模块的数据被丢失;一个模块的功能对其他模块造成有害的影响;各个模块组装起来没有达到预期的功能;全局数据结构出现问题;另外,对于单个模块来说其误差可以接受,但模块组合后,可能会出现误差累积,最后到不能接受的程度,所以需要组装测试。
通常,组装测试有两种方法:一种是分别测试各个模块,再把这些模块组合起来进行整体测试,即非增量式集成;另一种是把下一个要测试的模块组合到已测试好的模块中,测试完后再将下一个需要测试的模块组合起来,进行测试,逐步把所有模块组合在一起,并完成测试,即增量式集成。非增量式集成可以对模块进行并行测试,能充分利用人力,并加快工程进度。但这种方法容易混乱,出现错误不容易查找和定位。增量式测试的范围逐步扩大,错误容易定位,而且已测试的模块可在新的条件下再测试,使测试更彻底。
3)确认测试
经过组装测试之后,软件就被集成起来,接口方面的问题已经解决,将进入软件测试的最后一个环节——确认测试。确认测试的任务就是进一步检查软件的功能和性能是否与用户要求的一致。系统方案说明书描述了用户对软件的要求,所以是软件有效性验证的标准,也是确认测试的基础。
确认测试,首先要进行有效性测试以及软件配置审查,然后进行验收测试和安装测试,经过管理部门的认可和专家鉴定后,软件即可交给用户使用。
4)系统测试
系统测试是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。系统测试是根据系统方案说明书来设计测试例子的,常见的系统测试主要有恢复测试、安全性测试、强度测试、性能测试、可靠性测试、安装测试。
5.调试’
调试的任务就是根据测试时发现的错误,找出原因和具体的位置,进行改正。调试工作主要由程序开发人员来进行,谁开发的程序就由谁来进行调试。
目前常用的调试方法有如下几种:
·试探法。调试人员分析错误的症状,猜测问题的所在位置,利用在程序中设置输出
语句,分析寄存器和存储器的内容等手段来获得错误的线索,一步步地试探和分析出错误所在。这种方法效率很低,适合于结构比较简单的程序。
·回溯法。调试人员从发现错误症状的位置开始,人工沿着程序的控制流程往回跟踪代码,直到找出错误根源为止。这种方法适合于小型程序,对于大规模程序,由于其需要回溯的路径太多而变得不可操作。
·对分查找法。这种方法主要用来缩小错误的范围,如果已经知道程序中的变量在若干位置的正确取值,可以在这些位置上给这些变量以正确值,观察程序运行的输出结果。如果没有发现问题,则说明从赋予变量一个正确值开始到输出结果之间的程序没有错,问题可能出在除此之外的程序中,否则错误就在所考察的这部分程序中,对含有错误的程序段再使用这种方法,直到把故障范围缩小到比较容易诊断为止。
·归纳法。归纳法就是从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假设的错误原因,用这些数据来证明或反驳,从而查出错误所在。
·演绎法。根据测试结果,列出所有可能的错误原因。分析已有的数据,排除不可能和彼此矛盾的原因。对余下的原因,选择可能性最大的,利用已有的数据完善该假设,使假设更具体。用假设来解释所有的原始测试结果,如果能解释这一切,则假设得以证实,也就找出了错误;否则,要么是假设不完备或不成立,要么有多个错误同时存在,需要重新分析,提出新的假设,直到发现错误为止。