IT公司技术部门结构划分:
产品部门:用户需求,界面原型(预期结果)
开发部门:编码,程序(实际效果)
测试部门:找Bug(比对实际结果与预期结果之间的差别)
运维部门:上线,维护
一、软件相关
1、什么是软件?
软件=程序+文档
2、软件的生命周期(软件是如何做出来的)
例如:盖房子
计划,需求,设计(概要设计,详细设计),施工,检测,使用
(1)计划(时间、人员、资源、风险评估)
(2)需求(功能需求、性能需求、安全需求、兼容需求等)
(3)设计(概要设计、详细设计)
(4)编码(C、C++、Java、Python等源程序,目的程序)
(5)测试(验证软件是否符合需求规格说明书,SRS)
(6)运维
3、软甲研发模型
(1)瀑布模型(时间必须从上到下)
100%需求------100%设计------100%编码-------测试------上线
优点:需求变更少,减少很多重复工作,质量大大提高。
缺点:周期很长
(2)敏捷开发模型(scrum,螺旋模型)
优点:开发 周期短
4、软件测试
(1)定义:
(2)测试目的:
正向测试;逆向测试
(3)软件测试的原则
所有的软件测试应该追溯到用户需求;
尽早启动测试工作(需求阶段介入测试工作)
穷尽测试是不可能的;
测试是有风险的;
并非所有的缺陷都值得修复;
bug的群集效应:发现的缺陷越多,说明存在的缺陷也会越多;
前进两步,后退一步;
5、软件项目组成人员
(1)项目经理
(2)需求分析人员
(3)设计人员
(4)编码人员
(5)测试人员
(6)QA
职责:
a.制定规范
b.监督项目团队是否按照规范工作
c.评审测试成果(测试计划、测试方案、测试用例、缺陷报告)
(7)配置管理人员
a.配置项=代码+文档
5、引入软件缺陷的原因
(1)需求
(2)设计
(3)编码
(4)其他