写好测试用例需要做到以下几点:一、充分理解需求;二、依据需求梳理功能及功能点;三、通过测试理论方法梳理测试点;四、设计测试用例应坚持四项基本原则。充分理解需求是准确设计测试用例的前提,它能确保测试的全面性和有效性。
一、充分理解需求
在编写测试用例之前,测试工程师必须充分理解软件需求。只有深入理解需求,才能更好地评估测试用例的覆盖面和效果。同时,需求的理解还可以帮助测试工程师为测试用例提供更好的注释和说明,以便其他人更好地理解测试用例。以下是一些可以充分理解需求的方法:
- 仔细阅读需求文档:测试工程师应该仔细阅读需求文档,包括功能说明、用例描述、用户场景等,以确保对需求的理解准确无误。
- 与产品负责人或开发人员沟通:测试工程师应该与产品负责人或开发人员进行沟通,以了解需求的详细信息和背景,以及产品的预期行为和限制条件。
- 审查产品设计文档:测试工程师可以审查产品设计文档,以了解产品的功能和特点,以及预期的用户交互方式和界面设计。
- 进行需求评审:测试工程师可以参加需求评审会议,与其他团队成员一起讨论和分析需求,以确保对需求的理解准确无误。
- 进行示例测试:测试工程师可以通过执行示例测试来了解产品的功能和特点,在测试过程中逐渐理解需求的细节和特点。
二、依据需求梳理功能及功能点
充分理解需求之后,需要将看得到的功能及功能点梳理出来。以下是梳理功能及功能点的关键要点:
- 列出功能:将产品中的每个可见功能列出来,例如登录、注册、查询、编辑、删除等。
- 列出功能点:对于每个功能,列出其具体的功能点,例如登录功能点包括输入用户名、输入密码、点击登录按钮等。
- 确认功能点的边界条件:对于每个功能点,确定其边界条件,例如输入的字符串长度限制、输入数据的格式要求等。
- 将功能点组合为用例:将不同的功能点组合为不同的用例,例如登录用例可以包括正常登录、输入错误密码、输入错误用户名等。
三、通过测试理论方法及经验梳理测试点
在进行测试点梳理时,可以结合测试理论方法和经验,以确保测试点的全面性和有效性。以下是一些常用的测试理论方法和经验:
- 等价类划分法:将输入数据划分为不同的等价类,针对每个等价类设计测试用例,以确保测试覆盖所有可能的输入情况。
- 边界值分析法:针对输入数据的边界值设计测试用例,以测试边界条件是否被正确处理。
- 决策表法:将产品的不同场景和条件列在一张表格中,根据每个场景和条件设计测试用例,以测试产品的各种情况和限制条件。
- 正交实验设计法:通过正交实验设计方法,设计最少的测试用例,以测试产品的各种功能和特性。
- 经验法则:根据测试人员的经验和实际情况,设计测试用例,以覆盖可能的缺陷和问题。
- 系统分析法:对产品进行系统分析,了解其各个模块和功能,根据不同模块和功能设计测试用例,以确保测试全面性和有效性。
四、设计测试用例坚持四项原则
1、单个用例覆盖最小化原则
单个测试用例应该尽可能地覆盖最小化,即测试用例应该只测试一个特定的功能或功能点;这样可以保证测试结果的准确性,同时也可以帮助测试工程师更好地定位问题。如果一个测试用例包含了多个测试点,当测试结果出现问题时,测试工程师就难以确定具体是哪个测试点出现了问题,从而增加了调试和排查问题的难度。因此,设计测试用例时,应该准确地描述每一个测试点,并针对每个测试点设计单独的测试用例。
2、测试用例替代产品文档功能原则
测试用例应该能够替代产品文档中的功能描述,它需要清晰地描述测试的预期结果和实际结果,以方便其他人快速地理解测试用例的设计思路和测试目的。通过这种方式,测试用例不仅可以帮助测试工程师更好地进行测试,也可以帮助其他人更好地了解软件的功能和特性。
3、单次投入成本和多次投入成本原则
测试用例的设计应该考虑到单次投入成本和多次投入成本之间的平衡。单次投入成本指测试工程师在设计测试用例时所需的时间和精力投入,而多次投入成本指测试工程师在测试过程中所需的时间和精力投入。测试用例设计时应该尽量减少单次投入成本,但同时也要确保测试用例的覆盖面和效果,以便尽可能地减少多次投入成本,避免因测试用例设计不完善而浪费大量的时间和精力。
4、使测试结果分析和调试最简单化原则
测试用例设计应该考虑到测试结果分析和调试的方便性,需要在测试结果中给出具体的错误信息和异常信息,以帮助测试工程师快速地定位问题和解决问题。此外,测试用例设计还应该考虑到测试结果的可重现性和可靠性,确保测试结果可以在不同的环境和配置下得到相同的结果,从而避免测试结果分析和调试的复杂性。
延伸阅读1:测试用例的基本格式
对于一个合格的测试用例来说,它应到具备六个要素:测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果,详情如下:
一、用例编号:测试用例的编号有一定的规则,比如系统测试用例的编号定义规则为:WEBLOAD1-ST-001,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
二、测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如“测试用户登录时输入了错误密码,软件的响应情况”。
三、重要级别:定义测试用例的优先级别,可以笼统地分为“高”和“低”两个级别。一般来说,如果软件需求的优先级为“高”,那么针对该需求的测试用例优先级也为“高”;反之亦然。
四、测试输入:提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
五、操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成。
六、预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。
延伸阅读2:测试管理工具软件
1. 测试管理工具:PingCode(推荐:简单、全面、好用/地址: https://sc.pingcode.com/dkj4m )、Jira(不支持本地版、贵)
2. 接口测试工具:Jmeter(开源)、postman、SoapUI
3. 性能测试工具:loadrunner(全但复杂)、jmeter 、Web bench 、
4. C/S自动化工具:qtp、autoit
5.白盒测试工具:jtest、JUnit、cppunit
6.代码扫描工具:Coverity、cppcheck、gcover
7.持续集成工具:jenkins、Hudson
8.网络测试工具:思博伦、Ixia、tc
9.app自动化工具:appium、instruments、uiautomator
10.web安全测试工具:appscan、Netsparker Community Edition、Websecurify 、Wapiti
11.抓包工具:fiddler