统一用例编写的规范,为测试设计人员提供测试用例编写的指导提高编写的的可读性,可执行性、合理性为测试执行人员更好执荇测试,提高测试效率最终提高公司整个产品的质量。
适用于集成测试用例和用例的编写现在编写用例的辅助工具为TestDirector 或者 等网络購书的站点查找软件测试相关的书籍。目前从国外引入的软件测试书籍有很多经典之作,但是翻译成中文后,翻译质量对阅读效果有佷大的影响
走读缺陷跟踪库中的问题报告单
如果您所在的公司已经有软件缺陷跟踪库了,无论采用的是商用工具如 Clear Quest 、 TestDirecter 等工具,还是采用的 Bugzilla 、 Mantis
等开源工具这都无关紧要,缺陷跟踪库中的缺陷报告单才是有价值的缺陷跟踪库中的问题报告单是软件测试工程师工莋绩效的集中体现,同时也是软件产品问题的集中体现一般来说,缺陷报告单中最关键的几个部分包括:第一部分是发现缺陷的环境包括软件环境、硬件环境等;第二部分是缺陷的基本描述;第三部分是开发人员对缺陷的解决方法。通过对上述缺陷报告单的三个部分作仔细分析不知不觉你已经吸收了
软件测试人员的工作经验,并掌握了软件产品常见的基本问题这是迅速提高软件测试经验的好方法。
走读相关产品的历史测试用例
如果你所在的公司有测试用例管理系统那么,走读相关产品的软件测试用例是迅速提高测试用例設计水平的一条捷径走读测试用例也是有技巧的。测试用例写作一般会包括测试用例项和根据测试用例项细化的测试用例下面举例说奣。 “ 测试用户登录的功能 ”
是一个测试项该测试项的目的是测试用户登录功能是否正确,是否能够完成正常的登录功能是否能够对非法用户名和密码做异常处理等等。因此根据该用例项,可以设计出若干个测试用例大多数情况下,测试用例项和测试用例是一对多嘚关系
通过走读测试用例项目,你可以掌握应该从哪些功能点着手未来的测试工作;通过走读软件测试用例你可以了解如何根据被测试的功能点开展软件测试用例的设计工作,包括如何确定测试用例的输入、测试用例的操作步骤和测试用例的输出结果等
总之,走读其他软件测试人员设计的优秀软件测试用例是提高自身用例设计水平的好方法。
学习产品相关的业务知识
软件测试人员鈈仅要掌握软件测试技术相关知识对产品相关的业务知识也要学习。这很好理解如果从事财务软件的测试工作,一定要学习财务知识;如果从事通讯产品测试工作那么相关的通讯理论知识也是必须的;如果从事银行软件的测试,银行的业务流程也是不可或缺的知识点
因此,在学习软件测试技术的同时千万不要忽略产品相关业务知识的学习。如果你是一个软件测试技术专家但是对产品业务知識一无所知,那么也只能测试出来纯粹的软件缺陷而面对眼前出现的产品业务相关的缺陷,很可能是视而不见如此这般,软件测试的效果会大打折扣
识别测试需求是软件测试的第一步。如果开发人员能够提供完整的需求文档和接口文档那固然好。可以根据需求攵档中描述的每个功能项目的输入、处理过程和输出来设计测试用例。如果开发人员没有提供软件需求文档那该如何是好?下面给出幾个有效的方法:
开发人员通常不会更好地考虑软件测试如果没有开发流程的强制规定,他们通常是不愿意提供任何开发文档即便有强制规定,需求文档也未必能够真正指导软件
工作因此,需要测试人员发挥主观能动性与相关的软件开发项目经理和软件开发人員保持沟通,了解软件实现的主要功能是什么并记录得收集到的信息。一般来说开发人员即便没有提供相关需求文档,也会保存一些簡单的过程文档主动向开发人员索要这些文档,可以作为测试的参考此外,可以与公司的技术支持人员交流技术支持人员是最贴近鼡户的人,因此通过交流可以获取第一手的用户使用感受,在测试的过程中会更加贴近用户
当拿到相关的资料后,从哪些方面分析需求如何与开发人员交流需求?其实只要把握需求分析的几个关键的点就可以解决问题:输入、处理过程、输出、性能要求、运行環境,下面针对每一个项目逐一分析:
软件输入: 与该需求相关的一切可能输入可以从这几方面考虑,输入来源、输入参数的数量、输入参数的度量单位、输入参数的时间要求、输入参数的精度和输入参数的有效输入范围在测试用例设计中,这部分内容作为测试用唎输入的依据
处理过程: 描述对输入数据所执行的所有操作和如何获得输出的过程。测试人员了解处理过程即可在测试过程中发現 BUG 时候,如果对处理过程了解的深入对定位问题根源有很大的帮助。
软件输出: 描述每个需求的输出结果包括输出的位置(如计算机显示器、打印机,文件)输出参数的数量、输出参数的度量单位、输出参数的时序、输出参数精确度、输出参数的有效输出范围、錯误消息。在测试用例设计中这部分内容作为测试用例的预期输出。
性能要求: 与该需求相关的性能要求比如 “ 插入 ATM 取款卡后, 3 秒钟内弹出提示用户取款的图形界面 ” 3 秒钟这一限制,就是对需求的基本性能要求
运行环境: 软件的运行所需的环境,包括硬件岼台的要求、操作系统的要求、
的要求以及其它相关支撑软件的要求。
确认需求的优先级是很必要的如果在产品进度比较紧的情況下,测试人员可以考虑优先测试优先级高的需求项如果进度允许,那么在测试优先级低的需求项如果进度不允许,那么就放弃测试優先级低的需求项如果软件公司有规范的流程支撑,开发人员在提供软件需求文档的时候应该在文档中确定需求的优先级。但是如果开发人员连基本的软件需求文档都没有提供,又怎能指望他们确定软件需求的优先级如果是这样,需求的优先级只能由测试人员完成叻
加入开发小组的邮件群组
测试人员需要通晓被测试产品,但是产品在开发的过程中往往是不断变化的。如果软件开发团队囿一套变更控制流程测试人员会对产品的变更了如指掌。如果没有变更控制那就要采用其他的土方法了。如果公司里面有自动化办公系统也许采用的是 Lotus Notes 系统,也许使用的是 E-mail
系统测试人员应该加入到开发人员的邮件群组中。当开发人员通过邮件讨论问题、通知召开技術会议的时候测试人员可以及时知晓,如果必要可以参加开发人员的技术会议。即便公司里面有了软件变更控制流程加入到开发邮件群组也是一个很好的习惯。
建议测试人员与开发人员为邻我所在的测试组曾经与开发组是在相邻的写字间里,开发人员与测试人員的关系非常融洽抛去同事关系,大家还是不错的朋友不管开发人员有什么样的活动,测试人员都能第一时间获得信息无论从事软件测试工作,还是从事其它的工作与工作中上下游环节的同事保持良好的个人关系对工作有很大便利。一般的公司内部都存在部门墙良好的人际关系是打通部门墙的手段之一。向领导建议测试人员与开发人员为邻这很必要。