要讲的内容:
1. 认识软件
2. 介绍做软件的团队;
3. 介绍软件的生命周期
4. 介绍软件测试;
5. 介绍软件的研发流程;
一、认识软件
叫法:
区域不同,叫法不同
软件
软体
software
在不同的设备上,叫法不同:
在pc机:
软件
在移动端(手机,平板):
app
application应用
软件的定义:
官方定义:
软件是指按照特定顺序组织的计算机指令和数据的集合;
简单理解为: 软件是为了模拟生活工作中的一些情况,把线下的搬到了软件上,实现了特定目的,提供了特定功能,由代码做出来的这样一个东西;
提高了生活工作的效率;
软件是一个特殊的东西;
因为软件必须依赖于硬件设备而存在,不能单独存在。
软件的分类:
整体可以分为三大类:
1.系统软件
针对系统软件,测试人员必须要会使用即可;
操作系统就是系统软件;
System software系统软件
按设备先分:
pc端
以图形化界面为主,命令行为辅的操作系统
例如:windows系列的;苹果的操作系统
有图形,有图标的,主要是通过在图标上操作来使用设备(例如:电脑);
比较简单
以命令行为主,图形化为辅的操作系统
例如:Linux\unix\solaris等等
是通过一个一个命令来操作使用设备(例如:电脑)
先简单比较一下:命令行和图形化操作上的区别
拿windows操作系统为例来进行比较;
如何进入windows的命令行:
左下角开始–>搜索:输入 cmd command(命令)
通过一个一个的命令来使用电脑的;每个命令有特定的功能
要记住的命令:
切换磁盘:
盘符名: 回车
ipconfig
查看当前设备的ip地址;
ping
ping 对方设备的IP地址
判断自己的设备跟其他人的设备是否是通的;
移动端
安卓、ios 等等
2.应用软件
针对应用软件; 测试人员必须要会测试;
Application software应用软件
在操作系统之上安装使用的软件; 统一称之为应用软件;
可以按照架构来进行分类:
B/S架构的软件
例如:淘宝网站,百度网站等等
Browser/Server 即:浏览器/服务器的软件
凡是用浏览器访问的网站都是B/S架构的;
分为两端: 客户端、服务端
客户端:用户使用的那一端; 即:浏览器
服务端: 就是网站
C/S架构的软件:
例如:QQ、微信等等
Client/Server 即:客户端/服务端的软件
分为两端:客户端、服务端
客户端: 用户使用的那一端; 需要在用户的设备上安装一个客户端软件,然后才能跟服务端登录使用的; QQ客户端
服务端: QQ服务端;在腾讯公司
中间件:
介于系统软件和应用软件之间的那种软件; 一般主要是开发人员会使用到;
二、 做软件的团队: 又叫做项目组 project
软件的团队有大有小,包含的成员会不太一样;
按照规范的来介绍
成员:
1.项目经理:
做管理; 管理整个项目组,让整个项目顺利的开展工作
让项目可以按照规定的时候完成; (项目计划文档)
2.开发
开发经理、开发组长、开发人员(高级、中级、初级开发工程师)
做软件的
代码文档
一般都是同时参与一个项目;
3.测试
检测软件质量的;
用例文档,方案文档等等
一般都是同时参与一个项目;
4.需求人员
负责跟客户沟通,了解客户的要求,并且把要求记录下来,写到文档中(需求文档);
挖掘需求,挖掘客户需求;多挖的;
5.QA
一般都是同时参与多个项目
质量管理员(Quality Administrator)
主要是负责来制定一些工作规范的;
6.CMO
一般都是同时参与多个项目
配置管理员(Configuration Manage Operator)
主要是负责管理项目组的文档的;
维护人员
类似于售后
三、 软件的生命周期
生命周期指的是软件从无到有,到做出来,到使用等的这样一个过程;
软件的生命周期可以分为6个阶段:
计划—>需求分析–>设计–>编码–>测试–>发布维护
计划:
指的是项目计划;
写需要多少人,需要多少开发,需要多少测试,需要多长时间; 成本,盈利等等
项目过程中有没有可能遇到什么突然问题,等等
项目经理的
需求分析
需求人员(产品人员) 可以是一个专职的人, 也可以是其他岗位的人兼职
派人跟客户进行沟通,挖掘客户真实的需求;考虑需求的合理性;并且把客户要求写到文档中(叫做需求文档, 规范叫 “软件需求规格说明书”)
设计
开发人员;在设计之前开发经理是要写开发计划的;
设计界面,设计模块,设计功能; --在做软件之前,要先想好;
编码
开发人员
按照前面设计好的,开始动手做软件;—真的把软件做出来,用代码做出来;
测试
测试人员
负责检测软件的质量,让质量符合客户的要求;
发布维护
就是将做好的,测完的,质量合格的软件,给到客户,让客户使用;使用过程中有疑问再进行维护;
维护人员
四、软件测试
什么是软件测试: 软件测试是指采用人工的活着自动化的测试方法来检测软件质量的这样一个过程;
了解的软件测试:
1. 软件测试是有方法的
例如: 人工(手工测试) 和自动化测试方法; 等等
2. 软件测试是有目的的
软件测试的目的就是为了找问题;
问题又叫做缺陷,又叫做bug
软件测试的目的是为了证明软件是可用的; 证明软件质量是达标的;
软件测试的目的可以是为了预防问题;
测试人员要提早介入,提早进行测试;
建议测试人员要从需求分析开始介入
3. 软件测试是有过程的
先写测试计划—>设计测试方案—>测试用例—>按照用例测软件(真的到软件上测试)
五、介绍软件的研发流程
研发流程指的就是做软件的过程;
又叫做研发模型
研发流程有串行的流程, 也有并行的流程
串行的流程: 瀑布模型 、螺旋模型
有严格的先后顺序;
瀑布模型:
严格的按照“计划–>需求分析–>设计–>编码–>测试–>发布维护”这个顺序来做软件
缺点:
-
效率低
-
客户没有参与感;不了解软件做的情况
螺旋模型
改进点:让客户可以参与到每一个环节
缺点:效率低
并行的流程: 双v模型, 敏捷模型
双V模型:
改进点: 尽可能的让耗时比较长的工作,尽量并行开展;节约时间;提高效率
耗时最长的是开发的工作
其次是:测试人员的工作
项目计划–>需求分析–>开发:写开发计划,写开发设计,写开发的代码–》
–>测试: 写测试计划,写测试方案,写测试用例 —>按照用例在软件上进行测试 —>发布维护