无锡企业建站做响应式网站的流程
什么是软件测试
- 软件测试它就是一个过程
 - 测试就是对软件的全方位进行全面的校验.
 - 通过测试技术验证软件是不是符合用户的信息.
 
测试和开发的区别
在工作上的区别:
 开发人员通过编程技能来开发和实现这个软件.
 测试人员通过测试技能来验证软件是否符合用户需求.
 在技术上的要求:
 开发人员更加注重深度,而测试人员更加注重广度.
🔥测试和调试的区别
目的: 调试是发现问题和解决问题, 测试是发现问题和验证问题.
 人员: 调试是开发人员来完成, 测试是测试 + 开发人员来完成(有一些白盒测试是开发人员完成的).
 阶段: 调试是在开发阶段, 测试贯穿整个软件的生命周期(在需求阶段就开始了).
 方法: 调试通过Debug,打印日志等. 测试通过白盒测试, 黑盒测试, 接口测试, 自动化测试等.
🔥测试人员需要具备的素质
非技术: 学习能力, 合作能力, 沟通能力, 抗压力, 文字表达能力
 技术: 编程能力, 编写测试用例能力.
 
需求
什么是需求
需求分为两种,一种为用户需求,另一种为软件需求或者功能需求.
 用户需求: 就是甲方提出的要求或者终端用户使用时需要实现的效果.
 软件需求: 详细描述了开发人员必须要实现的软件功能.
为什么要有需求
需求是开发的标准,也是测试人员编写测试代码的依据.
如何深入理解需求
多参加各种会议,会议中会对产品进行剖析,深入了解产品的细节.
 多阅读相关文档,(技术文档, 需求文档, bug库)
 
测试用例的概念
测试用例就是为了测试向被测试的系统提供的一组集合.里面包含了 测试环境, 操作步骤, 测试数据, 预期结果.测试用例是测试人员测试的依据.也可以减少测试工作的冗余度. 测试用例还是实行自动化的依据.
🔥🔥🔥bug的概念
bug就是程序没有实现用户合理的预期功能的要求.
如何描述一个bug
**1、发现问题的版本 **
 开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于
 统计和分析每个版本的质量。
 2、问题出现的环境 **
 环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是
 app项目,需要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。
 3、错误重现的步骤 **
 描述问题重现的最短步骤。
 **4、预期行为的描述 **
 要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需
 求提出的故障,能写明需求的来源是最好的。
 要相信:测试人员是最懂需求的。
 **5、错误行为的描述 **
 描述错误的现象。crash等可以上传log,UI问题可以有截图。
 6、其他
 某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。有些有优先级
 的分类,严重影响测试需要开发人员优先修改的,可以设置优先级为高。
bug的级别

 Blocker(崩溃)Critical(严重)Major(一般)Minor(次要)
bug的生命周期
● New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。
 ● Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。
 ● Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
 ● Rejected:如果认为不是Bug,则拒绝修改。
 ● Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
 ● Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
 ● Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
 无效的bug:open->closed open-rejected-closed
 
软件的生命周期
需求分析, 计划, 设计, 编码, 测试, 运行维护.
常见模型
瀑布模型
start -> 需求分析 -> 计划 -> 设计 -> 编码 -> 测试 -> end
 特点: 是线性的.
 优点: 每个阶段干什么都非常的明确
 缺点: 发现的问题太晚,会导致人力, 时间资源的浪费.
 适用: 比较小的项目.
螺旋模型

 特点: 软件进行到每一个阶段都会进行风险分析.
 优点: 风险分析可以避免一些问题暴露在线上.
 缺点: 风险分析失败会导致问题直接暴露在线上.
 适用: 适用与大型的,多风险的项目.
增量与迭代模型的区别
增量是逐快建造,迭代是精益求精. 就向画画: 增量是先画头再画身子,最后画腿. 而迭代是先画整体轮廓再细化.
敏捷
个体与交互重于过程和工具
 可用的软件重于完备的文档
 客户协作重于合同谈判
 响应变化重于遵循计划
 在每对比对中,后者并非全无价值,但我们更看重前者。
scrum
角色: scrum由产品经理, 项目经理, 研发团队(前端开发, 后端开发, 测试, 设计)
 
 工作流程:
 产品负责人负责整理user story,形成左侧的product backlog。
 发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出
 就是制定出这一期迭代要完成的story列表,sprint backlog。
 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每
 个任务都有明确的负责人,并完成工时的初估计。
 每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什
 么问题。
 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取
 得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达
 到持续改进的效果。
 
V模型

 特点是左边是开发,右边是测试,测试被分为许多类型.
 缺点是介入需求太晚了.
W模型

 W模型特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的
 W模型优点:**有利于尽早地全面的发现问题。**例如,需求分析完成后,测试人员就应该参与到对需
 求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度
 和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。
 W模型缺点:**测试和开发活动也保持着一种线性的前后关系. **上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。并不能拥抱变化,不适用于敏捷.
🔥🔥🔥软件测试的生命周期
需求分析 -> 测试计划 -> 测试设计, 测试开发 -> 测试执行 -> 测试评估
 
如何开始第一次测试
刚进入公司的准备工作:
 1、阅读所有项目有关的文档,包括:需求文档、设计文档、用户手册
 2、尽可能参加各种项目会议,了解项目的背景、人员组成、尽可能的了解需求和业务。特别针对业务
 专业性较强的项目,例如银行业务,需要了解各种业务知识,如高低柜、一二三类账户等、存款、贷款
 等。
 3、熟悉项目所使用的测试管理工具、配置管理工具,获取对应的地址和登录方式
 4、阅读已有的测试方案和测试案例
 5、阅读旧有的bug库,了解系统功能。尤其重要的是和现有的测试团队保持一致的故障定级原则
 6、了解公司的规范要求,特别是用例编写规范、用例执行规范、bug提交规范、测试工具工具使用规
 范等
 当第一次测试来临时,我们需要和组长确定:
 1、测试的计划是什么?
 2、测试的内容是什么?test case有多少?安排了几天执行?有没有自由测试的时间?
 3、我要测试的内容开发人员是谁?需求人员是谁?
 4、分配给我的测试内容是否需要特殊的测试资源?资源是否满足需要?
 在我们确认了以上内容之后,就可以开始测试的执行了
🔥🔥🔥当与开发产生争执时的解决办法
测试经常会遇到这些问题:
 这不是bug
 这个bug的级别太高了
 bug影响不大,暂不修改
 当遇到这些问题时,解决方式:
 1、先检查自身,是否bug描述不清楚
 2、站在用户角度考虑问题 应该让开发人员了解到Bug对用户可能造成的困扰,这样才能促使开发人员
 更加积极地、高质量地修改Bug。在争执时,可以问一句:如果你是用户,你可以接受么?
 **3、BUG定级要有理有据 **
 BUG定级时,不仅要参考BUG级别,还要考虑BUG是否会影响到流程,往往用户的BUG级别和我们的
 是有区别的,需站在用户的角度定考虑定位级别
 4、提高自身的技术和业务水平. 不光要提出问题, 最好也能提出解决方案
 5、开发人员不接受时,不要争吵
 6、发起三方讨论会
 
