关于软件测试的知识要点
2008-07-24 12:11
232 查看
最近为小舅子找工作出谋划策,他的目标是软件测试工程师。 匆忙中给他做了一次模拟面试,面试中不小心也为自己整理了一下软件测试方面的理解。 遗憾的是我从来也没有真正意义上地做过测试工程师,估计近期的将来也没有这个机会, 所以赶紧把一些要点记录下来,以免日久生疏。 [测试思想] 质量意识(责任):站在客户的立场 好奇心(动力):探索所有的功能,深入理解系统内核 进攻(激情):多角度发现所有可能的问题,测试和开发之间是进攻和防守的关系 帮助(沟通):以帮助而不是找茬的心态与开发团队一起分析问题,协同工作 PS. 其中“进攻”一说来自一位好友,测试达人;“好奇心”一说来自51testing上的一个博客。 [测试工程] 测试目的:尽可能多地发现缺陷 测试阶段:测试计划、测试需求、测试设计、测试执行、测试报告 测试用例设计:测试环境,测试数据,执行步骤,期望结果 缺陷跟踪:提交、分派、修复、验证、审计;回归测试; 测试结束准则:严重缺陷数在一定范围内、测试用例执行完毕、或规定时间到(取决于项目/组织质量要求) 测试人员考核:没有可靠的定量指标(比如不能拿缺陷数来做),如何做到?也是一时讨论的热点。 [测试技术] 基础知识 单元测试,模块测试,产品测试,集成测试,系统测试,用户验收测试 功能测试,性能测试,压力测试,冒烟测试,猴子测试 内部测试,外部测试(客户试用) 白盒测试,黑盒测试 路径覆盖,条件覆盖,边界检测,etc. 三角形题目:给三条边长,判断是否能组成三角形,是直角还是等腰三角形等, 要求写出测试用例 技术热点 单元测试(以及用代码覆盖率来度量单元测试) 自动化测试(录制GUI脚本,网络抓包录制通信脚本) 每日构建(需要配置管理,自动化编译,自动化测试协同工作) 测试驱动开发 [测试经验] 技术经验 死锁 非法内存访问 死循环/栈溢出 内存泄漏/资源泄漏 内存页面错误以及性能问题 事务及其隔离级别 数据库锁 乱码 非技术经验 与开发人员沟通(对于严重问题和有争议问题先口头讨论再提交到缺陷列表,尤其是刚开始的时候不要提太多低风险的如界面操作相关的缺陷) 与项目经理沟通(关于缺陷的轻重缓急,以及坚持原则和斤斤计较) [质量体系] 质量定义:满足用户需求 质量属性:性能、可靠性、可用性、安全性、灵活性、etc. TQM QA/QC 人/过程/工具 缺陷发现越晚修改缺陷的成本就越高 质量是管出来的而不是测出来的:过程质量决定产品质量 按照西方的观点,真正意义上的管理又必须是量化的管理,因此需要做度量和审计 PS. 这里故意遗漏了测试工具方面的知识,我想它应该不属于核心知识体系。