一、测试基础理论及用例设计,模型框架
1、软件测试基本概念及分类
IT行业的角色:前端开发(html,css,js…),后端开发(java,c#,php,python,go语言…),产品经理,运维,大数据,人工智能,架构师,UI设计……
测试人员应该懂java,学Python。开发人员大部分都是用java写代码,人工智能和大数据都是用Python写的
功能测试的逻辑思维,逆向思维
拼多多之前有一天夜里100元优惠券随便抢,在线上环境发布了,导致亏损几个亿
电商平台优惠券,积分,会员等级……
比如淘宝买A商品送B商品的优惠券,B优惠券到手后把A商品退掉,B的优惠券还能不能用;买商品的积分和平台的积分能不能重复用;
so,按照正常思路走往往不会发现bug,不按常理出牌可能会发现bug,这就需要逆向思维
用户很聪明,咱们要比用户更聪明才能阻止用户的小聪明
什么是软件测试?
书面上的解释就是使用人工或自动手段来运行或测试某个系统,并发现问题,解决问题的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
现在看来并不准确,就是使用人工或自动手段来运行或测试某个系统,它包含了软件测试的功能,性能,接口,数据库,安全等领域,全方位的把控一个软件的质量。
测试的法则:
- 功(功能)
- 可(可靠性)
- 易(易用性)主要是指特殊人群
- 效(效率)
- 维(可维护性)
- 移(可移植性)
软件测试目的:
- 测试是为了发现系统钟的错误而执行程序的过程
- 好的测试方案在于尽可能发现迄今为止尚未发现的错误
- 成功的测试是发现了至今为止尚未发现的错误的测试
- 测试并不仅仅是为了找出错误,通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进
- 这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性
- 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法
功能测试需要考虑逻辑,数据的自增自减,排序,数据库等等,并不是点点点
软件测试工程师不是从可视化界面开始测的,是从项目还没开始成型就要介入的