- 软件测试:验证软件是否满足了客户需求和软件需求。
- 什么是BUG?
- 当且仅当规格(软件需求)说明存在,并且正确,如果程序和规格说明不相符,就是软件缺陷。
- 如果没有规格说明,当且仅当用户需求存在且合理,如果程序和用户需求不相符,就是软件缺陷。
- 测试用例:向被测试系统发出的一系列集合,包含测试数据,测试环境(软件和硬件),操作步骤,预期结果等。
eg:网易邮箱的登陆成功测试用例
标题:网易邮箱登录成功的测试用例
测试模块:登录模块
前提条件:注册得到用户名和密码
重要性:重要
测试数据:正确的用户名和密码
测试环境:Chrome
操作步骤 | 预期结果 | |||||
1.打开网易邮箱登陆页面 | 出现登陆页面 | |||||
2.输入正确的用户名和密码,点击登录 | 登陆成功,进入邮箱首页 |
- 软件开发的生命周期:需求分析,计划,设计,编码,测试,发布
- 软件开发的模型:
- 瀑布模型:阶段性,独立性强;抗风险能力弱。
- 螺旋模型:适合规模比较庞大,前期需求不是很明确,风险比较大的项目。
- 增量模型
- 迭代模型
- 敏捷开发(Scrum方法):轻流程,轻文档,重目标,重产出,轻量级(迭代周期短,参与人员少)。
敏捷中的测试:测试用例作用减弱,主要有思维导图整理测试思路,探索性测试,测试人员和开发人员关联紧密。
- 软件测试模型:
- V模型:优点是后期的测试阶段和前期的阶段可以一一对应起来,清楚的标注每一个测试阶段的依据。缺点是不利于项目前期风险的及时发现。
- w模型(双v):优点是测试在项目前期介入,对需求,系统设计等都会进行验证,测试介入早,有利于全面发现系统前期风险。缺点是阶段性强,强调一个阶段完成再进入下一个阶段。
- 软件测试的生命周期(流程):需求分析,测试计划,测试设计/测试开发,测试执行,测试评估。
- BUG级别 (具体情况要看个公司的规定)
- 崩溃:系统无法正常运行。eg:死机,死循环,数据库锁死
- 严重 :系统可以运行但不稳定。eg:数据库插入错误,密码明文,数据泄露
- 一般:系统可以稳定运行,,但功能未全面实现
- 次要:属于建议类的,根据具体情况可以修改也可以不改
- 描述BUG的因素:测试版本号,测试环境,操作步骤,预期结果,实际结果
- 测试用例的设计方法
- 等价类:为了解决测试用例不能穷举的情况 把输入(特殊情况才考虑输出)划分为若干个等价类,从每一个等价类中选择一个测试用例,如果该测试用例测试通过,我们就说这个测试用例代表的等价类测试通过。 等价类分为有效等价类和无效等价类,依据针对输入是否为有意义的数据来划分,有效和无效的等价类都要测。
- 边界值(一般和等价类结合在一起使用) 针对输入或输出的边界进行测试用例的设计。
- 因果图:适用于有多个输入,输出依赖于不同的输入,步骤分为:
- 找出所有的输入与输出
- 理清楚输入与输出的关系
- 画因果图(恒等,与,或,非)
- 根据因果图画出判定表
- 根据判定表写测试用例
4.正交法:研究多因素多水平的一种方法
原理:根据正交性,选出输入的最优组合进行测试,分析这些测试的结果,以分析整个实验的结果。
因素:变量
水平:一个变量的取值
正交表的表示:L = N (CT) N是表的行数。N = (水平数 - 1)* 因素数 + 1 [适用于每个变量水平数相等]
正交表的性质:
- 每列中数据出现的次数一样多
- 任何两列中各有序对数出现的次数一样多
如何根据正交法设计测试用例?
- 找出因素,因素数,水平,水平数
- 根据因素数和水平数选择一个合适的正交表
- 根据正交表的性质填写正交表
- 设计测试用例,每一行为一个测试用例
- 补充认为可能的测试用例
5.场景设计法
6.错误猜测法:在以上方法都操作完之后,放在最后使用,不能单独使用