一、团队构成与工作
1、
项目经理
协调客户与用户之间的沟通,向各个项目组分配资源与任务
2、
产品经理
根据客户产品需求进行需求设计、需求变更,并安排等工作
3、
UI设计师
根据客户需求
来领导和协调
Web
界面的原型设计和正式设计
4、
软件开发工程师
包括:前端开发,
后端开发
(java,c++,php,python),
服务端开发
,(
数据库管理
)
软件工程师负责完成设计师的设计意图, 根据设计文档编写代码; 根据设计文档编
写单元测试代码,根据测试报告
BUG
记录修改
BUG。
软件测试工程师
实施工程师
负责软件产品安装调试和部署,完成项目相关系统工程工作,客户技术支持,编写使用手册,维护手册
7、
运维工程师
负责产品上线后的运行维护工作。
二、了解软件测试
1、
什么是软件测试
使用人工操作或软件自动运行的方式来检验它是否满足规定的需求。
正确概念:
(1)
测试是为了发现程序中的错误
(2)成功的测试是发现了至今为止尚未发现的错误
(3)测试并不仅仅是为了找出错误
(4) 没有发现错误的测试也是有价值的
错误概念:
(1)测试是为了证明程序没有错误
(2)软件开发完成后进行软件测试
(3)软件发布后如果发现质量问题,那是软件测试人员的错
(4)软件测试要求不高,随便找个人多都行
(5)软件测试是测试人员的事情,与程序员无关
(6)项目进度吃紧时少做些测试,时间富裕时多做测试
(7)软件测试是没有前途的工作,只有程序员才是软件高手
(8)通过测试达到零缺陷率
2、
软件测试目的
把尽可能多的问题在产品交给用户之前发现并改正
确保最终交给用户的产品功能符合用户的需求
确保产品完成了所承诺或公布的功能
确保产品满足性能和效率的要求
确保产品健壮和适应用户环境
建立软件质量的信心,度量和提高被测软件的质量。
3、
软件测试过程
需求分析=评审=>测试计划(方案)=>测试用例=>执行测试=测试报告
4、
软件测试阶段
SIT(开发阶n段)内部的测试人员
UAT(验证阶段)用户验收产品-第三方测试人员
5、
软件测试的原则
缺陷的集群性:28原则(80%的软件缺陷,聚集在20%的软件模块中)
杀虫剂悖论:相同方法重复测试,能效逐渐降低(应更换方法,使用交叉测试法)
穷尽测试是不可能的:软件的bug是无穷的,无法100%测试出来
没有失效不代表系统可用的:测试没有问题并不代表满足客户需求
6、
测试人员素质具备
必备:
测试计划、测试方案、编写用例、提交bug
、跟踪
bug
,编写测试报告
测试工具的使用
操作系统
编写代码的能力
数据库知识
业务知识、网络知识
辅助:主动沟通,清晰了解掌握需求逻辑,和专业的问题反馈。
胆大心细;相信自己,自己是专业的
不被别人绑架;要有职业标准,也要有自己的态度
对一切都要有怀疑的态度
责任心;站在公司和用户的角度考虑问题
三、软件系统
1、
B/S架构
(Browser/Server,浏览器/服务器模式)
Web端通过Web服器向数据库提取数据
2、
C/S架构
(client/Server客户端/服务器体系结构)
客户端经过简单处理后直接向数据库提取数据
3、
B/S架构和C/S架构区别
1
、客户端要求: C/S客户端的计算机电脑配置要求较高。
B/S客户端的计算机电脑配置要求较低。
2
、软件安装: C/S每一个客户端都必须安装和配置专用的软件。
B/S
不用安装任何专门的软件,只要有一个浏览器就可以。
3
、软件升级和维护 :C/S每一个客户端都要进行升级和维护。
B/S
客户端不必安装及维护。
4
、安全性:C/S相比B/S较为安全
四、软件测试的分类
1、
按是否看代码分
黑盒测试:看不见代码,不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试
白盒测试:看得见代码,知道产品内部工作过程,来测试程序结构和运行逻辑。
灰盒测试:综合测试
2、
按开发阶段分
单元测试:测试组成功能的每个小模块的代码
集成测试:测试由各模块组成的功能
系统测试:对产品全面测试
验收测试:交付测试,一般由用户或第三方进行。
3、
按是否运行分
静态测试:不运行软件情况下检查和审阅规范测试、软件模型测试、文档测试
动态测试:运行软件进行测试
4、
按是否手动测试分
手动测试:测试过程由测试工程师人工测试完成(功能测试)
自动化测试:使用软件来控制测试执行过程(性能测试)
5、
其他划分
冒烟测试:指初步地进行测试,并以此展示一些简单但足以影响软件运行的错误
随机测试:对被测软件的一些重要功能进行复测
安全测试:验证产品是否符合安全需求定义和产品质量标准的过程
探索测试:
α测试:内部人员、客户使用测试(内测)
β测试:交给最终用户测试 公司外部展开的测试(公测)