一.软件团队的构成
项目经理
负责分配资源,协调与客户和用户之间的交往
需求分析员(产品经理)
根据客户需求进行建立最初的模型供客户最初确认
UI设计
根据客户的需求,画出界面的原型设计和正式设计
软件测试工程师
包括:前端开发,后端开发(java,c++,php,python),服务端开发,数据库管理
软件工程师负责完成设计师的设计意图,根据设计文档编写单元测试代码;根据测试报告BUG记录修改BAG
测试工程师
测试工程师负责执行测试,利用各种方法找到软件中存在的BUG,标注并提交
实施工程师
负责软件产品的安装调试和部署,编写部署方案,使用手册,维护手册,负责系统实施计划和规划
运维工程师
负责产品服务的稳定性,确保用户使用过程中的稳定性
二.什么是软件测试
使用人工或者自动化的方式检验它是否满足规定的需求
弄清预期结果和实际结果的区别
预期结果:客户的预期需求
实际结果:软件的实际运行结果
软件缺陷:预期结果和实际结果之间的差别
正确理解软件测试
测试是为了发现程序中的错误
测试并不仅仅是为了找出错误
没有发现错误的测试也是有价值的
成功的测试是发现了至今没有被发现的错误
错误理解软件测试
测试是为了证明程序没有错
软件开发后进行测试(违背了测试应尽早介入原则)
软件测试是测试人员的事情,与程序无关
通过测试达到零缺陷率
软件测试是没有前途的,只要程序员才是高手
项目进度吃紧时少做写测试,实际富裕时多做测试(违背了质量第一原则)
三.软件测试的目的
把尽可能多的潜在问题,在产品交给用户前找到并进行修改
确保交给用户的产品功能符合用户需求
提高软件质量,建立信心
总结:找出软件中各种潜在的缺陷,得以修复,避免重复错误造成商业损失,提高产品质量
立场不同,测试的目的不同
开发者:确认软件已经实现了用户的需求,证明软件中不存在错误,建立对软件质量的信心
用户/测试者:发现软件中隐藏的错误和缺陷
调试/测试
调试是建设性的/调试是破坏性的
分析错误的原因/重现错误
修改错误/定位错误(功能,需求,模块)
程序运行时检验程序功能/记录错误(截图等)
四.软件测试的原则
缺陷的集群性,错误发生集中发生的现象即28效应:80%的错误聚集在20%的模型中
杀