一、软件公司的人员构成:
1.互联网企业:
互联网企业的技术开发部主要包括产品部、开发部、测试部、运维部等,而在这之中,有着不同的职位角色,主要责任包括:
架构师:
通常需要多年的经验,能够设计系统架构,并保证架构的稳定性、可扩展性、性能等多项指标的可用性与优越性。
产品部:
互联网公司的产品部通常来说提供产品需求,部分产品人员对接公司的实施工程师,及时反馈客户要求,提供完善产品的需求。
前端工程师:
与设计师和产品联系非常紧密,确保前端的可用性与易用性。
开发工程师:
实现功能开发,让功能可用、易用。
测试工程师:一般来讲,测试工程师更有可能成为架构师。
不管一家公司的规模多大,测试的工作都必须有人来干,在规模中等及以上的公司里,会有专门的测试工程师,他们就是专门从事开发完成后的测试工作。
运维工程师:
确保后台不出问题,确保服务器,网络出现了问题能够及时修复。
2.软件开发公司
软件开发公司与互联网企业类似,除去上述的几个基本部门外,软件开发公司一般会有业务部,专门来进行市场开发,从而接到更多的项目进行开发。
3.软件外包公司:
软件外包公司分为两种,一种是兼具软件开发和软件人才外包的公司,这种的公司的部门组成和软件开发公司相同,但是公司的人事部会与合作的公司进行对接,进行相关的人才资源共享;
而另外一种是专门进行人力外包的公司,这类公司通常内部设计部门,只需要挑选合适合作公司的人才进行情况了解和基本面试即可。
二、XX公司的运作流程(华为)
1.采集用户需求(产品经理+软件实施工程师)
2.编写基础版需求文档(产品经理/产品经理助理)
3.需求文档评审(产品经理+开发经理+测试经理+(客户))
4.沟通需求方,完成需求文档的修改(产品经理+客户)
5.下发需求文档至开发经理和测试经理
6.开发经理出具开发板需求文档,测试经理出具测试版需求文档
三、开发部门的运作流程:
1.需求文档部门内部评审
2.下发开发任务(开发经理)
3.开发人员进行编码工作
4.开发人员本地环境下代码自测
5.自测完成后合并代码至公司源码库
6.源代码打包部署至开发和测试环境
7.知会测试人员进行测试(showcase)
8.根据测试反馈进行bug解决
9.配合运维人员打包上线
四、测试部门的运作流程:
1.需求文档部门内部评审
2.下发测试任务(测试经理),测试计划及测试方案的制定。
3.测试人员根据需求模块分配进行测试用例的输出
4.测试用例评审
5.测试人员完成测试用例的修改,等待开发通知测试工作的开始
6.执行测试用例,提交bug
7.跟踪bug进行bug的回归
8.打包上线后进行回归测试(alpha测试)
五、软件测试的基本方法(测试的分类):
1.按测试阶段划分:
单元测试、集成测试、系统测试、验收测试(正式验收测试,Alpha测试,Beta测试)
2.按测试技术划分:
白盒测试、黑盒测试、灰盒测试
3.被测试对象是否运行划分:
动态测试、静态测试(文档检查、代码走查、界面检查)
4.按不同的测试手段划分:
手工测试、自动化测试
5.按测试包含的内容划分:
功能测试、界面测试、安全测试、兼容性测试、易用性测试、性能测试、压力测试、负载测试、恢复测试
6.其他测试
冒烟测试、回归测试、探索性测试(测试思维)