在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
设计功能测试用例是软件测试人员的一基本功。然而很多新手测试工程师对基本的测试概念、思路以及技术没有充分的认知,甚至在设计测试用例的时候大部分时间通过直觉与经验执行。因此这部分新手测试工程师的测试用例设计既不全面也不可学 。那对于新手而言应该如何设计功能测试用例呢?
一、显式功能性需求:指的是需求中明确规定且用户可以感知到的需求,比如“访客用户访问管理员页面时会跳转到登录页”。常用方法有三种:
1、等价类划分法
我们如果想测试一个功能的最傻的办法就是穷举。比如说一个密码验证功能,我们把所有的可能的密码都尝试一遍,自然就可以覆盖掉到所有的问题与可能。但是这种穷举的方法明显是做不到的。因此我们要用到等价类划分法。等价类划分法就是说我们将所有可能的输入数据或操作分为多组不同的子集,每个子集中的数据与操作对发现程序中的潜在错误都有同等的效应。这样我们就将一个子集称为一个等价类。
2、边界值分析法
在我们在测试合理与不合理的数据的时候,往往最容易出现问题的就是合理与不合理的边界,这时我们就需要使用边界值分析法了。边界值分析法,就是对恰好大于、小于和等于边界的值进行测试,来验证程序是否做到了合适的处理。边界值分析法一般是作为等价类的补充,来加强测试功能实现的程度与健壮性保障的程度,是否符合规格。
3、错误推测法
在测试的时候就算我们使用了等价类划分法和边界值分析法,也很可能会遗漏一些需求中没有清晰提出,技术上比较隐蔽的错误。这种错误就需要测试人员通过已有的经验、对功能实现可能的方法的理解或直觉,来推测出软件中可能存在的各种错误与场景,然后编写测试用例来进行验证,这就叫做错误推测法。比如,登录超时后,某个需要权限操作的功能在使用的时候,是否跳到了登录页,还是直接报错,甚至说依旧可以操作。这种错误是需要测试人员一定的经验、技术积累与直觉的。
二、非功能性需求:指的是用户无法直接体验到的,非具体功能性的需求,但这种非功能性需求在做功能性测试的时候也会涉及到,因为很多非功能性的需求会影响到功能的可用性与用户体验,比如性能测试。
1、兼容性测试
兼容性指的是开发的软件是否在各种平台都可以使用。比如我们开发一个网站,我们的用户可能会用到各种不同的浏览器访问我们的网站。这样我们在测试的时候,就不能只考虑到某一种浏览器。我们需要考虑到多种浏览器的兼容性。
2、安全性测试
我们的测试人员还需要关注到开发软件的安全性。这涉及到:用户隐私信息是否加密;需要权限的资源是否有没有权限也可以被拿到的风险;会不会受到跨站脚本的攻击;会不会受到sql注入攻击等等。
3、压力测试
测试人员也需要考虑的软件是否能够承载其需求所需的压力,例如:软件是否能在合理的时间内响应用户行为;软件是否可能承载足够的请求;软件在处理大数据量时会不会产生资源锁死。
在软件测试过程中,如果测试用例设计不全面,就会导致测试结果出现严重的偏差,甚至影响整个产品的研发周期。因此作为软件测试工程师一定要注重测试用例的设计。尤其对于新手,刚开始做测试工作时一定要注重积累和学习。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
刚入行软件测试,去大公司好还是小公司好?
软件测试是目前国内发展比较快速的互联网岗位之一,很多人都看准机会加入到这个行业中,面对择业的时候,和大部分职场小白或者优秀毕业生一样,都会比较纠结到底选择什么样的公司就职?下面小编就和大家一起分析一下刚入行软件测试,去大公司好还是去小公司好?
10007
2019-08-07 18:11:23
手机软件测试员做啥的?行业分析
手机软件测试员做啥的?作为一个突然出现在大众面前的新兴职业,不少人都对其抱有浓厚兴趣。其实手机软件测试员是一个工作内容很广的职业,大方向主要分为手机软件客户端测试和手机系统的软件测。大白话翻译过来,这个行业就是和手机打交道。那么手机测试具体的工作内容是什么?这个职位对从业者有哪些要求?就让我们一起来看一看。
14391
2019-08-02 10:38:47
软件测试缺陷包含哪些状态?缺陷生命周期分析
在软件测试中,缺陷生命周期常常是绕不开的话题。本文就来详细为大家讲讲,软件测试缺陷的八种状态,缺陷的等级、缺陷单应该包含的内容等等。对软件测试的基础理论知识感兴趣的小伙伴,现在就赶紧看下去吧!
15158
2019-10-22 14:45:34
性能测试实例讲解
性能测试包括许多测试内容,同时它可以充分保证软件的质量。今天我们就来飞享一个医药管理系统的性能测试实例,具体内容包括系统描述、系统模块、注意事项、性能测试过程等等。
3771
2020-05-26 12:10:25
零基础学软件测试需要学什么?
对于初学者应该有一个系统的认知,需要学习测试基础、Linux和数据库、功能测试、Python编程、WEB自动化测试、移动端自动化测试、接口测试、性能测试等相关知识。接下来我们具体了解一下~
3062
2021-01-26 16:57:01