关于读书的感受:
这本书是一本关于软件测试工程师面试指导的书,其实80%是介绍作为一个测试工程师需要的基础知识,以及工作中需要的一些知识技能;与其说是一本面试指导书,不如说是测试基础知识详解。而我读完这本书后,列了一个读书的大纲,整理了作者这本书的一个主要框架;由于作者主要做本地化测试方向,所以需要的部分知识会偏重于这方面,但是作为测试岗位来说,所用的测试方法、测试流程、测试思想都是一样的。
有些着重的地方,是一些我个人觉得比较重要的点,或者我自己欠缺的技能思想,都着重标识了;总之我总结的大纲都是这本书的大概知识框架,每个人读书都会读出来不一样的东西,也会有自己的侧重点,希望自己的这篇笔记大纲能给大家一些帮助。
一:入门要求
1.具备一些计算机专业知识
1.C语言:数据类型、运算符、数据、控制流、函数、指针、结构、头文件
2.c++:面向对象、类和对象、构造函数、继承、多态
3.操作系统:操作系统类型、进程、进程的同步和互斥、进程间的通信、线程、资源分配、内存 管理、磁盘分区、文件管理系统
4.数据结构:算法的时间复杂度和空间复杂度,线性表、栈、堆、队列、树的基本概念、二叉树、图的基本概念、排序
5.数据库:关系型数据库、表、索引、触发器、存储器、事物的提交和回滚、SQL语言、游标、数据备份、数据导入导出、权限控制
6.软件工程:软件工程概念、开发模型、需求分析、软件设计基本原理、程序流程图、软件测试的基本概念、单元测试、集成测试、功能测试和性能测试
7.网络:网络拓扑结构、osi参考模型、TCP/IP协议、以太网、常见网络设备
2.具备的一些积极品质
1.积极:做好自己的工作、考虑公共区间、与同事分享经验、多发言、多参加团队活动
2.团队合作能力:有意识的去关注项目进度和组内情况、愿意共享经验从别人那里学习、从团队出发,不过多计较、同时互助、虚心认同尊重他人、批评对事不对人、宽容对待新同事
3.耐心和细心
"""
关于入门的基本要求,我个人的理解的话。对于入门来说,个人的性格品质是更重要一些的,
个人的性格和测试这个岗位的契合,积极主动的推进项目很重要。至于计算机知识,我认为
是测试工程师的进阶所需要的储备,而且初级测试工程师,没有计算机知识也可以很好的
完成工作内容。
"""
二:如何找工作
1.简历的注意事项
1.个人信息要醒目
2.着重描写工作经验
3.描述对某技术/职业的理解
4.正式
5.对不同的职业和公司准备不同的简历
6.简历命名规范
2.笔试
1.题目类型:开发题、测试题、英语题(比较少)目前会有一些实践题目
2.注意事项:字迹整洁、不交白卷、可以申请更换试题、留下姓名等
3.面试
1.诚恳、谦虚、淡定
2.工作经历、技术面试、情景面试、人事面试
"""
关于这本书主要讲面试,实际上面试部分的内容占比并不多,所讲的很好不过中规中矩,
我想作者把大部分篇幅用来讲软件测试基础,应该也有其深层的用意在,告诉我们面试
中最重要的还是关于这个职业的相关知识技能。
"""
三:软件测试基础
1.测试思想
1.等价类划分
2.边界值划分
3.因果图和判定表
4.代码覆盖、条件覆盖
2.测试用例
1.简明扼要的标题
2.详细的步骤
3.正确的预期结果
4.注意事项:含混不清、步骤书写过于简单、没有写预期结果、多个用例混合在一个用例里等
3.提交bug
1.重现步骤
2.结果对比
3.级别定义
4.原因分析(如果可以分析出原因)
5.附图
6.注意事项:必须要可以重现、避免重复提交
4.bug跟踪:通过bug管理工具及时跟踪处理
5.性能测试
1.响应速度
2.吞吐量
3.cpu占用率
4.占用内存数和内存占用率
6.本地化测试
1.功能
2.界面
3.翻译不全
4.翻译出错
7.测试的根本:正确理解需求定义
1.产品的需求说明书
2.产品需要遵守软件规范
3.易用性的要求
8.测试要参与到整个研发过程
1.从需求调研、软件设计、发布后维护的阶段,都需要测试来参与
9.如何考虑的更加全面
1.自己多思考
2.多评审,大家给出建议
3.多看同事的测试文档,参考学习
4.多看书,看一下大咖的思路
5.多参加技术讲座,提高见识和思路
10.做好版本控制
1.专门人员做版本build
2.新版本做BVT(冒烟测试),通过的话再做接下来的测试
3.确定好版本信息
11.如何做测试计划
1.明确测试范围
2.测试策略:白盒,黑盒的分工、手工和自动化的分工等
3.测试思路:具体功能点、指标
4.测试进度的安排
5.测试资源的安排:人员、设备、软件
6.风险分析:容易遗漏的地方、测试的难点、时间风险等
12.应对测试任务分解后的风险(对于三不管地带的测试隐患)
1.了解整个产品的细节,不要只了解自己的模块
2.阅读其他人的测试计划和测试用例
3.多考虑用户的实际使用场景
4.安排一些探索性测试
13.改进测试的方法(提高测试的效果)
1.整个项目小组评审测试计划(开会前收集大家对测试计划的意见和建议,开会时讨论这些改进)
2.请开发人员来评审一些重要的用例,能降低一些bug的出现率
3.做Code Complete(类似于BVT)
4.做好BVT
5.定义用例的优先级
6.做性能测试:发现系统连接数、资源消耗、瓶颈
7.探险测试
8.保持改进,任何时候保持改进的余地
14.更专业一些
1.少提交虚假bug
2.少提交重复bug
3.穷追不舍,推动、驱动、多次的交流验证。在PM没有考虑全面时需要测试来驱动开发
4.重视交流,与PM和dev
5.分析错误原因,节省开发时间,增长自己的经验
6.发现问题后要重现一遍,不要急于提交
7.不要放弃不能重现的bug,做好记录
8.bug描述清晰无歧义
9.图片做好裁剪和标注
10.服从项目和商务策略
15.实例
1.功能测试
2.易用性测试
3.性能测试
4.UI测试
5.兼容性测试
"""
这里的软件测试基础知识中,我觉得比较重要的点,用蓝色标识着重标记了。实际上除了基础知识外,
我觉得比较重要就是,我们测试人员的想法。也就是我们要怎么保证产品交给我们测试后,上线后就是没有
问题的,测试该怎样从需求讨论到产品上线中的每个环节发挥自己的作用。
需求阶段:理解需求,并且确认需求具体细节,是否全面合理好用。
研发阶段:可以和开发沟通交流,关于需求的内容以及实现。
测试阶段:有了需求和研发阶段的沟通,可以规避:需求不合理、需求不全面、逻辑场景缺失等问题;
在具体的测试阶段,需要更全面的考虑多种情况,通过思考、评审等方面丰富测试场景;具体测试时
要针对模块功能的交界部分多留意,而测试中需要我们做的最多的事情就是:追着开发改bug,追着产品
对需求,追着leader催进度。
"""