1.软件生命周期
(1) 计划:项目经理编写项目计划书,计划书内容 3W(who/when/what)多少人花多少时间做什么事
(2)需求分析:需求分析工程师 / 产品人员,与客户反复沟通,将客户的需求转化成专业的表达需求规格说明书(SRS)
(3)设计:系统架构工程师,设计软件的基本框架,概要设计说明书(HDL)
(4)编码:开发工程师,设计实现软件的思路,详细设计说明书(LLD),编写代码
(5)测试:测试工程师,检验实际结果与预期结果是否一致,需求是否有遗漏
(6)维护:技术支持工程师,版本更新,手机bug和新需求
2.软件测试的概念
找出软件的bug,提升软件质量,加深对测软件的认识(优点、瓶颈、问题)
3.软件测试的目的
证明软件可用,找bug,预防bug
4.缺陷bug
缺陷不仅仅指功能问题(界面、用户体验、颜色、相应时间....)
错误通常是人为导致的,错误在一定场景下触发成为缺陷,缺陷可能引发故障,故障
处理不好可能引发失效
注:缺陷、故障、失效的区别
1、缺陷是软件内隐藏我问题
2、缺陷诱发处理产生故障
3、故障不能很好处理就可能导致失效
5、研发组织(大公司职位分明,小公司身兼数职)
研发部门下面3个子部门:
开发部:需求分析师、系统架构师、设计(UI 数据库设计 美工)、开发人员
测试部:测试工程师、测试开发工程师、QC(兼职,本身做测试工程师)
质量部:QA(质量保证工程师)、CMO(配置管理员)
6.常用模型
(1)瀑布模型(适用需求全面且变更极少的情形,对项目周期要求不高OA系统)(记
特点:将软件生命周期各个阶段按照固定顺序从上到下依次
优点:应用广泛,流程清晰,易理解
缺点:测试介入较晚,前期的问题到后期才能发现,文档较多,项目后期才能看到研发成果,研发风 险较大
(2)V模型(适用需求变更不频繁的情形)(了解)
特点:瀑布模型的变种,将测试划分为多个阶段,并与相应开发阶段对应
优点:左边是开发活动,右边是测试活动,强调了开发和测试同等重要的思想
缺点:对测试介入时间指代不明确
(3)双V模型(记忆)
特点:一个V代表开发活动,一个V代表测试活动,开发和测试并行,测试设计和测试执行分离,先设计,后执行,测试设计和测试执行顺序相反
优点:测试介入较早,有利于发现和预防ug
缺点:测试设计对开发活动的依赖性较强
(4)螺旋模型(适合大型项目或软件的第一个版本) (了解)
特点:将项目分阶段实现,每个阶段可以看做是一个瀑布模型,增加了备选方案和风险分析
优点:增加了风险识别,用户参与度高,项目可控缺点:周期长
(5)敏捷模型(适合互联网项目,需求变更频繁的项目) (了解)
特点:将需求划分成小需求,每个小需求由相应的团队去完成,开发效率高,重沟通,轻文档,持续集成:利用一个工具(jenkins),进行自动化的合并,编译代码,打包成安装包,搭建测试环境,执行测试,并生成测试结果,发送给对应的责任人。
优点:能够快速开发出软件版本
缺点:对团队要求高,不适合不成熟的团队