- 什么是软件
程序:实现某种功能的指令集合 列如Ctrl+c 是复制
文档:软件在开发 使用和维护过程中产生的图文集合
软件测试=程序测试+文档测试
- 软件的分类
如windows、Linux、UNIX等,还包括操作系统的补丁程序及硬件驱动程序,
都是系统软件类
- 应用软件
工具软件、游戏软件、管理软件
- 软件项目的构成
12
项目经理:项目经理负责分配资源,确定优先级,协调与客户和用户之间的交往。
构架设计师:构架设计师负责在整个项目中对技术活动和工件进行领导和协调。构架设计师要为各构架视图确立整体结构:视图的详细组织结构、元素的分组以及这些主要元素组之间 的接口。因此,与其它角色相比,构架设计师的见解重在广度。
- 需求分析员(产品经理)
业务分析员通过概括和界定作为建模对象的组织来领导和协调业务用例建模。(个人观点:确认客户的需求与客户沟通)
- 软件设计师
设计员定义一个或几个类的职责、操作、属性及关系,并确定应如何根据实施环境对。它们加以调整。此外,设计师可能要负责一个或多个设计包或设计子系统,其中包括 设计包或子系统所拥有的所有类。 编写部分模块设计文档和代码,检查软件工程师编写的模块代码。
- UI设计师
界面设计人员通过以下方法来领导和协调 Web 界面的原型设计和正式设计:获取对Web 界面的需求(包括可用性需求),构建 Web 页面原型,使 Web 界面的其他涉众(如最终用户)参与可用性复审和使用测试会议,复审并提供对 Web 界面最终实施方案(个人观点:根据客户需求设计界面主要和开发和测试项目经理沟通)
- 软件开发工程师
前端开发,后端开发(java,c++,php,python)),服务端开发,(数据库管理)软件工程师负责完成设计师的设计意图,根据设计文档编写代码; 根据设计文档编写单元测试代码,根据测试报告 BUG 记录修订 BUG ,完成客户的需求。
- 实施工程师
负责软件产品安装调试和部署,完成项目相关系统工程工作,负责客户技术支持,负责编写系统部署方案和使用手册、维护手册,负责系统实施计划和规划。
- 运维工程师
运维工程师最基本的职责都是负责服务的稳定性,确保服务可以 7*24H不间断地为用户提供服务。在此之上运维工程师的主要工作职责如下:
1. 质量:保障并不断提升服务的可用性,确保用户数据安全,提升用户体验。
2. 效率:用自动化的工具/平台提升软件在研发生命周期中的工程效率。
3. 成本:通过技术手段优化服务架构、性能调优;通过资源优化组合降低成本、提升ROI。
- 什么是软件测试
使用人工操作或软件自动运行的方式来检验它是否满足规定的需求 弄清预期结果与实际结果之间差别的过程。
预期结果:指用户的预期结果(客户需求)
实际结果:指的是软件的实际运行结果
软件缺陷:预期结果与实际结果之间的差别
- 正确理解软件测试
1测试是为了发现程序中的错误。2成功的测试是发现了至今为止尚未发现的错误,3测试并不仅仅是为了找出错误,4没有发现错误的测试也是有价值的。
- 错误理解软件测试
1测试是为了证明程序没有错误,2软件开发完成后进行软件测试,3软件发布后如果发现质量问题,那是软件测试人员的错,4软件测试要求不高,随便找个人多都行,5软件测试是测试人员的事情,与程序员无关,6项目进度吃紧时少做些测试,时间富裕时多做测试,7软件测试是没有前途的工作,8只有程序员才是软件高手,通过测试达到零缺陷率。
- 软件测试的目的
把尽可能多的问题在产品交给用户之前发现并改正
确保最终交给用户的产品功能符合用户的需求
确保产品完成了所承诺或公布的功能
确保产品满足性能和效率的要求
确保产品健壮和适应用户环境
建立软件质量的信心,度量和提高被测软件的质量
开发人员的测试,是调试,还是测试
调试建设性的:在源程序内定位错误,分析错误的原因 修改错误在程序运行时检测程序
测试破坏性的:诱发错误,重现错误,定位错误(设计修改界面,可能设计装饰)
- 软件测试的原则:
- 1测试能显示缺陷的存在,2穷尽测试是不可能的,3测试尽早介入,4缺陷的集群性 5杀虫剂博伦,6测试活动依赖于测试内容,7没有失效不代表系统是可用的,8测试的标准是客户的需求,9测试贯穿软件整个生命周期,10,独立的测试团队
原则2:软件不管测试多少次,都无法找到全部,软件的bug是无穷的,无法100%测试出来
原则4:在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的,因此称二八定律。
原则5:使用不同的方法进行测试测试的阶段
原则7:测试没有问题并不代表满足客户需求
SIT 开发阶段 内部的测试人员
UAT (验证阶段)用户验收产品-第三方的检测人员,