软件测试技能与评估

软件测试技能与评估

1. 测试理论

  • 良好的测试理论基础,可以撰写优秀的测试文档,进行高效的测试实践
    • [ ] 可以写出优秀的测试计划:突出测试重点和测试场景,选择合适的测试方法和策略
    • [ ] 可以写出优秀的测试报告:用例执行和缺陷总计、需求的能力描述、需求潜在的风险
    • [ ] 可以写出优秀的测试用例:标题够简洁直接、步骤和指望值清晰、前置条件明确
    • [ ] 可以写出准确的缺陷报告:标题,重现步骤,失败的用例步骤。。。
    • [ ] 知道软件的生命周期、软件产品从零到有、软件开发都须要什么样的角色
  • 有多种类型软件测试的经验,可以胜任各个阶段的软件测试工做
    • [ ] 有 WEB 和 APP 测试经验
    • [ ] 有 系统测试 验收测试 冒烟测试 集成测试 的经验
    • [ ] 知道 这些经验的坑: WEB 和 APP 测试的不一样侧重点
    • [ ] 知道 不一样的测试阶段,要求不一样的测试重点
  • 掌握多种测试设计的方法,有经常使用的测试套路结合设计方法进行用例编写
    • [ ] 测试设计方法:等价类、边界值、正交试验法、流程法、断定表
    • [ ] 根据你掌握的测试设计方法,能够现场举例子:根据一个需求写测试用例
    • [ ] 综合的使用测试设计方法,完成对需求的测试计划
  • 有效的管理测试用例,可以实施多个版本和回归测试的测试用例库和用例套件管理
    • [ ] 多个版本的产品,可以按执行版本执行测试用例,禅道|测试|版本
    • [ ] 可以在禅道中建立测试用例库,根据测试用例库,快速的完成测试用例
    • [ ] 明白测试套件的做用,能够在自动化测试和接口中使用测试套件
    • [ ] 能够在回归测试中,使用禅道的测试套件
    • [ ] 明确测试用例的编号的做用,追踪缺陷,管理好测试用例
  • 理解软件质量模型,并根据软件质量模型进行软件测试实施的模型建设
    • [ ] 明白软件质量模型的6大特性是什么
    • [ ] 根据软件质量的6大特性,结合需求,划分出来需求的测试范围
    • [ ] 根据软件质量的6大特性,结合产品,划分出来产品须要进行的测试类型

2. 项目实践

  • 具备多个基于 Scrum 的敏捷项目的测试实践,具备驱动敏捷测试的背景能力
    • [ ] 懂得敏捷测试的大概流程和特色,知道 Scrum 框架:3个角色,仪式、术语
    • [ ] 知道敏捷测试的关键点:需求划分任务、需求分解用例、迭代的长度
    • [ ] 懂得敏捷测试对测试人员的要求:会自动化测试?懂代码?测试文档有什么不一样?
    • [ ] 具有在敏捷测试中的优点:会代码、讲究效率、禅道清楚
  • 使用禅道结合敏捷项目管理,将项目的迭代与测试管理同步进行
    • [ ] 禅道的产品、建需求、需求评审、需求的版本
    • [ ] 产品的流程配置:开发+测试?只有测试?
    • [ ] 禅道的权限管理
    • [ ] 禅道配置流程:产品项目测试?产品迭代测试?
    • [ ] 产品的计划和路线图
    • [ ] 迭代的需求、需求分解任务、任务录入工时、燃尽图
    • [ ] 需求分解测试用例、测试用例在测试版本的执行
    • [ ] 测试套件的使用
  • 了解敏捷项目的软件测试度量标准,可以推进现有项目专项敏捷的实践
    • [ ] 自动化测试的用例在总的用例中所占的比例,不一样的测试阶段比例不一样
    • [ ] 什么样的缺陷务必在该迭代中修复,哪些是能够在之后的迭代中完成
    • [ ] 明白测试度量的做用:评估团队的能力;评估产品的能力
    • [ ] 缺陷漏测率:( 客户发现的 Bug ) ÷ ( 团队发现的 Bug + 客户发现的 Bug )
  • 根据用户故事和需求验收标准展开分析,拆分任务,编写测试用例执行敏捷测试
    • [ ] 懂得用户故事的写法
    • [ ] 会用禅道根据需求,分解成任务:指派(认领)、估计时间、录入工时
    • [ ] 禅道根据需求,分解测试用例
    • [ ] 会用禅道进行提测、在测试版本中关联用例:按需求关联、按测试套件关联
  • 具备在项目中对软件缺陷进行定位和分析的能力,辅助开发人员分析 Bug 的复现规律,查找缘由
    • [ ] 有本身的套路,对缺陷进行分析和定位:根据场景找出问题的地方、根据前端、数据库、抓包来分析
    • [ ] 总结缺陷的复现的规律
    • [ ] 概括汇总相似的Bug:同一种操做,同一处控件
    • [ ] 很好的跟踪Bug,与开发人员保持良好的沟通
    • [ ] 在找到比较密集的需求中找到密集的Bug,那就继续找,还有Bug。Bug的集中分布原理。

3. 测试方法

  • 有比较丰富的软件测试手段,具有多种测试方法相结合的测试思路和测试执行能力
    • [ ] 习惯用两种或者两种以上的测试方法进行结合,来解决问题
    • [ ] 能够用的测试方法:目测、写SQL语句检查数据、抓包、用Python写基础的工具、用Linux去检查
    • [ ] 能够作的测试方法:代码扫描评审、集成测试、抓包检查通讯数据、自动化测试、接口测试、部署测试、数据库表测试
  • 具备静态测试和白盒测试经验,可以依据编程规范实施静态代码评审,可以对业务进行数据库层面测试
    • [ ] 明确知道代码和编程规范,根据编程规范作代码评审,可以发现常见的代码错误
    • [ ] 会用 SVN/Git 找出代码变动的部分,对变动的部分进行代码扫描评审
    • [ ] 会写 查询 SQL 的脚本,明白条件的过滤,懂得数据库的表导出文件
    • [ ] 会用 Python 写测试脚本,对数据库的表里面的字段和记录进行对比
    • [ ] 对数据库作导入导出操做,理解数据库的备份,能够准备测试数据,也可以作到数据还原
  • 对软件功能测试进行测试设计,从测试范围、测试策略、测试重点和测试场景等维度肯定测试方案
    • [ ] 测试计划的编写,知道什么样的文档是优秀的文档。什么内容应该列入什么部分?
    • [ ] 能够讲解测试计划,描述你的测试方案
  • 有基于 WEB UI 的自动化测试经验,可以根据具体产品设计软件自动化测试框架,进行自动化测试
    • [ ] 知道 Selenium 实际上在测试中用到的 类,和类的方法:WebDriver,Select,WebElement
    • [ ] WebElement 类的方法: click() send_keys() clear() text get_attribute()
    • [ ] WebDriver 类的方法: get() delete_all_cookies() add_cookie() find_element_by_xx()
    • [ ] 知道 unittest 实际上在测试中用的 类:TestCase, TestSuite, TextTestRunner, HtmlTestRunner(第三方)
    • [ ] 知道 unittest 在测试中用到哪些断言:assertTrue, assertEqual, assertIn
    • [ ] 根据需求,分析出来业务,和测试的步骤、断言
    • [ ] 可以根据需求,准备测试用例的数据:格式和数据自己
    • [ ] 业务的划分,PO 的使用:准备多少个Page,彼此之间的关系,Page里面的方法
    • [ ] 明白封装的重要性:封装的只有:BoxDriver, CsvHelper, DbHelper
    • [ ] 明白封装是由于代码的安全和代码的可靠性
  • 有性能测试的测试执行经验,具备实施性能基准测试、压力和负载测试的能力。
    • [ ] 理解性能测试基本的操做:参数化?关联?集合点?和应用场景。
    • [ ] JMeter导出来的格式 jmx 的数据内容:XML,基本配置项。最后会修改 jmx 的内容
    • [ ] 线程组的定义,配置?
    • [ ] 会设置性能测试的断言
    • [ ] 会计算须要模拟的并发用户数
    • [ ] 会用 Badboy 录制请求
    • [ ] 会分析服务器的性能数据
    • [ ] 懂得性能指标:吞吐量,TPS,响应时间,CPU,IO,内存
  • 具有扎实的面向对象的编程基础,可以用代码开发基础的测试工具,辅助手工测试。
    • [ ] 明白类,和对象。对象是由类的实例化的结果
    • [ ] 知道类的继承和使用,构造方法的应用
    • [ ] 用编程的方式编写一个类,去访问数据库
  • 有 WEB 接口的测试经验,理解接口测试的出发点和测试点,结合测试设计方法进行接口测试。
    • [ ] 比较清晰的描述 HTTP 协议,请求和响应的格式,内容。
    • [ ] 什么是 Web 接口?Web 接口的被测试的对象是?数据格式 JSON
    • [ ] 根据 API 文档分析接口:方法、URL、参数、返回值
    • [ ] 会使用 接口测试工具进行接口的请求,抓取结果,对结果进行断言
    • [ ] 会根据参数,对接口测试进行设计,覆盖参数的请求

4. 职业素养

  • 很是敏锐的观察力,可以敏感的觉察出测试点和可能出现的风险,从界面到业务逻辑,都能细致分析
  • 追求专业的工做方式,在测试中保持规范,不管是文档编写、代码编写仍是测试用例,都按规范进行
  • 持续学习的能力和态度,具备本身良好的学习习惯和学习方法,比较迅速的接受新的知识
  • 问题解决思路的推崇者和实践者,可以作到问题解决的方式做为出发点,分析解决工做中遇到的阻碍和困难