如何评价测试用例
上一篇 /
下一篇 2014-11-20 17:39:31
/ 个人分类:测试用例
测试用例(Test Case)是将
软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式。
内容包括:被测系统名称,版本号,对应需求,测试环境(硬件环境;软件环境-操作系统、浏览器、
数据库、中间件;),测试目的,执行步骤,测试数据,预期结果,优先级等。
为什么要编写测试用例:
有效性:测试用例是测试人员测试过程中的重要参考依据。不同的测试人员依据相同的测试用例所得到的输出应该是一致的,对于准确的测试用例的计划、执行和跟踪是测试的有效性的有力证明。
可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,在前面的章节中,我们提到测试是不可能进行穷举测试的,因此,设计良好的测试用例将大大节约时间,提高测试效率。
易组织性:即使是很小的项目,也可能有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用,正确的测试计划会很好地组织这些测试用例并提供给测试人员或者其他项目的人参考和有效的使用。
可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。经常说代码的质量不高或者代码的质量很好,量化的标准应该是测试用例的通过率和软件错误(bug)的数目。
可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的因素,尤其是比较适用于对于新的测试人员的检验,从而更加合理做出测试安排和计划。
因此,测试用例将会使得测试的成本降低,并具有可重复使用功能,也是作为检测测试效果的重要因素,设计良好的测试用例将事倍功半。测试用例不是每个人都可以编写的,它需要撰写者对产品的设计、功能规格说明书、用户场景以及程序/模块的结构都有比较透彻的了解。测试人员一开始只能执行别人写好的测试案例,随着项目的进度以及测试人员的**,测试人员很快能自己编写测试用例,并可以提供给别人使用。希望可以帮到你!
如何评价测试用例:
基于需求的设计->基于经验的设计->基于风险的设计
1、覆盖全部需求;
2、对于一个即熟悉测试工作,又熟悉被测应用的测试人员,应当可以花费很少的时间就可以理解测试用例中表达的测试思路,并可以很快的执行完这个测试用例。
3、当开发过程中的某些因素影响了测试需求,测试用例的作者或其他测试设计人员,应该可以花费很少的时间就完成定位并维护所有相关测试用例的工作
4、步骤不要太少,避免在执行用例的时候出现描述不清导致模棱两可的情况发生。
5、步骤不要太多细节,避免过高的设计成本和维护成本。
6、通过或失败的标准明确。
用例评审:
1、用例的结构安排是否清晰、合理。
2、优先级安排是否合理。
3、是否高效的覆盖测试需求上的所有功能点。
4、用例是否具有很好的可执行性,如:用例的前提条件、执行步骤、输入数据、预期结果是否清晰、准确。预期结果是否有明显的验证方法。
5、是否不存在冗余用例。
6、是否有充分的负面测试用例。毕竟一个健壮的程序,其中80%的代码都是在保护20%的功能实现(2-8原则)。
7、是否包含从用户层面设计的用户场景和使用流程的测试用例。
8、是否简洁、复用性强。可将重复度高的步骤或过程抽取出来定义一些可复用的标准步骤
软件测试用例设计最重要的前提是掌握业务知识,加上一定的测试用例设计方法,软件测试的工作实际就非常简单了,多测试几个实际项目技能就自然提高了。
我把软件测试用例设计分成4个部分:
·测试类型
·设计思路
·设计技术
·去芜存菁
测试类型
测试类型有很多分类方法,为了编写文档方便,可以把各种分类方法合并,做为用例文档的目录。
明确测试类型可以避免重大漏测。
·文档测试:需求,设计,用户手册...
·界面测试:CLI, WEB,
GUI, API
·协议一致性测试:与标准一致。
·功能测试:以需求文档、命令/界面显示功能、用户手册为编写线索。
·性能测试:容量、时间、吞吐量、连接数等结果,含压力测试,负载测试。
·组网测试:一些复杂网络协议适用。
·集成测试:多个模块或者整个系统叠加测试,测试各个功能之间的接口是否正常,是否相互影响。
·兼容测试:不同厂家产品,相关产品、不同版本协同工作。
·事件测试:修改配置,重启,断电等。
·安全测试:攻击,各种异常,非法测试
·稳定性测试:模拟线上环境,长期运行。
·可靠性测试:**,容错,易恢复。
·易用性测试:软件产品被理解、学习、使用和吸引用户的能力。
·可维护性测试:易分析,易修改,易测试,易管理。
·可移植性测试:从一种环境迁移到另一种环境。
设计思路
发散思维和逆向思维是测试设计中最重要的两个思维。
设计技术
在上一步骤执行时或者执行后,都可以运行常见的设计技术:
·等价类划分
·边界值
·错误推测
·因果图
....
去芜存菁
足够好就行,精减用例,划分优先级。
·哪些功能是软件的特色?
·哪些功能是用户最常用的?
如果系统可以分块卖的话,哪些功能块在销售时最昂贵?
·哪些功能出错将导致用户不满或索赔?
·哪些程序是最复杂、最容易出错的?
·哪些程序是相对独立,应当提前测试的?
·哪些程序最容易扩散错误?
·哪些程序是全系统的性能瓶颈所在?
·哪些程序是开发者最没有信心的?
收藏
举报
TAG: