1、软件测试工程师的职责?
(1)配置测试环境————一般由公司的运维负责
(2)编写测试用例————由测试人员自己负责自己的模块
(3)执行软件测试————根据测试用例执行测试
(4)报告软件缺陷
(5)更新缺陷报告内容
(6)验证修正的缺陷
(7)报告测试状态
(8)完成测试相关的其他任务
其中测试文档包含:
1)、测试计划
2)、测试方案
3)、测试用例
4)、测试报告
5)、缺陷跟踪单
2、软件质量
1)定义:软件满足用户明确需求或者隐含需求的能力
2)从哪些方面衡量软件的质量:
a.确定软件是否满足用户的需求
b.功能性、可靠性、易用性、效率性、可移植性、可维护性、安全性。
其中:
(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
(2)可靠性:产品在规定的条件下,在规定的时间内完成规定的功能的能力。
三要素:规定的环境、规定的时间、规定的性能
(3)易用性:在指定的条件下使用时,软件产品被理解、学习、使用和吸收用户的能力。
(4)效率性:在规定的条件下,相对于所有资源的数量,软件产品可提供适应性能的能力。
a.时间特性:适应和处理时间
b.资源利用性:CPU、内存、磁盘、IO、网络宽带、队列、共享内存,合理使用资源。
(5)可移植性:软件产品从一种环境迁移到另外一种环境的能力。
(6)可维护性:软件产品可被修改的能力。修改可能包括修正、改进或者软件对环境、需求和功能 规格说明变化的适应。
3、软件质量保证
1)定义:为了保证产品和服务满足消费者要求的质量而进行有计划、有组织的活动。
2)2个软件质量相关的角色:
QA:quality assurance的简称,即质量保证
QC:quality control的简称,即质量控制
两者的区别:
(1)QA是建立体系并且确保体系按照要求运作,以提供内外部的信任;QC是保证产品质量符合规定。
(2)QC是测试人员,职责是尽可能发现软件的缺陷并且确保缺陷得到修复;QA是流程的监督者,职责是创建和执行改进软件开发过程,并防止软件缺陷发生的标准和方法。
4、软件测试
1)概念:在规定的条件下对软件进行操作,以发现错误,对软件质量进行评估。
2)测试范围:软件中形成的文档、数据和程序。
3)目的:不仅仅是为了发现软件中的缺陷与错误,而且还对软件质量进行度量和评估,以提高软件质量。
4)原则:
(1)满足客户需求。
(2)“尽早地和不断地进行软件测试”作为座右铭
(3)完全测试是不可能的额,测试需要终止。
(4)测试无法显示软件潜在的缺陷。
(5)充分注意测试中的群集现象。
(6)避免检查自己的程序
(7)避免测试的随意性
(8)测试的抗药性,为了避免可以进行交叉测试。
5)测试风险:
包含有:进度风险、质量风险、人员风险、变更风险、成本风险等。
5、软件测试的分类
一)按阶段分类:
(1)单元测试
(2)集成测试
(3)系统测试
(4)验收测试
其中,
(1)单元测试:是指对软件中最小可测试单元进行检查和验证
关注点:输入、输出、边界值
(2)集成测试:也叫组装测试或者联合测试,是将经过验证后的单元模块组成子系统后,验证个模块之间相互调用的测试活动。
关注点:模块与模块之间的相互调用关系以及参数的合法性。
常用的方法:a.非增量式集成
b.增量式集成:
(1)自顶向下增量式 测试桩程序
(2)自底向上增量式 测试驱动程序
(3)系统测试:将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试。
**系统测试是针对整个产品系统进行的测试。**
关注点:确认已开发的软件能不能在规定的条件下正常运行结果是否达到预期。
(4)验收测试:是一项确定产品是否能够满足合同或者用户所规定的需求的测试。
关注点:着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面。
验收测试的分类:
a.非正式的验收测试
b.(1)alpha测试:内部人员(内测)
(2)beta测试:典型客户在日常工作中实际使用(公测)
二)按是否运行程序分类:
(1)动态测试:通过运行程序进行测试
(2)静态测试:不运行代码,通过代码的审查、走读等方式进行测试
三)按是否查看源代码分类:
(1)黑盒测试:将程序看成一个盒子,不关注内部,只关注输入和输出。
(2)百合测试:将程序看成一个透明的盒子,通过审查内部结构和算法,不关注功能和性能指标。
(3)黑盒测试:介于黑盒和白盒的测试,基于外部又结合内部逻辑结构,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。
四)其他分类:
1)回归测试:对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例,防止出现“以前没有出现问题的现在出现了问题”。
2)冒烟测试(BVT测试):其对象是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。
3)随机测试(猴子测试):测试数据是随机产生的,在测试用例之外。只能作为一个测试的补充。