玩命加载中 . . .

软件测试基础


软件测试是什么

使用人工和自动化手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差距。

做软件测试的目的:

  • 软件测试为了发现程序(软件)存在的代码或业务逻辑错误
  • 软件测试为了检验产品是否符合用户需求
  • 软件测试为了提高用户体验 —比较容易忽略

软件测试分类

黑盒测试:指在测试过程中只关注输入与输出,如果输入一个测试数据,输出的结果是正确的,我们就认为这个功能是正确的,也叫数据驱动测试。

白盒测试:不仅仅关注输入与输出的结果是否正确,同时还关注程序是如何处理的。

冒烟测试:对象是每一个新编译的需要正确测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作(测试主流程)。

功能测试:测试软件的功能是否符合需求,通常采用黑盒测试方法,一般由测试人员独立执行。

界面测试:简称$UI$测试,测试用户界面布局是否合理,整体风格是否一致,界面文字是否正确命名是否统一页面是否美观,文字图片组合是否完美等。

安全性测试:测试该系统防止非法入侵的能力。

兼容性测试:测试软件与其他软件硬件兼容的能力。

按测试执行阶段划分——单元、集成、系统、验收(正式验收、Alpha测试、Beta测试)

Alpha测试:一种前期的用户测试,软件产品刚研发出来前期,公司内部组织员工及部分真实用户,模拟实际操作环境(测试环境)下进行验收测试(内测)。测试和开发在场。

Beta测试:一种后期测试,此时系统已经通过内部测试团队的测试,大部分错误已经改正,即将正式发行。在一个或多个真实环境下发布版本,真实用户测试(公测)。测试和开发不在场。

回归测试:指错误被修正后或软件功能、环境发生变化后进行的重新测试,确认修改部分不会对其他功能造成影响。

软件测试基本流程

需求评审->需求分析->写测试计划->提取测试点->编写测试用例->冒烟测试->执行测试->提交bug->写测试报告

测试需求分析阶段:参与需求评审会议。阅读需求、理解需求,主要就是对业务的学习,分析需求点。

测试计划阶段:主要任务是编写测试计划,参考软件需求规格说明书、项目总体计划,内容包括测试范围(来自需求文档)、进度的安排,,人力物力的分配,整体测试策略的制定,和风险的评估与规避措施有一个制定,一般由测试负责人编写,当然我们可能也会参与相关评审工作。

测试设计阶段:主要任务是编写测试用例,会参考需求规格说明书(原型图)、概要设计、详细设计等文档,有不明确的也会及时和开发、产品经理沟通。用例编写完成后会进行评审。

测试执行阶段:首先会搭建测试环境,执行预测(冒烟测试),以判定当前版本可测与否,如果预测通过,进入正式测试,遇到问题提交Bug到缺陷管理平台,并对Bug进行跟踪,直到被测试软件达到测试需求要求,没有重大Bug,测试结束。

测试评估极端:出测试报告,对整个测试的过程和版本质量做一个详细评估,确认是否可以上线。

测试需求分析

分析角度:功能、界面、易用性、兼容性、安全、性能/压力(功能完整性)

目的:提取测试点

测试点思路步骤如下:(正常+异常)

1、正常功能:是否可以正常提交

2、单个输入验证(正常+异常):重点输入项

规则:按顺序从上至下,对每一个输入进行验证

  • 数据长度、数据类型验证、必填项验证、重复项验证
  • 限制约束验证 - 查看需求
  • 隐性需求:充分熟悉产品业务/背景,挖掘隐性需求

3、功能交互验证

模块之间传递的信息和数据,对存在功能交互的功能项

4、非功能性测试

界面、易用性、兼容性、安全性、性能压力

几种常见的用例设计方法

一、等价类设计方法

1、等价类设计方法是一种典型的、重要的黑盒测试方法,是指某个输入域的子集合。在该子集合中,所有输入数据对于揭露软件中的错误都是等效的。等价类划分为有效等价类和无效等价类。举例:(微信红包)按数据范围划分、按数据类型组成划分、按是否为空划分。

2、等价类划分用例设计原则

  • 划分有效及无效等价类,为每一个等价类规定一个唯一的编号;
  • 设计一个新的测试用例(数据),使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
  • 设计一个新的测试用例(数据),使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有等价类都被覆盖为止。

3、基本用例设计

  • 按数据范围——有效:0.01~200小数位数不超过两位(1);无效:<0.01(2)、>200(3)、0.01~200超过两位小数(4)
  • 按数据类型组成划分——有效:数字(5);无效:非数字(6)
  • 按为空划分——有效:不为空(7);无效:为空(8)
测试用例标题 测试用例(数据)设计 测试覆盖 边界值
输入正确的红包金额,正常发红包 100.66 1、5、7
输入小于0.01 0 2
输入大于200 300 3
输入0.01~200中超过2位小数 100.023 4
输入非数字 字母/中文/字符 6
不输入 不输入 8

二、边界值分析法

1、定义:边界值分析法是对等价类划分法的一个补充,边界值一般都是从等价类的边缘值去寻找。边界值分析的基本思想:正好等于、刚刚大于、刚刚小于边界的值作为测试数据。注意,0是一个特殊值,我们在考虑边界值的时候同时也要考虑这个特殊值。数值类的输入,负数。

2、边界值的作用:人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围内部。因此针对各种边界情况设计测试用例,可以查出更多错误。

3、举例子:

Eg:比如我们生活中大家熟悉的微信红包:最小金额0.01元,最大金额200元
边界值:0、0.01、0.02、199.99、200、200.01 (至少选取2个边界值 有效+无效)
特殊值:负数
Eg:一个输入文件应包括2~255条记录
边界值:1、2、3、254、255、256
特殊值:0

三、场景法

1、定义:通过场景描述的业务流程(业务逻辑),也包括代码实现逻辑,设计用例来遍历场景(路径),验证软件系统功能的正确性。

2、如何使用场景法

  • 2.1 画出流程图
    • 矩形:表示步骤(操作、输入、输出结果)
    • 菱形:判断——是、否
    • 箭头:流向
  • 2.2 场景全部进行用例覆盖

注意:场景法的重点是测试流程,因此每个流程一个用例验证即可,流程测试没有问题并不能说明系统功能没有问题,还需要针对单步的功能进行测试,只有单个功能点和流程测试,才算是充分的测试。

四、错误推测发

基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。它的要素共有三点,分别为:经验、知识、直觉。(白话:反推法)

测试用例

1. 什么是测试用例

测试用例是为项目需求而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序是否满足客户需求。可以总结为:每一个测试点数据设计步骤设计

2. 测试用例的八大要素

——完整的测试用例

1、用例编号:产品名_测试阶段(IT | ST | UAT)_测试项_xxx(英文)
2、测试项目:对应一个功能模块(细分功能)
3、测试标题:直接对测试点进行细化得出,输入内容+结果,统一功能模块标题不能重复(来自测试点)
4、重要级别:高/中/低 (核心功能-高,次要功能-中,界面-低)
5、预置条件:需要满足一些前提条件,否则用例无法执行
6、测试输入(数据):需要加工的输入信息,根据具体情况来设计(跟步骤结合起来一定要具有指导性意义)
7、操作步骤:明确给出每个步骤描述,执行人员可以根据该步骤完成执行工作
8、预期结果:明确预期输出比对实际结果,来判断被测对象是否符合需求。(预期结果唯一,不能出现“是否活着”)
9、实际结果

bug的类型及等级判断

1、用户输入正确的用户名和密码不能登录网站(代码错误、同时大量用户访问可能是性能问题)

2、客户需要有充值功能,但是网站没有做(产品没有——设计缺陷、产品有但开发没做——代码错误)

3、网站充值后,出现金额错误(代码错误)

4、在某购物APP上进行商品搜索时,闪退回到手机桌面。 (代码错误、性能问题)

5、在某购物APP上进行商品搜索时,手机卡死(代码错误、性能问题)

6、关闭按钮在弹窗左侧(设计缺陷)

7、APP某个图标显示太小或者像素失真(界面优化)

8、某个提示语需要改进一下,用户对专业属于不太懂(界面优化、设计缺陷)

9、忘记密码,功能没有实现(代码错误)


文章作者: Jack Tim
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jack Tim !
评论
  目录