一、什么是软件测试
测试就是指在软件开发过程中,对已经开发的软件应用程序进行评估和验证的过程。软件测试就是验证软件产品特性是否满足用户的需求,通俗的来说就是找BUG。
二、为什么会有测试
测试是软件产出的最后一道保障,就像守门员一样,是保障软件质量的。
三、软件测试与调试的区别
- 目的
- 调试:发现问题,解决问题。
- 测试:发现问题。
- 参与角色
- 测试由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行。
- 调试由开发人员完成。
- 执行的阶段不同
- 测试贯穿整个软件开发生命周期。
- 调试一般在开发阶段。
四、优秀的测试人员需要具备的素质
- 技能
- 测试用例设计能力
- 编程能力(编写测试工具,自动化测试)
- 快速学习的能力
- 非技能
- 沟通、合作
- 文字表达能力(编写测试文档)
- 抗压能力
- 有责任感
五、衡量软件测试结果的依据—需求
(一)需求的定义
用户需求: 可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。
软件需求: 或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。(软件需求是一个文档,详细描述用户需求如何实现。)
(二)测试人员角度看需求
在具体设计测试用例的时候,首先需要搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例。
(图片来源于网上)
六、测试用例
测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
比如:下面是一个测试登录功能的测试用例
测试环境:
- 操作系统:Windows 10
- 浏览器:Google Chrome(版本:94.0.4606.71)
- 应用程序版本:1.0
- 网络连接:稳定的互联网连接
输入:
- 有效用户名:user123
- 有效密码:password123
执行条件:
- 应用程序已经安装并启动。
- 用户已经注册并拥有有效的帐户。
预期结果:
- 预期成功登录,并进入用户的个人资料页面。
执行步骤:
- 打开 Google Chrome 浏览器。
- 在地址栏中输入应用程序网址。
- 导航到登录页面。
- 输入有效用户名 "user123"。
- 输入有效密码 "password123"。
- 点击登录按钮。
- 验证是否成功登录。
- 确认用户是否被导航到其个人资料页面。
七、BUG
(一)什么是 BUG
当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。换句话说就是程序没有正确的实现需求。
(二)如何描述一个 BUG
- 发现问题的版本:开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。
- 问题出现的环境:环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是app项目,需要描述机型、分辨率、操作系统版本等。
- 错误重现的步骤:描述问题重现的最短步骤。
- 预期行为的描述:以用户的角度来描述程序的行为是怎样的。
- 错误行为的描述:描述错误现象。
(三)如何定义 BUG 的级别
- 崩溃(Blocker):阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。
- 严重(Critical):系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。
- 一般(Major):功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。
- 次要(Minor):界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。
(四)BUG 的生命周期
- New:新发现的 Bug,未经评审决定是否指派给开发人员进行修改。
- Open:确认是 Bug,并且认为需要进行修改,指派给相应的开发人员。
- Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
- Rejected:如果认为不是 Bug ,则拒绝修改。
- Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
- Closed:修改状态的 Bug 经测试人员的回归测斌验证通过,则关闭Bug。
- Reopen:如果经验证 Bug 仍然存在,则需要重新打开 Bug ,开发人员重新修改。
八、软件的生命周期
软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。如果把软件看成是有生命的事物,那么软件的生命周期可以分成6个阶段,即需求分析、计划、设计、编码、测试、运行维护。
九、软件测试的生命周期
生命周期: 需求分析、测试计划、测试设计、测试开发、测试执行、测试评估。
- 需求分析阶段:看需求是否完整,需求是否正确。
- 测试计划阶段:根据需求编写测试计划、测试方案。
- 测试设计、测试开发:写测试用例、编写测试工具(手工测试用例、自动化测试用例)。
- 测试执行:执行测试用例。
- 测试评估:产生测试报告。
十、与同事发生争执怎么办
测试人员最常遇到的是和开发人员的PK,一般会遇到以下几种情况:
- 这不是 bug。
- 这个 bug 的级别太高了。
- bug 影响不大,暂不修改。
这时候该怎么做呢?
- 先检查自身,是否是 Bug 描述不清楚。
- 开发人员不接受时,不要争吵。
- 站在用户角度考虑问题,让开发人员了解到 Bug 对用户可能造成的困扰
- 提高自身的技术和业务水平,不光要提出问题,最好也能提出解决方案。
- 第三方会议,可以讨论问题要不要解决、谁解决、什么时候解决。