搜一个给你参考一下:软件测试从零开始引言 几年前,从学校毕业后,第一份工作就是软件测试。那时候,国内的软件企业大多对软件测试还没有什么概念,书店里除了郑人杰编写的《计算机软件测试技术》之外,几乎没有其它的软件测试相关书籍,软件测试仅仅在软件工程的教材中作为一个章节列出来,因此,我对软件测试一无所知。不过,在正式走上工作岗位之前,公司提供了为期两周的系统的软件测试技术专题培训,对接下来的软件测试工作有很大的指导意义。现在,我继续从事软件测试的培训与咨询服务,在这个过程中,亲眼目睹了很多软件测试新手面对的困惑,他们初涉软件测试行业,没有接受系统的培训,对软件测试一无所知,既不知道该测试什么,也不知道如何开始测试。下面针对上述情况,给出若干解决办法。 • 测试准备工作 在测试工作伊始,软件测试工程师应该搞清楚软件测试工作的目的是什么。如果你把这个问题提给项目经理,他往往会这样回答: “ 发现我们产品里面的所有 BUG ,这就是你的工作目的 ” 。作为一名软件测试新手,如何才能发现所有的 BUG ?如何开始测试工作?即便面对的是一个很小的软件项目,测试需要考虑的问题也是方方面面的,包括硬件环境、操作系统、产品的软件配置环境、产品相关的业务流程、用户的并发容量等等。该从何处下手呢?• 向有经验的测试人员学习 如果你进入的是一家运作规范的软件公司,有独立的软件测试部门、规范的软件测试流程、软件测试技术有一定的积累,那么,恭喜你!你可以请求测试经理委派有经验的测试人员作为你工作上的业务导师,由他列出软件测试技术相关书籍目录、软件测试流程相关文档目录、产品业务相关的文档目录,在业务导师的指导下逐步熟悉软件测试的相关工作。其实,在很多运作规范的软件公司,已经把上述的师父带徒弟的方式固化到流程中。 如果你进入的是一个软件测试一片空白的软件企业,那么,也恭喜你!你可以在这里开创一片自己的软件测试事业,当然,前提是老板确实认识到软件测试的重要性,实实在在需要提高产品的质量。这时候,可以到国内的软件测试论坛和相关网站上寻找软件测试资源,这种情况下,自学能力和对技术的悟性就至关重要了。 • 阅读软件测试的相关书籍 现在,中文版的软件测试书籍越来越多,有的是国人自己写的,有的是翻译国外经典之作。可以到 或者 等网络购书的站点查找软件测试相关的书籍。目前,从国外引入的软件测试书籍有很多经典之作,但是,翻译成中文后,翻译质量对阅读效果有很大的影响。 • 走读缺陷跟踪库中的问题报告单 如果您所在的公司已经有软件缺陷跟踪库了,无论采用的是商用工具,如 ClearQuest 、 TestDirecter 等工具,还是采用的 Bugzilla 、 Mantis 等开源工具,这都无关紧要,缺陷跟踪库中的缺陷报告单才是有价值的。缺陷跟踪库中的问题报告单是软件测试工程师工作绩效的集中体现,同时也是软件产品问题的集中体现。一般来说,缺陷报告单中最关键的几个部分包括:第一部分是发现缺陷的环境,包括软件环境、硬件环境等;第二部分是缺陷的基本描述;第三部分是开发人员对缺陷的解决方法。通过对上述缺陷报告单的三个部分作仔细分析,不知不觉你已经吸收了其他软件测试人员的工作经验,并掌握了软件产品常见的基本问题。这是迅速提高软件测试经验的好方法。 • 走读相关产品的历史测试用例 如果你所在的公司有测试用例管理系统,那么,走读相关产品的软件测试用例是迅速提高测试用例设计水平的一条捷径。走读测试用例也是有技巧的。测试用例写作一般会包括测试用例项和根据测试用例项细化的测试用例,下面举例说明。 “ 测试用户登录的功能 ” 是一个测试项,该测试项的目的是测试用户登录功能是否正确,是否能够完成正常的登录功能,是否能够对非法用户名和密码做异常处理等等。因此,根据该用例项,可以设计出若干个测试用例,大多数情况下,测试用例项和测试用例是一对多的关系。 通过走读测试用例项目,你可以掌握应该从哪些功能点着手未来的测试工作;通过走读软件测试用例,你可以了解如何根据被测试的功能点开展软件测试用例的设计工作,包括如何确定测试用例的输入、测试用例的操作步骤和测试用例的输出结果等。 总之,走读其他软件测试人员设计的优秀软件测试用例,是提高自身用例设计水平的好方法。 • 学习产品相关的业务知识 软件测试人员不仅要掌握软件测试技术相关知识,对产品相关的业务知识也要学习。这很好理解,如果从事财务软件的测试工作,一定要学习财务知识;如果从事通讯产品测试工作,那么相关的通讯理论知识也是必须的;如果从事银行软件的测试,银行的业务流程也是不可或缺的知识点。 因此,在学习软件测试技术的同时,千万不要忽略产品相关业务知识的学习。如果你是一个软件测试技术专家,但是对产品业务知识一无所知,那么也只能测试出来纯粹的软件缺陷,而面对眼前出现的产品业务相关的缺陷,很可能是视而不见,如此这般,软件测试的效果会大打折扣。 • 识别测试需求 识别测试需求是软件测试的第一步。如果开发人员能够提供完整的需求文档和接口文档,那固然好。可以根据需求文档中描述的每个功能项目的输入、处理过程和输出,来设计测试用例。如果开发人员没有提供软件需求文档,那该如何是好?下面给出几个有效的方法: • 主动获取需求 开发人员通常不会更好地考虑软件测试,如果没有开发流程的强制规定,他们通常是不愿意提供任何开发文档,即便有强制规定,需求文档也未必能够真正指导软件系统测试工作。因此,需要测试人员发挥主观能动性,与相关的软件开发项目经理和软件开发人员保持沟通,了解软件实现的主要功能是什么,并记录得收集到的信息。一般来说,开发人员即便没有提供相关需求文档,也会保存一些简单的过程文档,主动向开发人员索要这些文档,可以作为测试的参考。此外,可以与公司的技术支持人员交流,技术支持人员是最贴近用户的人,因此,通过交流可以获取第一手的用户使用感受,在测试的过程中会更加贴近用户。 当拿到相关的资料后,从哪些方面分析需求?如何与开发人员交流需求?其实,只要把握需求分析的几个关键的点就可以解决问题:输入、处理过程、输出、性能要求、运行环境,下面针对每一个项目逐一分析: 软件输入: 与该需求相关的一切可能输入,可以从这几方面考虑,输入来源、输入参数的数量、输入参数的度量单位、输入参数的时间要求、输入参数的精度和输入参数的有效输入范围。在测试用例设计中,这部分内容作为测试用例输入的依据。 处理过程: 描述对输入数据所执行的所有操作和如何获得输出的过程。测试人员了解处理过程即可,在测试过程中发现 BUG 时候,如果对处理过程了解的深入,对定位问题根源有很大的帮助。 软件输出: 描述每个需求的输出结果,包括输出的位置(如计算机显示器、打印机,文件),输出参数的数量、输出参数的度量单位、输出参数的时序、输出参数精确度、输出参数的有效输出范围、错误消息。在测试用例设计中,这部分内容作为测试用例的预期输出。 性能要求: 与该需求相关的性能要求,比如 “ 插入 ATM 取款卡后, 3 秒钟内弹出提示用户取款的图形界面 ” 。 3 秒钟这一限制,就是对需求的基本性能要求。 运行环境: 软件的运行所需的环境,包括硬件平台的要求、操作系统的要求、数据库的要求,以及其它相关支撑软件的要求。 • 确认需求的优先级 确认需求的优先级是很必要的,如果在产品进度比较紧的情况下,测试人员可以考虑优先测试优先级高的需求项,如果进度允许,那么在测试优先级低的需求项,如果进度不允许,那么就放弃测试优先级低的需求项。如果软件公司有规范的流程支撑,开发人员在提供软件需求文档的时候,应该在文档中确定需求的优先级。但是,如果开发人员连基本的软件需求文档都没有提供,又怎能指望他们确定软件需求的优先级?如果是这样,需求的优先级只能由测试人员完成了。 • 加入开发小组的邮件群组 测试人员需要通晓被测试产品,但是,产品在开发的过程中往往是不断变化的。如果软件开发团队有一套变更控制流程,测试人员会对产品的变更了如指掌。如果没有变更控制,那就要采用其他的土方法了。如果公司里面有自动化办公系统,也许采用的是 Lotus Notes 系统,也许使用的是 E-mail 系统,测试人员应该加入到开发人员的邮件群组中。当开发人员通过邮件讨论问题、通知召开技术会议的时候,测试人员可以及时知晓,如果必要,可以参加开发人员的技术会议。即便公司里面有了软件变更控制流程,加入到开发邮件群组也是一个很好的习惯。 • 与开发人员为邻 建议测试人员与开发人员为邻。我所在的测试组曾经与开发组是在相邻的写字间里,开发人员与测试人员的关系非常融洽,抛去同事关系,大家还是不错的朋友。不管开发人员有什么样的活动,测试人员都能第一时间获得信息。无论从事软件测试工作,还是从事其它的工作,与工作中上下游环节的同事保持良好的个人关系对工作有很大便利。一般的公司内部都存在部门墙,良好的人际关系是打通部门墙的手段之一。向领导建议测试人员与开发人员为邻,这很必要。 • 测试用例设计 测试需求收集完毕后,开始测试设计。测试用例是什么?测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。设计测试用例需要考虑以下问题: • 重用同类型项目的测试用例 如果我看得远,那是因为我站在巨人的肩上 --牛顿。 一般来说,每个软件公司的项目可以分为固定的几大类。可以按业务类型划分,比如 ERP 软件、产品数据管理软件、通信软件、地理信息系统软件等等;可以按软件结构来划分,比如 B/S 架构的软件、 C/S 架构的软件、嵌入式软件等等。参考同类别软件的测试用例,会有很大的借鉴意义。如果,公司中有同类别的软件系统,千万别忘记把相关的测试用例拿来参考。如果,系统非常接近,甚至经过对测试用例简单修改就可以应用到当前被测试的软件。 “ 拿来主义 ” 可以极大的开阔测试用例设计思路,也可以节省大量的测试用例设计时间。 • 测试用例执行 测试用例设计完毕后,接下来的工作是测试执行,测试执行中应该注意以下几个问题: • 搭建软件测试环境,执行测试用例 测试用例执行过程中,搭建测试环境是第一步。一般来说,软件产品提交测试后,开发人员应该提交一份产品安装指导书,在指导书中详细指明软件产品运行的软硬件环境,比如要求操作系统系统是 Windows 2000 pack4 版本,数据库是 Sql Server 2000 等等,此外,应该给出被测试软件产品的详细安装指导书,包括安装的操作步骤、相关配置文件的配置方法等等。对于复杂的软件产品,尤其是软件项目,如果没有安装指导书作为参考,在搭建测试环境过程中会遇到种种问题。 如果开发人员拒绝提供相关的安装指导书,搭建测试中遇到问题的时候,测试人员可以要求开发人员协助,这时候,一定要把开发人员解决问题的方法记录下来,避免同样的问题再次请教开发人员,这样会招致开发人员的反感,也降低了开发人员对测试人员的认可程度。 • 测试执行过程应注意的问题 测试环境搭建之后,根据定义的测试用例执行顺序,逐个执行测试用例。在测试执行中需要注意以下几个问题: 全方位的观察测试用例执行结果: 测试执行过程中,当测试的实际输出结果与测试用例中的预期输出结果一致的时候,是否可以认为测试用例执行成功了?答案是否定的,即便实际测试结果与测试的预期结果一致,也要查看软件产品的操作日志、系统运行日志和系统资源使用情况,来判断测试用例是否执行成功了。全方位观察软件产品的输出可以发现很多隐蔽的问题。以前,我在测试嵌入式系统软件的时候,执行某测试用例后,测试用例的实际输出与预期输出完全一致,不过在查询 CPU 占用率地时候,发现 CPU 占用率高达 90 %,后来经过分析,软件运行的时候启动了若干个 1ms 的定时器,大量的消耗的 CPU 资源,后来通过把定时器调整到 10ms , CPU 的占用率降为 7 %。如果观察点单一,这个严重消耗资源的问题就无从发现了。 加强测试过程记录: 测试执行过程中,一定要加强测试过程记录。如果测试执行步骤与测试用例中描述的有差异,一定要记录下来,作为日后更新测试用例的依据;如果软件产品提供了日志功能,比如有软件运行日志、用户操作日志,一定在每个测试用例执行后记录相关的日志文件,作为测试过程记录,一旦日后发现问题,开发人员可以通过这些测试记录方便的定位问题。而不用测试人员重新搭建测试环境,为开发人员重现问题。 及时确认发现的问题: 测试执行过程中,如果确认发现了软件的缺陷,那么可以毫不犹豫的提交问题报告单。如果发现了可疑问题,又无法定位是否为软件缺陷,那么一定要保留现场,然后知会相关开发人员到现场定位问题。如果开发人员在短时间内可以确认是否为软件缺陷,测试人员给予配合;如果开发人员定位问题需要花费很长的时间,测试人员千万不要因此耽误自己宝贵的测试执行时间,可以让开发人员记录重新问题的测试环境配置,然后,回到自己的开发环境上重现问题,继续定位问题。 与开发人员良好的沟通: 测试执行过程中,当你提交了问题报告单,可能被开发人员无情驳回,拒绝修改。这时候,只能对开发人员晓之以理,做到有理、有据,有说服力。首先,要定义软件缺陷的标准原则,这个原则应该是开发人员和测试人员都认可的,如果没有共同认可的原则,那么开发人员与测试人员对问题的争执就不可避免了。此外,测试人员打算说服开发人员之前,考虑是否能够先说服自己,在保证可以说服自己的前提下,再开始与开发人员交流。 • 及时更新测试用例 测试执行过程中,应该注意及时更新测试用例。往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;往往也会发现有些测试用例在具体的执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代,那么删除冗余的测试用例。 总之,测试执行的过程中及时地更新测试用例是很好的习惯。不要打算在测试执行结束后,统一更新测试用例,如果这样,往往会遗漏很多本应该更新的测试用例。 • 提交一份优秀的问题报告单 软件测试提交的问题报告单和测试日报一样,都是软件测试人员的工作输出,是测试人员绩效的集中体现。因此,提交一份优秀的问题报告单是很重要的。软件测试报告单最关键的域就是 “ 问题描述 ” ,这是开发人员重现问题,定位问题的依据。问题描述应该包括以下几部分内容:软件配置、硬件配置、测试用例输入、操作步骤、输出、当时输出设备的相关输出信息和相关的日志等。 软件配置: 包括操作系统类型版本和补丁版本、当前被测试软件的版本和补丁版本、相关支撑软件,比如数据库软件的版本和补丁版本等。 硬件配置: 计算机的配置情况,主要包括 CPU 、内存和硬盘的相关参数,其它硬件参数根据测试用例的实际情况添加。如果测试中使用网络,那么网络的组网情况,网络的容量、流量等情况。硬件配置情况与被测试产品类型密切相关,需要根据当时的情况,准确翔实的记录硬件配置情况。 测试用例输入 \ 操作步骤 \ 输出: 这部分内容可以根据测试用例的描述和测试用例的实际执行情况如实填写。 输出设备的相关输出信息: 输出设备包括计算机显示器、打印机、磁带等等输出设备,如果是显示器可以采用抓屏的方式获取当时的截图,其他的输出设备可以采用其它方法获取相关的输出,在问题报告单中提供描述。 日志信息: 规范的软件产品都会提供软件的运行日志和用户、管理员的操作日志,测试人员应该把测试用例执行后的软件产品运行日志和操作日志作为附件,提交到问题报告单中。根据被测试软件产品的不同,需要在 “ 问题描述 ” 中增加相应的描述内容,这需要具体问题具体分析。测试结果分析软件测试执行结束后,测试活动还没有结束。测试结果分析是必不可少的重要环节, “ 编筐编篓,全在收口 ” ,测试结果的分析对下一轮测试工作的开展有很大的借鉴意义。前面的 “ 测试准备工作 ” 中,建议测试人员走读缺陷跟踪库,查阅其他测试人员发现的软件缺陷。测试结束后,也应该分析自己发现的软件缺陷,对发现的缺陷分类,你会发现自己提交的问题只有固定的几个类别;然后,再把一起完成测试执行工作的其他测试人员发现的问题也汇总起来,你会发现,你所提交问题的类别与他们有差异。这很正常,人的思维是有局限性,在测试的过程中,每个测试人员都有自己思考问题的盲区和测试执行的盲区,有效的自我分析和分析其他测试人员,你会发现自己的盲区,有针对性的分析盲区,必定会在下一轮测试用避免盲区。总结:限于文章的篇幅,本文不可能给出一个类似于 checklist 的指导性的软件测试新手入门。无论从事软件测试还是从事其它的工作,技术上的和技巧上的问题都可以通过查询相关的软件测试技术书籍获取,掌握一套基本的方法论是最重要的。以上文字,都是作者从事软件测试工作积累的经验之谈,如发现谬误之处请不吝指出。
我也要开题了,可是不知论文开题写什么
去领测国际问问吧 他们挺专业的
如何写好测试计划,测试用例,测试策略;如果进行自动化测试,功能测试,性能测试;如何通过测试提高软件质量;某某项目测试如何开展等等可细化到某一方向,任选一个,也可全流程覆盖
软件测试的论坛和网站还是不少的。可以去51testing看看
整整翻译了半小时...累死哥了,下次abstract写简单点吧,我英语专业,毕业论文都没写这么累。anyway,hope this can help youabstractWith the progress of software development technology, various soft wares came to our life. Meanwhile, the quality issue has become the top concern. Unqualified software can’t make profit. Instead, it will bring enormous loss. Therefore, quality assurance is essential for software, and software testing is the most important and feasible way to evaluate the quality. Based on the black box testing on vibration status monitoring system, the researcher put forward pertinent and feasible testing case by equivalence partitioning analysis, boundary value analysis, context-inserting analysis, and contradictory demonstration analysis. Large amount of functional verification tests were conducted to the module and software, which can verify the consistency with required design document and specific statement. Moreover, the reliability and usability was tested by press trial, security testing, module testing and scenario testing. Ultimately, exploratory testing that based on defect of software is conducted to some important module, which is prevalent word: software testing; testing case; black box testing
本科论文还是硕士论文? 我估计是本科论文可能性比较大,硕士论文作这个就太那个了。测试的目标说白了,不过是确认产品功能是否正确,进一步还可以确认性能等。1、论文首先得讲你做了什么,开宗明义2、背景,这里就是你测试的产品,大体介绍一下,就是copy,注明出处3、这里需要根据产品的需求文档,逐一列出需要测试的各个功能,注明出处4、对各个功能一一设计测试用例,这个需要自己来写,对应的代码工作是编写测试的子程序(如果需要)5、确认对各个功能测试的结果,做了哪些测试,测试正确性如何,产品质量如何6、总结7、致谢8、原创性说明就这些了,一般的院校都会有自己的格式要求,但大多数不会差得太多,照着套就行了,呵呵
随着现代技术的高速发展,计算机联锁系统逐步取代电气联锁系统,如何保证计算机联锁 系统安全 可靠、长期稳定的运行并维护和及时处理好发生的故障。下面是我给大家推荐的计算机联锁 毕业 论文,希望大家喜欢!计算机联锁毕业论文篇一 试谈计算机联锁系统常见故障及处理 方法 【摘要】计算机联锁系统是铁路行车安全技术的保障系统,保证系统安全可靠、长期稳定的运行队运输生产具有重要意义。本文从计算机单元故障、通讯线路故障、切换故障、电源保障四个方面介绍了常见故障及其处理方法。 【关键词】计算机联锁;故障;处理方法 随着现代铁路的高速发展,计算机联锁系统逐步取代电气联锁系统,如何保证计算机联锁系统安全可靠、长期稳定的运行并维护和及时处理好发生的故障,对于铁路运输、行车安全具有重要作用。本文从维护的角度,对计算机联锁维护故障处理及维护工作提出几点参考意见,并对计算机联锁设备的故障类型与处理原则,常见故障及处理,以及具体计算机单元故障、通讯线路故障、切换故障、 电源故障 等方面分别进行了介绍。 1.计算机联锁设备故障处理的步骤 接到计算机联锁设备故障通知后,切忌盲目动设备。 首先应掌握故障现象、影响范围、对车务影响程度、分析联锁关系、排除车务错误操作的可能。 接着查看机房联锁机、控制台( 显示器 )、控显机(上位机)的运行状态,联锁机采集板、驱动板信息位指示灯状态是否正常,初步掌握信息,再决定如何处理,并将情况及时报段调度和车间。 再根据故障现象初步分析故障发生部位,区分室内故障还是室外故障,区分联锁机、控显机故障还是继电部分故障,不能马上区分时,简单故障如道岔扳不动、红光带等可跳开上述步骤,同普通故障一样处理,可通过借助控制台电流表、轨道测试盘、微机监测等设备进行判断处理。 2.计算机联锁设备的故障类型与处理原则 故障类型 计算机联锁系统的故障按性质,可分为硬件故障和软件故障。根据硬件故障发生的时间特征,可分为永久性故障#间歇性故障和瞬时故障。永久性硬件故障一旦发生即永久存在,故障排除前,故障设备不能恢复正常运行。永久性硬件故障通常由于元器件失效,连接线断线或短接等引起。 间歇性故障是重复发生,未经排除能自动消灭的故障现象,通常是由于元器件性能变化,接插件接触不良,焊点虚接等引起。瞬时故障通常是由于外界干扰因素引起的偶发性事件。软件故障是由于软件设计中存在的缺陷,在特定站场条件和特殊操作组合情况下,缺陷被暴露出来而引起的故障。 处理原则 对于永久性故障和间歇性故障处理,首先用备用设备替换故障设备,令故障设备退出运行,使系统恢复正常,然后对故障现象进行分析,对故障设备进行检查,找出故障原因,通过更换电路板或排除故障点加以解决。对于很难在短时间内找出发生的原因,应首先进行系统复位,恢复系统运行,然后对发生的故障前后的环境条件、信号设备状况、控制台操作情况做周密的调查和详细的记录,并结合历次处理故障发生时的记录,从中找出有规律性的条件因素。要注意对机房温度、电源情况、接地状态、天气情况等环境方面的情况进行分析,改善环境条件,防止故障发生。现场运行的软件,通常以固化的方式存储,不给现场人员提供查看和修改程序的方法和手段,软件的维护由设计单位终身负责。在计算机中执行的目标程序代码,可读性极差,又有严密的逻辑性,一条指令或一个代码错误就有可能靠造成系统的崩溃。因此不得不采取严格的保护 措施 。软件缺陷未经排除将永远存在,在相同的条件下可以再现故障,从重复发生的现象中找出规律性的因素,提供给设计单位,由设计单位改进软件设计,排除程序中的错误。 3.常见故障与处理方法 计算机联锁系统是由多台微机组成的分布式系统。每台微机由多个电路板构成,各微机之间通过网络互联,进行信息交换。系统响应第一个操作和完成第一项控制功能,都需要许多部件参与工作,因此一项功能的失败,可能由系统中的不同部件的多种不同原因引起。不同部件的故障,对系统功能的影响范围不同,而系统在同一时间发生的1个以上多重故障的概率极小。确定故障部位后,应首先采取主备系统切换的措施,尽快恢复系统运行,减少对运输的影响,然后对有故障的部分停机检修,排除故障。下面是常见的故障及处理方法。 计算机单元故障及处理方法 (1)联锁机:STD板故障,具体表现为STD 层运行灯停止闪烁,接受灯、中断灯灭,采集层、驱动层指示灯停闪、故障表示为CPU板故障。 处理方法:更换CPU板;STD层中断2灯灭,运行闪灯,但接发灯闪烁有一些灭灯,根据灭灯的位置,更换STD-01板(与监控机通信和联锁机通讯)。BJ-A0 板故障,STD运行灯、中断灯、报警灯均不闪烁,采集工作灯正常。处理方法:更换BJ板或紧固插座人。 (2)监控机:PC-01网卡故障,其联锁机STD层第1组接发灯闪烁不对,其他灯正常,并有“以联锁要通讯中断”的提示;以太网卡出现故障时提示为监控机与维修机通信中断,VGA显卡有故障时,显示屏无显示或者图形有缺陷。 处理方法:更换PC-01网卡则恢复正常,需要更换显卡或插接不牢。 通讯线路故障及处理方法 总线插头松动或插接不良,联锁机无法与监控机通信。而LS插头松动或插接不良,联锁机的工作机与备机不能同步。 处理方法:检查插头是否松动,只有完全接触良好,在按联机按钮主可同步。 切换故障及处理方法 联锁机零层切换板故障时,切换校核报错,某一监控机与联锁机通信中断,排除上述故障,控制台监视器和数字化仪切换板故障,会导致控制台显示屏和数字化仪不能正常随着监控机的切换而切换到工作中的监控机上,也可造成显示屏上无任何显示。 处理方法:此时排除外界电源因素的影响,则需要更换切换板,排除故障。 电源故障及处理方法 动态稳压电源故障,其故障会导致所有动态继电器的驱动失效,不能驱动室外设备。计算机电源故障,UPS电源,STD电源、采集电源、驱动电源及监控机电源出现故障后,其所带的负载均无法开启。 处理方法:检查输入电源工作情况,输出电源工作情况如果都正常,需要根据故障的点更换电源板件,恢复故障现象。 4.结束语 无论故障原因和故障现象如何变化,作为一名合格的联锁系统维护工作者,只要平时在工作中认真 总结 自己在工作中遇到的故障现象,坚持不断地学习,熟悉设备工作性能,才能准确判断出故障处所,维护好计算机联锁系统,保证铁路运输安全及设备的正常运营。 计算机联锁毕业论文篇二 试论计算机联锁系统的改造工程 摘要:铁路运输的安全性也就越来越凸显出其重要性,原有的铁路计算机信号联锁装置已无法适应现在形式的发展,需要对计算机联锁系统进行有效的改造。本文首先分析了铁路信号计算机联锁系统的性能要求,其次,介绍了计算机联锁系统设备布置及机房条件。同时,以一工程实例为例,就计算机联锁系统的改造进行了深入的探讨,提出了自己的建议和看法,具有一定的参考价值。 关键词:计算机;联锁系统;改造工程 一、前言 随着我国铁路运输的快速发展,我国的铁路里程已经位居世界之首,与此同时,也正在朝着高速、重载、高密的方向不断地发展,由此,铁路运输的安全性也就越来越凸显出其重要性,原有的铁路计算机信号联锁装置已无法适应现在形式的发展,需要对计算机联锁系统进行有效的改造。 二、铁路信号计算机联锁系统的性能要求分析 随着计算机联锁系统的优点越来越显现,过去曾经被广泛应用的继电联锁系统已经远远比不上计算机联锁系统的综合性能,所以可以毫无疑问地说,铁路信号朝着计算机联锁系统方向发展已经是一个必然的趋势,铁路信号计算机联锁系统的性能要求主要有以下一些方面,包括:高性价比、安全性、可靠性、适时性、可维护性等。 (一)实时性要求 计算机联锁系统必须及时输出关于信号和道岔之类的控制命令,通过对于输入变量的变化情况进行采集,来将车站各类表示信息及时刷新,并且以一种较为安全的形式来输出。 (二)经济性 计算机联锁系统的一个重要原因就是其经济性,这也是其能够将继电联锁系统进行取代的原因。计算机联锁系统在建筑、调试、设计、施工、制作等费用上都能够有效地降低成本。 (三)结构模块化与标准化 由于各个铁路站场有大有小,其各自的作业需求和规模都是不尽相同的,所以,在计算机联锁系统的软件和硬件中都必须具有模块化的结构特征,能够实现有效分离数据、真正实现程序化。 (四)功能扩展 在过去所使用的继电联锁系统中,一般来说,都只可以给用户提供基本的操作界面和联锁功能,除此之外,就没有其他的后续功能,而计算机联锁系统则不然,除了具有以上一些特点之外,还具有远程通信、故障分析、故障诊断、故障重演及其他管理功能。 三、计算机联锁系统设备布置及机房条件 本系统微机设备安装在三个19英寸的标准机柜内。三个机柜分别为联锁机柜A、联锁机柜B、监控机柜。 机柜尺寸:长×宽×高=600×750×1800mm。占用机房面积不小于15平米。室内设防静电地板。门窗防尘。设空调,夏季室内温度不超过25℃为宜。运转室内设行车控制台和图形显示器。机械室内安装继电器组合架和电源屏。机械室和运转室的环境条件与继电联锁的机械室和运转室条件相同。 本系统微机设备使用交流220V电源。电压值220V±10%。总容量不超过2KVA。由信号电源屏单独引出一路电源供给。采用两台 UPS,大站采用 UPS。由一台工作供给全部设备用电,另一台备用。经过电源控制箱的控制,两台UPS可以自动切换或人工切换。也可以不经过UPS直接供电。 输入和输出接口使用直流24V电源。电压范围24V±10%。由信号电源屏输出的直流24V电源供给。采用动态板时需另配一路动态板局部电源,电压为30V。 本系统要求为微机系统单独设置一根地线,接地电阻要求小于4欧姆。埋设地点与 其它 地线间距不小于20米。此地线上不得搭接其他设备。 四、计算机联锁系统的改造 (一)工程概况 将2002年津霸线上的意大利ANsALD0计算机联锁系统更换为北方交通大学的JD-I A型 计算机联锁系统。室外设备不动,室内组合架设备利旧改造,计算机及其I/O接口部分由旧设备更换为新设备。 (二)施工调查 在正式进行改造施工之前,务必应该掌握好原有的计算机联锁系统中旧设备的使用状况,掌握好旧设备的工作原理,做到将实物和图纸相互结合、相互对应;对于那些容易引起行车事故、容易出现问题的旧设备在施工工程中采取有效的防护措施;这样做的目的在于避免出现突发故障。 (三)施工 计算机联锁系统的改造施工主要包括两个部分,分别是开通当天施工和开通前施工。 (1)不能直接对旧系统计算机设备进行施工,这是因为有多个继电器固定在计算机设备上,在没有将其拆除之前都是在运转使用中的。所以,正是由于考虑到了这一点,在这次计算机联锁系统的改造工程中特意新加设了一个接口柜。新接口柜上引入空余接点及复示继电器的接点,而继电器正在使用的那些旧接点不要去动它们。 (2)有效地装配继电器线圈的连线,主要是计算机联锁驱动到接口柜的连线。因为在开通前,这些继电器都是处于运行工作状态,为了避免出现混线的问题,所以这部分接线不可以直接与线圈相连,只可以暂时配至到侧面端子。 (3)由于过去所采用的JD-IA型计算机联锁系统中,方向电路与系统结合的电路较为复杂,需要改造的地方也是很多,所以我们在整个的改造过程中,我们暂时不使用,封闭了方向电路与系统结合的电路 (4)对于计算机防雷柜到接口柜之间的所有电缆都进行提前施工,主要包括公共回线电缆、驱动电缆、采集电缆。 (5)需要提前做好与微机监测相关的各种配线,就近增加防护单元和隔离传感器。微机监测所能够涉及到的监测内容包括有:主灯丝断丝报警电路、电码化电流、电缆绝缘、电码化电压、接收电压/区间移频发送、道岔电流、轨道电压、电源屏输出/输入电压等。 (6)做好计算机联锁系统中设备保护地线和防雷地线的整个施工,这是因为计算机通信和采样之类的设备都是属于高频设备,这些高频设备很容易就会产生出较强的感应电压,如果不加以控制,后果不堪设想。人身防护地线必须采用铜板制作,尺寸为1500mm×l000mm×l0mm,引出线的截面不能够与其他设备地线同槽、同沟、面积不能小于40平方厘米,对地电阻不得大于4欧。而防雷地线与人身防护地线相比,危险度相对要小些,所以可以采用普通石墨地线,在施工过程中,为了避开其他设备,可以采用PVC管来防护防雷地线,对地电阻不得大于8Q。 (7)完善新增电源环线的施工。这些新增电源主要是指计算机联锁系统中新增复示继电器柜和接口柜中的KF、KZ电源,需要“点”施工。而对于复示继电器组合柜而言,需要对外部配线进行“点”施工,对于内部配线可以采取提前施工的方法。 (8)在完成好前面的七个施工步骤之后,就可以在开通的过程中,及时地将继电器配线进行更换,注意是计算机驱动中的。这样做的目的在于最大程度上有效地减少改造对运用的影响。 (四)改造过程中引入计算机联锁教学培训系统 在实际中,我们经常会发现,在计算机联锁设备开通使用后,电务维护人员对计算机联锁设备不熟悉,造成的维护不到位,故障后延时时间长,影响行车;车务操作人员由于对计算机联锁设备部熟悉操作不当,发生不应该影响行车的事情而影响行车,给铁路运输带来严重干扰,对铁路运输安全构成严重威胁。为了避免再次出现这个问题,在改造过程中我们引入计算机联锁教学培训系统。此教学培训系统能够模拟现场计算机联锁设备,实现了计算机联锁设备操作一致、计算机网络一致、计算机软件一致。通过使用该教学培训系统对电务、车务人员进行技术培训,能够大大提高现场维护人员和使用人员的技术水平。 计算机联锁教学培训系统的应用对电务、车务人员学习、熟悉计算机联锁设备及操作手续,分析、查找计算机联锁设备故障方面有着重要意义,有效地防止和减少了因使用人员对设备及操作功能不熟悉,而发生的故障延时。电务部门可以利用该教学培训系统对不明原因的故障进行分析,防止类似信号故障的重复发生,为减少计算机联锁设备故障起到积极的预防作用,从整体上提高了铁路设备的安全运用水平,提高了电务维修人员和车站值班人员的整体业务水平,保证了铁路运输安全,有良好的经济、社会效益和推广应用前景。 (五)改造后的使用效果 改造后的计算机联锁系统采用具有高可靠性的工业控制微机,运用网络通信技术构成多机分布式控制系统。联锁子系统采用动态冗余的双机热备结构,具有故障自动切换和人工切换功能,满足系统高可用性要求。联锁软件采用双份编码,模块化和结构化设计。程序设计标准化。安全输出采用动态驱动方式。表示信息输入采用动态编码方式,满足故障导向安全要求。控显子系统采用双机热备结构,采用控显机转换箱进行人工切换,满足系统高可用性要求。人机界面具有多种可选的操作方法和表示方式。操作方法可选按钮盘、数字化仪或鼠标。站场表示设备可选图形显示器(CRT)或光带表示盘。系统具有完善的自检测和故障诊断功能,并可提供远程监视,为设备维护提供有力的技术支持。系统具有与其它信息系统联网交换信息的能力。 参考文献: [1]王永信.车站信号自动控制[M].北京:中国铁道出版社,2002 [2]中国铁路通信信号总公司.铁路工程施工技术手册:信号[M].北京:中国铁道出版社,1996 [3]孟令韬.计算机联锁信息管理系统[D].铁道部科学研究院,2000 [4]祝庚.铁路信号计算机联锁系统的故障模型建立及故障诊断方法的研究[D].合肥工业大学,2003 [5]唐田田.计算机联锁系统软件可靠性设计方法的应用研究[D].合肥工业大学,2004 [6]王峰.铁路车站计算机联锁系统若干技术的探讨[D].南京工业大学,2005 [7]李谦,魏臻,陆阳.企业铁路调度集中底层通信协议研究[A].2008全国第十三届自动化应用技术学术交流会论文集[C].2008 计算机联锁毕业论文篇三 试谈计算机联锁软件测试方法 摘 要: 安全是铁路运输生产永恒的主题,联锁软件是保障铁路车站列车或机车作业安全的关键软件,而高效、充分的测试对于保证其安全性具有举足轻重的作用。 文章 描述了被测联锁系统的体系结构以及自动测试系统的设计,采用白盒法和黑盒法来完成对计算机联锁软件的结构测试和功能测试,并给出结构测试实例和黑盒测试框图。 关键词: 软件测试; 白盒法; 黑盒法 1、联锁软件自动测试方法 1. 1 联锁软件基本结构 本文所研究的内容主要针 对联 锁运算层进路控制模块( 见图 1) . 该模块的主要功能有: 1) 进路的建立; 2) 选排一致检查; 3) 进路锁闭; 4) 信号开放; 5) 信号保持开放; 6) 进路正常解锁; 7) 进路非正常解锁; 8) 道岔单操. 1. 2 联锁软件的白盒测试 白盒测试作为结构的测试方法,白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。采用这一测试方法,测试者可以看到被测试的源程序,可分析程序的内部构造并且根据内部构造设计测试用例。白盒测试全面了解程序内部逻辑结构、对所有逻辑路径进行测试,它是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。 它的主要优点是: ①能够对程序内部特定部位进行覆盖测试; ②能发现以下类型的错误:程序内部控制结构不正确、程序内部数据结构不正确。 白盒测试的主要缺点是: ①只着眼于程序内部结构,对于在软件需求规格 说明书 中已有明确规定,但在软件实现时被遗漏的功能,无法检查出来; ②无法检验程序的外部特性。 白盒测试检测程序中的每条路径是否都按预定结果正确运行. 本文以进路建立中的进路搜索流程为例, 加以说明. 1. 2. 1 测试用例设计 正常退出路径为 AB - DG, 异常退出路径为 ABCEH. 其他三种路径均为中间结果. 因此, 在测试用例设计中, 覆盖这 5 条路径, 并监督输入参数、 中间结果及输出结果即可. 1. 3 联锁软件的黑盒测试 黑盒测试通常用作功能测试,,数据驱动测试或基于规格说明的测试。用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造。在完全不考虑程序内部结构和内部特性的情况下,测试者只知道该程序输入和输出之间的关系或是程序的功能符合一定的函数关系。它必须依靠能够反映这一关系和程序功能的需求规格说明书考虑确定测试用例,并且推断测试结果的正确性,即所依据的只能是程序的外部特性。黑盒测试方法能够站在用户立场上进行测试,容易发现以下类型的错误:功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止错误等。 但黑盒测试方法有如下主要缺点:①依赖软件需求规格说明书的正确性。但我们并不能保证软件需求规格说明书是完全正确的。比如,在软件需求规格说明书中规定了多余的功能,或是漏掉了某些功能,这对于黑盒测试来说是完全无能为力的。②无法测试程序内部特定部位。 联锁软件黑盒自动测试框图如图 4 所示. 在该系统中, 被测的联锁软件在自身的宿主环境中运行, 整个被测系统通过网络接口接入到测试平台. 测试平台则是由测试软件系统和车站信号设备仿真系统组成. 测试软件系统由测试用例数据库运行结果记录数据库, 分析判断模块和网络通信模块组成, 参见图 5. 工作原理: 1) 根据指定的车站信号平面图( 数据文件) , 自动生成测试命令队列. 2) 由测试用例数据库向被测联锁软件输出模拟操作命令, 同时送运行结果记录数据库记录. 运行结果记录数据库还要接受被测联锁软件的输出驱动命令及车站信号设备仿真系统的状态信息后, 由分析判断模块根据预存结果与输入结果对比分析, 若一致, 则输出下一条模拟操作命令, 若不一致, 则由分析判断模块根据故障现象设计新的模拟测试命令, 重新测试. 若 3 次都存在故障, 则分析判断模块不再设计新的测试命令, 而是回到原来的测试命令队列中, 继续执行. 所有比较一致的结果会从运行结果记录数据库中删除, 而不一致的结果会被记录. 3) 设置设备状态模块能对指定信号设备注入故障, 模拟各种不正常的状态变迁, 已达到故障条件下的安全性测试目的. 2、联锁软件的安全性测试 联锁软件在正常输入条件下不仅能完成联锁软件应该完成的联锁控制功能, 其中还包含着基本的安全性需求. 1) 计算机联锁的软件系统必须达到软件制式检测要求的可靠性和安全性. 2) 计算机联锁软件的安全性完善度等级宜划分为 4 级, 由高至低依次为 4~ 1 级. 等级的划分等同于 EN50128 ( 铁路控制和防护系统软件) 和EN50129( 铁路安全电子系统) 的规定. 3、结论 软件测试的目的在于尽可能多的找出错误. 但这就涉及到如何合理的设计测试用例. 本系统在白盒测试中采用路径覆盖法, 在黑盒测试中采用了等价类划分法, 基对应有效数据的有效等价类和对应无效数据的无效等价类. 在安全性测试中采用了FTA 技术. 只有对软件进行了充分的、 合理的测试后, 才有可能使联锁软件达到更高的可靠性和安全性, 真正的服务于社会. 猜你喜欢: 1. 计算机应用毕业论文范本 2. 浅谈计算机联锁系统的论文 3. 铁路信号计算机联锁毕业论文 4. 车站计算机联锁论文
PaperFree为用户人性化完美实现了“免费论文检测—在线实时改重—全面再次论文检测—顺利通过论文检测“的整个全过程。“在线改重”功能实现了一边修改论文,一边论文查重,改哪里检测那里;按实际修改句子收费,不改的内容不收费;
目前免费论文查重软件比较多,近几年比较火paper系列为主的查重网站,但是各个查重软件的免费力度不同,有送千字、万字、一篇等,但真正意义上的免费查重软件当属学术不端查重网站,大学生版(专/本科毕业论文定稿)、研究生版(硕博毕业论文定稿)、期刊职称版(期刊投稿,职称评审)以上版本均可免费查重不限篇数。
一、如何选择查论文的软件-安全性。在选择查论文的软件时,首先要考虑其安全性。现在有很多查重软件打着免费的旗号窃取论文,所以在选择论文检测软件时一定要考虑它的安全性,以免自己的论文被别人窃取。最好选择知名度高、用户多、评价好的软件。这样的论文查重软件一般都很安全。二、如何选择查论文的软件-准确性。除了安全,其次要考虑的是软件的准确性。如果论文检测软件检测结果准确率低,没有参考价值,自检时查重率会达到学校或机构规定的标准,但最终没有通过学校查重。综上所述,不难看出,在选择查重论文的软件时,必须考虑其安全性和准确性。此外,我们还需要根据个人的实际需要和预算选择合适的软件。如果你是大学生,建议选择Paperfree论文查重软件。数据库不仅包含大量文献,而且更新速度快,操作过程简单方便。检测报告还将详细标记论文中涉嫌抄袭或错误的部分,同时保证论文的安全性和检测结果的准确性。
论文查重制度安全性怎么样?在评价论文查重系统好坏时,既要考虑这个查重系统对不对,也要考虑这个查重系统是不是安全。大部分同学都是利用论文查重系统提前在网上进行初稿检测的,对于论文查重系统是否安全、论文是否外泄等问题,很多同学都比较担心。推荐同学们使用cnkitime学术不端论文查重免费网站,大学生版(专/本科毕业论文定稿)、研究生版(硕博毕业论文定稿)、期刊职称版(期刊投稿,职称评审)以上版本均可免费查重不限篇数。
现在市面上的查重系统五花八门,而正规的查重系统对于论文上传的安全性尤其重视。一般的论文查重系统对论文严格保密,确保我们的论文不外泄,比如cnkitime,不管我们是在官方渠道还是在其他渠道,或者是在学校进行论文查重检测。论文查重系统选择不正规可能会导致论文外泄,而论文外泄又有可能导致大家毕业不了。
查重系统,一般学校都会用到,而且必须安全可靠。毕竟,检测出来的结果都是经过保密处理的毕业生使用的论文查重系统,往往只有个别指导老师和学生才能看出来。因为普通学校都是个人设定密码。论文提交学校查重不通过的,重复部分按报告重新修改,重新修改后提交查重,查重通过后可进行下次毕业答辩,若未通过,学校对毕业生毕业时间有延迟的可能。学生如果论文不过关,有可能导致毕业延迟。
搜一个给你参考一下:软件测试从零开始引言 几年前,从学校毕业后,第一份工作就是软件测试。那时候,国内的软件企业大多对软件测试还没有什么概念,书店里除了郑人杰编写的《计算机软件测试技术》之外,几乎没有其它的软件测试相关书籍,软件测试仅仅在软件工程的教材中作为一个章节列出来,因此,我对软件测试一无所知。不过,在正式走上工作岗位之前,公司提供了为期两周的系统的软件测试技术专题培训,对接下来的软件测试工作有很大的指导意义。现在,我继续从事软件测试的培训与咨询服务,在这个过程中,亲眼目睹了很多软件测试新手面对的困惑,他们初涉软件测试行业,没有接受系统的培训,对软件测试一无所知,既不知道该测试什么,也不知道如何开始测试。下面针对上述情况,给出若干解决办法。 • 测试准备工作 在测试工作伊始,软件测试工程师应该搞清楚软件测试工作的目的是什么。如果你把这个问题提给项目经理,他往往会这样回答: “ 发现我们产品里面的所有 BUG ,这就是你的工作目的 ” 。作为一名软件测试新手,如何才能发现所有的 BUG ?如何开始测试工作?即便面对的是一个很小的软件项目,测试需要考虑的问题也是方方面面的,包括硬件环境、操作系统、产品的软件配置环境、产品相关的业务流程、用户的并发容量等等。该从何处下手呢?• 向有经验的测试人员学习 如果你进入的是一家运作规范的软件公司,有独立的软件测试部门、规范的软件测试流程、软件测试技术有一定的积累,那么,恭喜你!你可以请求测试经理委派有经验的测试人员作为你工作上的业务导师,由他列出软件测试技术相关书籍目录、软件测试流程相关文档目录、产品业务相关的文档目录,在业务导师的指导下逐步熟悉软件测试的相关工作。其实,在很多运作规范的软件公司,已经把上述的师父带徒弟的方式固化到流程中。 如果你进入的是一个软件测试一片空白的软件企业,那么,也恭喜你!你可以在这里开创一片自己的软件测试事业,当然,前提是老板确实认识到软件测试的重要性,实实在在需要提高产品的质量。这时候,可以到国内的软件测试论坛和相关网站上寻找软件测试资源,这种情况下,自学能力和对技术的悟性就至关重要了。 • 阅读软件测试的相关书籍 现在,中文版的软件测试书籍越来越多,有的是国人自己写的,有的是翻译国外经典之作。可以到 或者 等网络购书的站点查找软件测试相关的书籍。目前,从国外引入的软件测试书籍有很多经典之作,但是,翻译成中文后,翻译质量对阅读效果有很大的影响。 • 走读缺陷跟踪库中的问题报告单 如果您所在的公司已经有软件缺陷跟踪库了,无论采用的是商用工具,如 ClearQuest 、 TestDirecter 等工具,还是采用的 Bugzilla 、 Mantis 等开源工具,这都无关紧要,缺陷跟踪库中的缺陷报告单才是有价值的。缺陷跟踪库中的问题报告单是软件测试工程师工作绩效的集中体现,同时也是软件产品问题的集中体现。一般来说,缺陷报告单中最关键的几个部分包括:第一部分是发现缺陷的环境,包括软件环境、硬件环境等;第二部分是缺陷的基本描述;第三部分是开发人员对缺陷的解决方法。通过对上述缺陷报告单的三个部分作仔细分析,不知不觉你已经吸收了其他软件测试人员的工作经验,并掌握了软件产品常见的基本问题。这是迅速提高软件测试经验的好方法。 • 走读相关产品的历史测试用例 如果你所在的公司有测试用例管理系统,那么,走读相关产品的软件测试用例是迅速提高测试用例设计水平的一条捷径。走读测试用例也是有技巧的。测试用例写作一般会包括测试用例项和根据测试用例项细化的测试用例,下面举例说明。 “ 测试用户登录的功能 ” 是一个测试项,该测试项的目的是测试用户登录功能是否正确,是否能够完成正常的登录功能,是否能够对非法用户名和密码做异常处理等等。因此,根据该用例项,可以设计出若干个测试用例,大多数情况下,测试用例项和测试用例是一对多的关系。 通过走读测试用例项目,你可以掌握应该从哪些功能点着手未来的测试工作;通过走读软件测试用例,你可以了解如何根据被测试的功能点开展软件测试用例的设计工作,包括如何确定测试用例的输入、测试用例的操作步骤和测试用例的输出结果等。 总之,走读其他软件测试人员设计的优秀软件测试用例,是提高自身用例设计水平的好方法。 • 学习产品相关的业务知识 软件测试人员不仅要掌握软件测试技术相关知识,对产品相关的业务知识也要学习。这很好理解,如果从事财务软件的测试工作,一定要学习财务知识;如果从事通讯产品测试工作,那么相关的通讯理论知识也是必须的;如果从事银行软件的测试,银行的业务流程也是不可或缺的知识点。 因此,在学习软件测试技术的同时,千万不要忽略产品相关业务知识的学习。如果你是一个软件测试技术专家,但是对产品业务知识一无所知,那么也只能测试出来纯粹的软件缺陷,而面对眼前出现的产品业务相关的缺陷,很可能是视而不见,如此这般,软件测试的效果会大打折扣。 • 识别测试需求 识别测试需求是软件测试的第一步。如果开发人员能够提供完整的需求文档和接口文档,那固然好。可以根据需求文档中描述的每个功能项目的输入、处理过程和输出,来设计测试用例。如果开发人员没有提供软件需求文档,那该如何是好?下面给出几个有效的方法: • 主动获取需求 开发人员通常不会更好地考虑软件测试,如果没有开发流程的强制规定,他们通常是不愿意提供任何开发文档,即便有强制规定,需求文档也未必能够真正指导软件系统测试工作。因此,需要测试人员发挥主观能动性,与相关的软件开发项目经理和软件开发人员保持沟通,了解软件实现的主要功能是什么,并记录得收集到的信息。一般来说,开发人员即便没有提供相关需求文档,也会保存一些简单的过程文档,主动向开发人员索要这些文档,可以作为测试的参考。此外,可以与公司的技术支持人员交流,技术支持人员是最贴近用户的人,因此,通过交流可以获取第一手的用户使用感受,在测试的过程中会更加贴近用户。 当拿到相关的资料后,从哪些方面分析需求?如何与开发人员交流需求?其实,只要把握需求分析的几个关键的点就可以解决问题:输入、处理过程、输出、性能要求、运行环境,下面针对每一个项目逐一分析: 软件输入: 与该需求相关的一切可能输入,可以从这几方面考虑,输入来源、输入参数的数量、输入参数的度量单位、输入参数的时间要求、输入参数的精度和输入参数的有效输入范围。在测试用例设计中,这部分内容作为测试用例输入的依据。 处理过程: 描述对输入数据所执行的所有操作和如何获得输出的过程。测试人员了解处理过程即可,在测试过程中发现 BUG 时候,如果对处理过程了解的深入,对定位问题根源有很大的帮助。 软件输出: 描述每个需求的输出结果,包括输出的位置(如计算机显示器、打印机,文件),输出参数的数量、输出参数的度量单位、输出参数的时序、输出参数精确度、输出参数的有效输出范围、错误消息。在测试用例设计中,这部分内容作为测试用例的预期输出。 性能要求: 与该需求相关的性能要求,比如 “ 插入 ATM 取款卡后, 3 秒钟内弹出提示用户取款的图形界面 ” 。 3 秒钟这一限制,就是对需求的基本性能要求。 运行环境: 软件的运行所需的环境,包括硬件平台的要求、操作系统的要求、数据库的要求,以及其它相关支撑软件的要求。 • 确认需求的优先级 确认需求的优先级是很必要的,如果在产品进度比较紧的情况下,测试人员可以考虑优先测试优先级高的需求项,如果进度允许,那么在测试优先级低的需求项,如果进度不允许,那么就放弃测试优先级低的需求项。如果软件公司有规范的流程支撑,开发人员在提供软件需求文档的时候,应该在文档中确定需求的优先级。但是,如果开发人员连基本的软件需求文档都没有提供,又怎能指望他们确定软件需求的优先级?如果是这样,需求的优先级只能由测试人员完成了。 • 加入开发小组的邮件群组 测试人员需要通晓被测试产品,但是,产品在开发的过程中往往是不断变化的。如果软件开发团队有一套变更控制流程,测试人员会对产品的变更了如指掌。如果没有变更控制,那就要采用其他的土方法了。如果公司里面有自动化办公系统,也许采用的是 Lotus Notes 系统,也许使用的是 E-mail 系统,测试人员应该加入到开发人员的邮件群组中。当开发人员通过邮件讨论问题、通知召开技术会议的时候,测试人员可以及时知晓,如果必要,可以参加开发人员的技术会议。即便公司里面有了软件变更控制流程,加入到开发邮件群组也是一个很好的习惯。 • 与开发人员为邻 建议测试人员与开发人员为邻。我所在的测试组曾经与开发组是在相邻的写字间里,开发人员与测试人员的关系非常融洽,抛去同事关系,大家还是不错的朋友。不管开发人员有什么样的活动,测试人员都能第一时间获得信息。无论从事软件测试工作,还是从事其它的工作,与工作中上下游环节的同事保持良好的个人关系对工作有很大便利。一般的公司内部都存在部门墙,良好的人际关系是打通部门墙的手段之一。向领导建议测试人员与开发人员为邻,这很必要。 • 测试用例设计 测试需求收集完毕后,开始测试设计。测试用例是什么?测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。设计测试用例需要考虑以下问题: • 重用同类型项目的测试用例 如果我看得远,那是因为我站在巨人的肩上 --牛顿。 一般来说,每个软件公司的项目可以分为固定的几大类。可以按业务类型划分,比如 ERP 软件、产品数据管理软件、通信软件、地理信息系统软件等等;可以按软件结构来划分,比如 B/S 架构的软件、 C/S 架构的软件、嵌入式软件等等。参考同类别软件的测试用例,会有很大的借鉴意义。如果,公司中有同类别的软件系统,千万别忘记把相关的测试用例拿来参考。如果,系统非常接近,甚至经过对测试用例简单修改就可以应用到当前被测试的软件。 “ 拿来主义 ” 可以极大的开阔测试用例设计思路,也可以节省大量的测试用例设计时间。 • 测试用例执行 测试用例设计完毕后,接下来的工作是测试执行,测试执行中应该注意以下几个问题: • 搭建软件测试环境,执行测试用例 测试用例执行过程中,搭建测试环境是第一步。一般来说,软件产品提交测试后,开发人员应该提交一份产品安装指导书,在指导书中详细指明软件产品运行的软硬件环境,比如要求操作系统系统是 Windows 2000 pack4 版本,数据库是 Sql Server 2000 等等,此外,应该给出被测试软件产品的详细安装指导书,包括安装的操作步骤、相关配置文件的配置方法等等。对于复杂的软件产品,尤其是软件项目,如果没有安装指导书作为参考,在搭建测试环境过程中会遇到种种问题。 如果开发人员拒绝提供相关的安装指导书,搭建测试中遇到问题的时候,测试人员可以要求开发人员协助,这时候,一定要把开发人员解决问题的方法记录下来,避免同样的问题再次请教开发人员,这样会招致开发人员的反感,也降低了开发人员对测试人员的认可程度。 • 测试执行过程应注意的问题 测试环境搭建之后,根据定义的测试用例执行顺序,逐个执行测试用例。在测试执行中需要注意以下几个问题: 全方位的观察测试用例执行结果: 测试执行过程中,当测试的实际输出结果与测试用例中的预期输出结果一致的时候,是否可以认为测试用例执行成功了?答案是否定的,即便实际测试结果与测试的预期结果一致,也要查看软件产品的操作日志、系统运行日志和系统资源使用情况,来判断测试用例是否执行成功了。全方位观察软件产品的输出可以发现很多隐蔽的问题。以前,我在测试嵌入式系统软件的时候,执行某测试用例后,测试用例的实际输出与预期输出完全一致,不过在查询 CPU 占用率地时候,发现 CPU 占用率高达 90 %,后来经过分析,软件运行的时候启动了若干个 1ms 的定时器,大量的消耗的 CPU 资源,后来通过把定时器调整到 10ms , CPU 的占用率降为 7 %。如果观察点单一,这个严重消耗资源的问题就无从发现了。 加强测试过程记录: 测试执行过程中,一定要加强测试过程记录。如果测试执行步骤与测试用例中描述的有差异,一定要记录下来,作为日后更新测试用例的依据;如果软件产品提供了日志功能,比如有软件运行日志、用户操作日志,一定在每个测试用例执行后记录相关的日志文件,作为测试过程记录,一旦日后发现问题,开发人员可以通过这些测试记录方便的定位问题。而不用测试人员重新搭建测试环境,为开发人员重现问题。 及时确认发现的问题: 测试执行过程中,如果确认发现了软件的缺陷,那么可以毫不犹豫的提交问题报告单。如果发现了可疑问题,又无法定位是否为软件缺陷,那么一定要保留现场,然后知会相关开发人员到现场定位问题。如果开发人员在短时间内可以确认是否为软件缺陷,测试人员给予配合;如果开发人员定位问题需要花费很长的时间,测试人员千万不要因此耽误自己宝贵的测试执行时间,可以让开发人员记录重新问题的测试环境配置,然后,回到自己的开发环境上重现问题,继续定位问题。 与开发人员良好的沟通: 测试执行过程中,当你提交了问题报告单,可能被开发人员无情驳回,拒绝修改。这时候,只能对开发人员晓之以理,做到有理、有据,有说服力。首先,要定义软件缺陷的标准原则,这个原则应该是开发人员和测试人员都认可的,如果没有共同认可的原则,那么开发人员与测试人员对问题的争执就不可避免了。此外,测试人员打算说服开发人员之前,考虑是否能够先说服自己,在保证可以说服自己的前提下,再开始与开发人员交流。 • 及时更新测试用例 测试执行过程中,应该注意及时更新测试用例。往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;往往也会发现有些测试用例在具体的执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代,那么删除冗余的测试用例。 总之,测试执行的过程中及时地更新测试用例是很好的习惯。不要打算在测试执行结束后,统一更新测试用例,如果这样,往往会遗漏很多本应该更新的测试用例。 • 提交一份优秀的问题报告单 软件测试提交的问题报告单和测试日报一样,都是软件测试人员的工作输出,是测试人员绩效的集中体现。因此,提交一份优秀的问题报告单是很重要的。软件测试报告单最关键的域就是 “ 问题描述 ” ,这是开发人员重现问题,定位问题的依据。问题描述应该包括以下几部分内容:软件配置、硬件配置、测试用例输入、操作步骤、输出、当时输出设备的相关输出信息和相关的日志等。 软件配置: 包括操作系统类型版本和补丁版本、当前被测试软件的版本和补丁版本、相关支撑软件,比如数据库软件的版本和补丁版本等。 硬件配置: 计算机的配置情况,主要包括 CPU 、内存和硬盘的相关参数,其它硬件参数根据测试用例的实际情况添加。如果测试中使用网络,那么网络的组网情况,网络的容量、流量等情况。硬件配置情况与被测试产品类型密切相关,需要根据当时的情况,准确翔实的记录硬件配置情况。 测试用例输入 \ 操作步骤 \ 输出: 这部分内容可以根据测试用例的描述和测试用例的实际执行情况如实填写。 输出设备的相关输出信息: 输出设备包括计算机显示器、打印机、磁带等等输出设备,如果是显示器可以采用抓屏的方式获取当时的截图,其他的输出设备可以采用其它方法获取相关的输出,在问题报告单中提供描述。 日志信息: 规范的软件产品都会提供软件的运行日志和用户、管理员的操作日志,测试人员应该把测试用例执行后的软件产品运行日志和操作日志作为附件,提交到问题报告单中。根据被测试软件产品的不同,需要在 “ 问题描述 ” 中增加相应的描述内容,这需要具体问题具体分析。测试结果分析软件测试执行结束后,测试活动还没有结束。测试结果分析是必不可少的重要环节, “ 编筐编篓,全在收口 ” ,测试结果的分析对下一轮测试工作的开展有很大的借鉴意义。前面的 “ 测试准备工作 ” 中,建议测试人员走读缺陷跟踪库,查阅其他测试人员发现的软件缺陷。测试结束后,也应该分析自己发现的软件缺陷,对发现的缺陷分类,你会发现自己提交的问题只有固定的几个类别;然后,再把一起完成测试执行工作的其他测试人员发现的问题也汇总起来,你会发现,你所提交问题的类别与他们有差异。这很正常,人的思维是有局限性,在测试的过程中,每个测试人员都有自己思考问题的盲区和测试执行的盲区,有效的自我分析和分析其他测试人员,你会发现自己的盲区,有针对性的分析盲区,必定会在下一轮测试用避免盲区。总结:限于文章的篇幅,本文不可能给出一个类似于 checklist 的指导性的软件测试新手入门。无论从事软件测试还是从事其它的工作,技术上的和技巧上的问题都可以通过查询相关的软件测试技术书籍获取,掌握一套基本的方法论是最重要的。以上文字,都是作者从事软件测试工作积累的经验之谈,如发现谬误之处请不吝指出。
那好,给你分析的
不能毕业。论文是博士毕业时必须完成的标准之一,不完成论文会视为不积极完成学业内的内容,不予毕业。
软件测试被定义为是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。下面我给大家分享软件技术论文2000字,大家快来跟我一起欣赏吧。
软件测试技术研究
摘 要:软件测试是软件工程范畴的一项重要工作,与软件质量密切相关。本文就软件测试的概念、分类和方法等几个方面进行了论述。
关键词:软件测试;黑盒测试;白盒测试
中图分类号:
软件测试是软件生产过程中的一个重要环节,是伴随着软件的产生而发展的,它并不是不能正常运行的软件的专利,而是为了发现所有软件缺陷而执行程序的过程。软件测试贯穿于软件开发的到投入使用的各个过程中,不同阶段的测试手段各不相同,测试成为软件产品质量控制和管理的重要手段之一。大量资料表明,软件测试的工作量占软件开发总工作量的40%以上,测试成本也占总成本的30%―50%。
1 软件测试的目标和重要性
软件测试的定义
看待软件测试的角度不同,软件测试的定义也各不相同。总的说来,软件测试就是利用测试工具按照预先设定好的方案和流程对产品进行功能和性能测试,甚至根据需要重新编写测试代码,对测试过程中可能出现的问题进行分析和评估。它是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程,是保证软件质量的重要内容。
软件测试的目标
软件测试的正确定义是“为了发现程序中的错误而执行程序的过程”。而测试的目的决定了如何去组织测试。测试的目标是什么?曾给出了关于测试的一些规则,这些规则可以看作是软件测试的目标:
(1)软件测试并不是为了验证软件的正确性,而是为了发现错误而执行程序的过程。(2)好的测试方案是尽可能发现目前尚未发现的错误的测试方案。(3)成功有效的测试是发现了至今尚未发现的错误的测试。从以上规则可以看出,测试是以查找错误为中心,和人们通常想象的“测试是为了验证程序的正确功能”,“成功的测试是没有发现错误的测试”等是完全相反的。所以,近年来,正确软件测试目标如下:(1)软件测试并不仅仅是为了查找出软件的错误,而是要通过进一步分析错误产生的原因和错误的发展趋势,发现一些可以通过测试避免的开发风险;(2)通过测试能够帮助测试人员设计出适合该软件更加有效的测试方法,进一步提高测试效率,缩短测试实践,降低测试费用;(3)结果完全正确的测试也是有价值的,是软件质量的一种评价,但并不是测试正确就说明该软件没有错误,随着使用的深入,功能的扩充等会逐步暴露出更多的问题,实践证明,完全没有错误的软件世间难求。
软件测试主要包括
(1)正确性和精确性测试:如果软件的运行结果不正确和不精确,那么会给用户带来很大的麻烦,甚至造成不可估量的损失,因此是保证软件质量的最重要因素。(2)容错性测试:容错性测试是在认可错误的情况下进行的测试,是检查软件在异常条件运行,是否具有防护性和能否自我恢复。容错性测试能确保系统不发生无法意料的事故,从而提高软件的安全性和可靠性。(3)性能与效率测试:用户都希望软件的运行速度更高一些,并且占用的资源更少些,性能与效率测试主要是优化软件的算法,数据结构和代码组织来提高软件的性能和效率。(4)易用性测试:易用性测试是测试软件的易用程度,就像一个常用扳手工具,拿到就能明白怎么去使用,因此易用性测试没有一个量化的指标,主观性较强。在平时使用中,当用户不能正确使用软件中的某个功能时,大多数人首先会通过各种方式学习、请教,或者向产品支持部门打电话,还有一部分用户会查阅用户手册。通常认为,用户不通过翻阅用户手册就能使用的软件易用性较好。(5)文档测试:文档测试主要检查文档的正确性、完备性和可理解性。
软件测试的基本原则
(1)尽早并不断地进行软件测试;(2)程序员或程序设计机构避免测试自己的软件;(3)测试前应当设置合理的测试用例,测试用例的设计不仅要有合法的测试数据,也要有非法的测试数据;(4)对程序修改之后要进行回归测试;(5)妥善保留测试计划、严格按照计划测试,排除测试的随意性,全部测试用例、出错统计和最终分析报告,并对每一个测试结果做全面检查。
软件测试的地位
软件的开发过程包括需求分析、设计、实现和测试四个阶段。软件测试在软件生命周期中占重要地位,是软件交付用户使用前保证软件质量的重要手段。在系统发布之前,从客户的需求出发,尽早发现问题,修改的成本越低,破坏性也越小。一旦系统投产后发现问题,其危害性被成倍放大,甚至会给双方造成不可估量的损失。
2 软件测试方法
按照不同的分类方法,软件测试可以分为多种类型。
从是否需要执行被测试软件的角度分类
静态测试:是指不需要实际运行软件,主要对软件的编程格式、程序逻辑结构等方面进行测试。静态测试是通过对源程序进行语法检查,静态结构分析、代码质量等方面找出缺陷和可疑之处,例如变量定义和生命周期检查、模块接口的正确性、是否允许递归、程序逻辑和结构审查等。
动态测试:通常的上机运行软件而进行的测试,这种方法是使程序有控制地运行,并从多种角度观察程序的行为,以发现其中的错误。在软件维护阶段,当修改软件后,除了对修改部分的软件进行常规的测试外,还应对软件的其他部分进行回归测试,所谓回归测试是指全部或部分地重复已做过的测试,它主要检查软件的修改是否在软件的未修改部分引入了新的错误。
从是否针对软件结构与算法的角度分为
白盒测试,主要是对软件的逻辑结构进行的测试。白盒测试要求测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试,不需测试软件产品的功能。测试过程是基于覆盖全部代码、分支、路径和条件。白盒测试是指在知道产品内部工作过程,通过设置测试用例来检测产品内部动作是否按照规格说明书的规定正确进行,检验程序是否都能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑覆盖、基本路径测试等。
黑盒测试:指测试来检测每个功能是否可以正常使用。执行严格的测试,通过对整个软件或某些软件功能,但不检查程序的源代码还是非常清楚的了解该软件的源代码程序具体如何设计。通过输入测试数据,并通过分析的结果输出到测试人员了解软件是如何工作的。在测试中,主要的功能是用来检查是否正确的程序或缺少的功能,用户界面是正确的,错误的数据结构或外部数据库访问错误,性能是正确与否,程序是否有初始化和终止错误的存在。
从测试的不同阶段分类
单元测试:指的是对每一个工作单元进行测试,了解其运行结果是否符合我们的预期。它对测试人员的要求比较高,要求测试人员对程序代码比较熟悉;一般由程序员自己编完某个单元后,先自我检查通过后,再将测试代码交给测试人员进行审核,如果发现缺陷,原开发者应当及时修正程序,这样可以尽快的发现程序中存在的错误,及时修正以提高程序开发的效率。
集成测试:是在单元测试的基础上,测试再将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试已经完成,集成测试中所使用的对象,已经是经过单元测试的软件单元。
系统测试:是将已经确认的计算机软件和硬件设备、网络和外围设备等元素组合在一起,对已经集成好的系统进行测试,找出所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案.它的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性。
验收测试:也称为交付测试,完成了功能和系统测试后、产品发布之前所进行的测试活动,它是技术测试的最后一个阶段。
总之,随着软件开发和测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。
参考文献:
[1]张永梅.软件测试技术研究[J].测试技术学报,2002,6.
[2]刘继华.软件测试技术的研究进展[J].微计算机信息,2012,10.
[3]瞿莉丽.浅析软件测试技术[J].硅谷,2010,4.
点击下页还有更多>>>软件技术论文2000字
这个就很多了!1、 XML到关系数据库相互转换的研究与设计(计算机科学与技术) XML到关系数据库相互转换的研究与设计(计算机科学与技术)外文翻译+文献综述+开题报告+任务书+中期进展情况检查表+论文正文+论文封面目录摘要:II关键字:IIAbstract:IIKeywords:... 类别:毕业论文 大小: MB 日期:2008-06-19 2、 音频数字水印的建模与实现(计算机科学与技术) 音频数字水印的建模与实现(计算机科学与技术)外文翻译+文献综述+开题报告+任务书+中期进展情况检查表+论文正文+论文封面目录摘要关键词AbstractKeywords前言1音频数字水印技术的概述... 类别:毕业论文 大小: MB 日期:2008-06-19 3、 面向中小企业的运营性CRM应用系统的实现(计算机科学与技术) 面向中小企业的运营性CRM应用系统的实现(计算机科学与技术)外文翻译+文献综述+开题报告+任务书+中期进展情况检查表+论文正文+论文封面摘要II关键字IIABSTRACTIIKEYWORDII绪论11... 类别:毕业论文 大小:1004 KB 日期:2008-06-19 4、 软件测试之性能测试-LoadRunner应用(计算机科学与技术) 软件测试之性能测试-LoadRunner应用(计算机科学与技术)外文翻译+文献综述+开题报告+任务书+中期进展情况检查表+论文正文+论文封面目录摘要IV关键词IVAbstractIVKeywordsI... 类别:毕业论文 大小: MB 日期:2008-06-19 5、 数据挖据在股票市场中的应用(计算机科学与技术) 数据挖据在股票市场中的应用(计算机科学与技术)外文翻译+文献综述+开题报告+任务书+中期进展情况检查表+论文正文+论文封面摘要1关键词2Abstract2Keywords21绪论国内外研究概况... 类别:毕业论文 大小: MB 日期:2008-06-19 6、 在线图书销售系统(ASP+ACCESS)[计算机毕业论文] 在线图书销售系统(ASP+ACCESS)[计算机毕业论文]目录第一章课题背景1第二章系统设计目标设计设计思想系统的功能设计网页制作工具Dreamweaver介绍... 类别:计算机 大小: MB 日期:2008-05-22 7、 新闻发布系统[计算机毕业论文] 新闻发布系统[计算机毕业论文]目录摘要3Abstract41绪论背景选题的目的、意义开发工具的介绍概述特点简介82需... 类别:计算机 大小:218 KB 日期:2008-05-22 8、 [计算机毕业论文]基于ACL的网络病毒过滤规则 目录中文摘要2ABSTRACT31.绪言计算机病毒的出现反病毒的发展病毒制造者的心态分析反病毒行动52.ACL的发展,现状,将来什么是... 类别:计算机 大小:229 KB 日期:2008-05-22 9、 网上考试系统[计算机毕业论文] 网上考试系统[计算机毕业论文]摘要:本网上考试系统采用工程ACCESS和ASP技术开发,以组织公正、科学合理的考试为目的,适用于互联网上的考试及校园网的考试。网上考试系统包括考生考试和教师管理两大模块... 类别:计算机 大小:238 KB 日期:2008-05-22 10、 某中学学生学籍管理系统(计算机毕业论文) 某中学学生学籍管理系统(计算机毕业论文)目录摘要引言系统简介第一章可行性研究第二章需求要析第三章概要设计第四章详细设计第五章设计中遇到的问题及解决方法(还有暂时未解决的问题)第六章结束语第七章主要参考... 类别:计算机 大小:236 KB 日期:2008-05-22 地址: (注:复制到地址栏回车就行了!呵呵)
去领测国际问问吧 他们挺专业的
搜一个给你参考一下:软件测试从零开始引言 几年前,从学校毕业后,第一份工作就是软件测试。那时候,国内的软件企业大多对软件测试还没有什么概念,书店里除了郑人杰编写的《计算机软件测试技术》之外,几乎没有其它的软件测试相关书籍,软件测试仅仅在软件工程的教材中作为一个章节列出来,因此,我对软件测试一无所知。不过,在正式走上工作岗位之前,公司提供了为期两周的系统的软件测试技术专题培训,对接下来的软件测试工作有很大的指导意义。现在,我继续从事软件测试的培训与咨询服务,在这个过程中,亲眼目睹了很多软件测试新手面对的困惑,他们初涉软件测试行业,没有接受系统的培训,对软件测试一无所知,既不知道该测试什么,也不知道如何开始测试。下面针对上述情况,给出若干解决办法。 • 测试准备工作 在测试工作伊始,软件测试工程师应该搞清楚软件测试工作的目的是什么。如果你把这个问题提给项目经理,他往往会这样回答: “ 发现我们产品里面的所有 BUG ,这就是你的工作目的 ” 。作为一名软件测试新手,如何才能发现所有的 BUG ?如何开始测试工作?即便面对的是一个很小的软件项目,测试需要考虑的问题也是方方面面的,包括硬件环境、操作系统、产品的软件配置环境、产品相关的业务流程、用户的并发容量等等。该从何处下手呢?• 向有经验的测试人员学习 如果你进入的是一家运作规范的软件公司,有独立的软件测试部门、规范的软件测试流程、软件测试技术有一定的积累,那么,恭喜你!你可以请求测试经理委派有经验的测试人员作为你工作上的业务导师,由他列出软件测试技术相关书籍目录、软件测试流程相关文档目录、产品业务相关的文档目录,在业务导师的指导下逐步熟悉软件测试的相关工作。其实,在很多运作规范的软件公司,已经把上述的师父带徒弟的方式固化到流程中。 如果你进入的是一个软件测试一片空白的软件企业,那么,也恭喜你!你可以在这里开创一片自己的软件测试事业,当然,前提是老板确实认识到软件测试的重要性,实实在在需要提高产品的质量。这时候,可以到国内的软件测试论坛和相关网站上寻找软件测试资源,这种情况下,自学能力和对技术的悟性就至关重要了。 • 阅读软件测试的相关书籍 现在,中文版的软件测试书籍越来越多,有的是国人自己写的,有的是翻译国外经典之作。可以到 或者 等网络购书的站点查找软件测试相关的书籍。目前,从国外引入的软件测试书籍有很多经典之作,但是,翻译成中文后,翻译质量对阅读效果有很大的影响。 • 走读缺陷跟踪库中的问题报告单 如果您所在的公司已经有软件缺陷跟踪库了,无论采用的是商用工具,如 ClearQuest 、 TestDirecter 等工具,还是采用的 Bugzilla 、 Mantis 等开源工具,这都无关紧要,缺陷跟踪库中的缺陷报告单才是有价值的。缺陷跟踪库中的问题报告单是软件测试工程师工作绩效的集中体现,同时也是软件产品问题的集中体现。一般来说,缺陷报告单中最关键的几个部分包括:第一部分是发现缺陷的环境,包括软件环境、硬件环境等;第二部分是缺陷的基本描述;第三部分是开发人员对缺陷的解决方法。通过对上述缺陷报告单的三个部分作仔细分析,不知不觉你已经吸收了其他软件测试人员的工作经验,并掌握了软件产品常见的基本问题。这是迅速提高软件测试经验的好方法。 • 走读相关产品的历史测试用例 如果你所在的公司有测试用例管理系统,那么,走读相关产品的软件测试用例是迅速提高测试用例设计水平的一条捷径。走读测试用例也是有技巧的。测试用例写作一般会包括测试用例项和根据测试用例项细化的测试用例,下面举例说明。 “ 测试用户登录的功能 ” 是一个测试项,该测试项的目的是测试用户登录功能是否正确,是否能够完成正常的登录功能,是否能够对非法用户名和密码做异常处理等等。因此,根据该用例项,可以设计出若干个测试用例,大多数情况下,测试用例项和测试用例是一对多的关系。 通过走读测试用例项目,你可以掌握应该从哪些功能点着手未来的测试工作;通过走读软件测试用例,你可以了解如何根据被测试的功能点开展软件测试用例的设计工作,包括如何确定测试用例的输入、测试用例的操作步骤和测试用例的输出结果等。 总之,走读其他软件测试人员设计的优秀软件测试用例,是提高自身用例设计水平的好方法。 • 学习产品相关的业务知识 软件测试人员不仅要掌握软件测试技术相关知识,对产品相关的业务知识也要学习。这很好理解,如果从事财务软件的测试工作,一定要学习财务知识;如果从事通讯产品测试工作,那么相关的通讯理论知识也是必须的;如果从事银行软件的测试,银行的业务流程也是不可或缺的知识点。 因此,在学习软件测试技术的同时,千万不要忽略产品相关业务知识的学习。如果你是一个软件测试技术专家,但是对产品业务知识一无所知,那么也只能测试出来纯粹的软件缺陷,而面对眼前出现的产品业务相关的缺陷,很可能是视而不见,如此这般,软件测试的效果会大打折扣。 • 识别测试需求 识别测试需求是软件测试的第一步。如果开发人员能够提供完整的需求文档和接口文档,那固然好。可以根据需求文档中描述的每个功能项目的输入、处理过程和输出,来设计测试用例。如果开发人员没有提供软件需求文档,那该如何是好?下面给出几个有效的方法: • 主动获取需求 开发人员通常不会更好地考虑软件测试,如果没有开发流程的强制规定,他们通常是不愿意提供任何开发文档,即便有强制规定,需求文档也未必能够真正指导软件系统测试工作。因此,需要测试人员发挥主观能动性,与相关的软件开发项目经理和软件开发人员保持沟通,了解软件实现的主要功能是什么,并记录得收集到的信息。一般来说,开发人员即便没有提供相关需求文档,也会保存一些简单的过程文档,主动向开发人员索要这些文档,可以作为测试的参考。此外,可以与公司的技术支持人员交流,技术支持人员是最贴近用户的人,因此,通过交流可以获取第一手的用户使用感受,在测试的过程中会更加贴近用户。 当拿到相关的资料后,从哪些方面分析需求?如何与开发人员交流需求?其实,只要把握需求分析的几个关键的点就可以解决问题:输入、处理过程、输出、性能要求、运行环境,下面针对每一个项目逐一分析: 软件输入: 与该需求相关的一切可能输入,可以从这几方面考虑,输入来源、输入参数的数量、输入参数的度量单位、输入参数的时间要求、输入参数的精度和输入参数的有效输入范围。在测试用例设计中,这部分内容作为测试用例输入的依据。 处理过程: 描述对输入数据所执行的所有操作和如何获得输出的过程。测试人员了解处理过程即可,在测试过程中发现 BUG 时候,如果对处理过程了解的深入,对定位问题根源有很大的帮助。 软件输出: 描述每个需求的输出结果,包括输出的位置(如计算机显示器、打印机,文件),输出参数的数量、输出参数的度量单位、输出参数的时序、输出参数精确度、输出参数的有效输出范围、错误消息。在测试用例设计中,这部分内容作为测试用例的预期输出。 性能要求: 与该需求相关的性能要求,比如 “ 插入 ATM 取款卡后, 3 秒钟内弹出提示用户取款的图形界面 ” 。 3 秒钟这一限制,就是对需求的基本性能要求。 运行环境: 软件的运行所需的环境,包括硬件平台的要求、操作系统的要求、数据库的要求,以及其它相关支撑软件的要求。 • 确认需求的优先级 确认需求的优先级是很必要的,如果在产品进度比较紧的情况下,测试人员可以考虑优先测试优先级高的需求项,如果进度允许,那么在测试优先级低的需求项,如果进度不允许,那么就放弃测试优先级低的需求项。如果软件公司有规范的流程支撑,开发人员在提供软件需求文档的时候,应该在文档中确定需求的优先级。但是,如果开发人员连基本的软件需求文档都没有提供,又怎能指望他们确定软件需求的优先级?如果是这样,需求的优先级只能由测试人员完成了。 • 加入开发小组的邮件群组 测试人员需要通晓被测试产品,但是,产品在开发的过程中往往是不断变化的。如果软件开发团队有一套变更控制流程,测试人员会对产品的变更了如指掌。如果没有变更控制,那就要采用其他的土方法了。如果公司里面有自动化办公系统,也许采用的是 Lotus Notes 系统,也许使用的是 E-mail 系统,测试人员应该加入到开发人员的邮件群组中。当开发人员通过邮件讨论问题、通知召开技术会议的时候,测试人员可以及时知晓,如果必要,可以参加开发人员的技术会议。即便公司里面有了软件变更控制流程,加入到开发邮件群组也是一个很好的习惯。 • 与开发人员为邻 建议测试人员与开发人员为邻。我所在的测试组曾经与开发组是在相邻的写字间里,开发人员与测试人员的关系非常融洽,抛去同事关系,大家还是不错的朋友。不管开发人员有什么样的活动,测试人员都能第一时间获得信息。无论从事软件测试工作,还是从事其它的工作,与工作中上下游环节的同事保持良好的个人关系对工作有很大便利。一般的公司内部都存在部门墙,良好的人际关系是打通部门墙的手段之一。向领导建议测试人员与开发人员为邻,这很必要。 • 测试用例设计 测试需求收集完毕后,开始测试设计。测试用例是什么?测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。设计测试用例需要考虑以下问题: • 重用同类型项目的测试用例 如果我看得远,那是因为我站在巨人的肩上 --牛顿。 一般来说,每个软件公司的项目可以分为固定的几大类。可以按业务类型划分,比如 ERP 软件、产品数据管理软件、通信软件、地理信息系统软件等等;可以按软件结构来划分,比如 B/S 架构的软件、 C/S 架构的软件、嵌入式软件等等。参考同类别软件的测试用例,会有很大的借鉴意义。如果,公司中有同类别的软件系统,千万别忘记把相关的测试用例拿来参考。如果,系统非常接近,甚至经过对测试用例简单修改就可以应用到当前被测试的软件。 “ 拿来主义 ” 可以极大的开阔测试用例设计思路,也可以节省大量的测试用例设计时间。 • 测试用例执行 测试用例设计完毕后,接下来的工作是测试执行,测试执行中应该注意以下几个问题: • 搭建软件测试环境,执行测试用例 测试用例执行过程中,搭建测试环境是第一步。一般来说,软件产品提交测试后,开发人员应该提交一份产品安装指导书,在指导书中详细指明软件产品运行的软硬件环境,比如要求操作系统系统是 Windows 2000 pack4 版本,数据库是 Sql Server 2000 等等,此外,应该给出被测试软件产品的详细安装指导书,包括安装的操作步骤、相关配置文件的配置方法等等。对于复杂的软件产品,尤其是软件项目,如果没有安装指导书作为参考,在搭建测试环境过程中会遇到种种问题。 如果开发人员拒绝提供相关的安装指导书,搭建测试中遇到问题的时候,测试人员可以要求开发人员协助,这时候,一定要把开发人员解决问题的方法记录下来,避免同样的问题再次请教开发人员,这样会招致开发人员的反感,也降低了开发人员对测试人员的认可程度。 • 测试执行过程应注意的问题 测试环境搭建之后,根据定义的测试用例执行顺序,逐个执行测试用例。在测试执行中需要注意以下几个问题: 全方位的观察测试用例执行结果: 测试执行过程中,当测试的实际输出结果与测试用例中的预期输出结果一致的时候,是否可以认为测试用例执行成功了?答案是否定的,即便实际测试结果与测试的预期结果一致,也要查看软件产品的操作日志、系统运行日志和系统资源使用情况,来判断测试用例是否执行成功了。全方位观察软件产品的输出可以发现很多隐蔽的问题。以前,我在测试嵌入式系统软件的时候,执行某测试用例后,测试用例的实际输出与预期输出完全一致,不过在查询 CPU 占用率地时候,发现 CPU 占用率高达 90 %,后来经过分析,软件运行的时候启动了若干个 1ms 的定时器,大量的消耗的 CPU 资源,后来通过把定时器调整到 10ms , CPU 的占用率降为 7 %。如果观察点单一,这个严重消耗资源的问题就无从发现了。 加强测试过程记录: 测试执行过程中,一定要加强测试过程记录。如果测试执行步骤与测试用例中描述的有差异,一定要记录下来,作为日后更新测试用例的依据;如果软件产品提供了日志功能,比如有软件运行日志、用户操作日志,一定在每个测试用例执行后记录相关的日志文件,作为测试过程记录,一旦日后发现问题,开发人员可以通过这些测试记录方便的定位问题。而不用测试人员重新搭建测试环境,为开发人员重现问题。 及时确认发现的问题: 测试执行过程中,如果确认发现了软件的缺陷,那么可以毫不犹豫的提交问题报告单。如果发现了可疑问题,又无法定位是否为软件缺陷,那么一定要保留现场,然后知会相关开发人员到现场定位问题。如果开发人员在短时间内可以确认是否为软件缺陷,测试人员给予配合;如果开发人员定位问题需要花费很长的时间,测试人员千万不要因此耽误自己宝贵的测试执行时间,可以让开发人员记录重新问题的测试环境配置,然后,回到自己的开发环境上重现问题,继续定位问题。 与开发人员良好的沟通: 测试执行过程中,当你提交了问题报告单,可能被开发人员无情驳回,拒绝修改。这时候,只能对开发人员晓之以理,做到有理、有据,有说服力。首先,要定义软件缺陷的标准原则,这个原则应该是开发人员和测试人员都认可的,如果没有共同认可的原则,那么开发人员与测试人员对问题的争执就不可避免了。此外,测试人员打算说服开发人员之前,考虑是否能够先说服自己,在保证可以说服自己的前提下,再开始与开发人员交流。 • 及时更新测试用例 测试执行过程中,应该注意及时更新测试用例。往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;往往也会发现有些测试用例在具体的执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代,那么删除冗余的测试用例。 总之,测试执行的过程中及时地更新测试用例是很好的习惯。不要打算在测试执行结束后,统一更新测试用例,如果这样,往往会遗漏很多本应该更新的测试用例。 • 提交一份优秀的问题报告单 软件测试提交的问题报告单和测试日报一样,都是软件测试人员的工作输出,是测试人员绩效的集中体现。因此,提交一份优秀的问题报告单是很重要的。软件测试报告单最关键的域就是 “ 问题描述 ” ,这是开发人员重现问题,定位问题的依据。问题描述应该包括以下几部分内容:软件配置、硬件配置、测试用例输入、操作步骤、输出、当时输出设备的相关输出信息和相关的日志等。 软件配置: 包括操作系统类型版本和补丁版本、当前被测试软件的版本和补丁版本、相关支撑软件,比如数据库软件的版本和补丁版本等。 硬件配置: 计算机的配置情况,主要包括 CPU 、内存和硬盘的相关参数,其它硬件参数根据测试用例的实际情况添加。如果测试中使用网络,那么网络的组网情况,网络的容量、流量等情况。硬件配置情况与被测试产品类型密切相关,需要根据当时的情况,准确翔实的记录硬件配置情况。 测试用例输入 \ 操作步骤 \ 输出: 这部分内容可以根据测试用例的描述和测试用例的实际执行情况如实填写。 输出设备的相关输出信息: 输出设备包括计算机显示器、打印机、磁带等等输出设备,如果是显示器可以采用抓屏的方式获取当时的截图,其他的输出设备可以采用其它方法获取相关的输出,在问题报告单中提供描述。 日志信息: 规范的软件产品都会提供软件的运行日志和用户、管理员的操作日志,测试人员应该把测试用例执行后的软件产品运行日志和操作日志作为附件,提交到问题报告单中。根据被测试软件产品的不同,需要在 “ 问题描述 ” 中增加相应的描述内容,这需要具体问题具体分析。测试结果分析软件测试执行结束后,测试活动还没有结束。测试结果分析是必不可少的重要环节, “ 编筐编篓,全在收口 ” ,测试结果的分析对下一轮测试工作的开展有很大的借鉴意义。前面的 “ 测试准备工作 ” 中,建议测试人员走读缺陷跟踪库,查阅其他测试人员发现的软件缺陷。测试结束后,也应该分析自己发现的软件缺陷,对发现的缺陷分类,你会发现自己提交的问题只有固定的几个类别;然后,再把一起完成测试执行工作的其他测试人员发现的问题也汇总起来,你会发现,你所提交问题的类别与他们有差异。这很正常,人的思维是有局限性,在测试的过程中,每个测试人员都有自己思考问题的盲区和测试执行的盲区,有效的自我分析和分析其他测试人员,你会发现自己的盲区,有针对性的分析盲区,必定会在下一轮测试用避免盲区。总结:限于文章的篇幅,本文不可能给出一个类似于 checklist 的指导性的软件测试新手入门。无论从事软件测试还是从事其它的工作,技术上的和技巧上的问题都可以通过查询相关的软件测试技术书籍获取,掌握一套基本的方法论是最重要的。以上文字,都是作者从事软件测试工作积累的经验之谈,如发现谬误之处请不吝指出。