测试的定义:通过人工或自动的手段,对被测对象进行检测的活动,目的在于发现被测对象是否实现用户的需求,或者弄清楚实际结果与预期结果之间的差异。
测试的目的:1.发现被测对象与用户需求间的差异—俗称找bug。
2.通过测试活动发现并解决缺陷,增加人们对被测对象的质量信心。
3.通过测试活动,获取被测对象的质量信息,为决策提供数据依据。
4.通过测试活动,预防缺陷,从而降低项目或产品的风险。
测试原则:1.测试证明软件存在缺陷。2.不可能执行穷尽测试。3.测试应该尽早启动,尽早介入。4.缺陷存在群集现象。5.杀虫剂悖论。6.不同的测试活动依赖不同的测试背景。7.不存在缺陷的谬论
测试级别:单元测试:针对被测系统最小的组成单元实施的测试活动,一般是类或函数,也可能是最小的功能单元。
集成测试:针对组件/单元与组件/单元之间的接口实施的测试活动,验证接口设计是否与设计相符。分成3种集成:1.函数间集成。2.模块间集成。3.子系统间集成。
系统测试(国内公司接触得最最最多的):将通过集成测试的软件,部署在真实的用户环境下执行测试。
验收测试:以用户为主的测试,验收组应该由项目组成员、用户代表组成。面试可能会问到:
α测试:由用户在开发环境下执行的测试活动,开发者在测试人员身边,发现问题及时沟通解决,在受控环境下执行测试。
β测试:开发者不在测试人员身边,发现问题由专人统一收集,再由研发人员进行修改,在不受控环境下执行测试。
UAT测试:用户接受度测试:一般商业用户验证系统可用性进行的测试。
系统测试类型:
功能性测试:在指定试用条件下,试用被测对象,验证其是否满足用户显性或隐性需求。功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
测试关注点:1.是否有不正确或遗漏或多余的功能。
2.满足系统显性或隐性需求。
3.是否对输入输出做出了正确的响应,输出结果能否正确的显示。
性能测试:通过模拟被测对象运行业务压力或使用场景,验证被测对象是否满足预先设定的性能指标。验证系统是否具有宣称的能力;了解测试系统典型场景,并具有确定的性能目标;要求在真实环境下实施。
安全性测试:测试被测对象的安全保护机制保护系统不受非法入侵,能够接受正确授权的操作。
兼容性测试:验证被测对象在不用的操作系统、硬件信息等环境下的运行情况。
软件测试方法:
黑盒测试:不关注被测对象内部结构,主要针对软件界面和软件功能进行测试。仅从用户需求考虑,是否满足用户显性或隐性需求。
黑盒测试的方法:等价类划分法、边界值分析法、错误猜测法、判定表驱动法、因果图、正交法、场景法等。
等价类划分法:将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。允许若干有效等价类合用同一个测试用例。
边界值分析法:对输入或输出范围的边界上进行测试。
白盒测试:指了解程序内部的代码结构进行测试,也可以叫结构测试,逻辑驱动测试。
白盒测试方法主要分为两大类:静态测试方法和动态测试方法。静态测试方法: 静态结构分析、静态质量度量、代码检测方法等。动态测试方法:逻辑覆盖、独立路径测试等。
逻辑覆盖测试、路径分析测试、循环测试、代码检查法
逻辑覆盖测试:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖
路劲分析测试:独立路径测试
灰盒测试:既关注被测对象的外部特性,又关注其内部设计。
静态测试:不执行被测对象程序,不运行被测对象的测试方法。
动态测试:执行被测对象,进行的检测活动。
手工测试:通过测试工程师试用、验证被测对象是否满足用户需求。
自动化测试:通过自动化测试工具,或脚本语言自动化完成测试过程。
系统测试流程:测试计划设计、测试需求管理、测试策略(方案)、测试规程设计、测试用例设计、配置测试环境、测试用例执行、缺陷跟踪回归。
测试环境搭建:1、 分平台:Windows,Linux,Unix等
2、 分架构:J2EE(JAVA平台+JSP),.NET,LAMP等
3、 分服务器:IIS,Apache,Tomcat,resin,Jboss,weblogic,websphere等
4、 分数据库:SQL SERVER,MYSQL,ORACLE,DB2,SYBASE等
缺陷状态:new,open,fix,close,reject,reopen(新建,打开,修复,关闭,拒绝,重新打开)
哪些信息应包含在给开发的缺陷或错误报告中?
1、缺陷的简要总结。2、完整描述缺陷,包括重现步骤。3、如果需要,可以截取附件。4、发现和提出缺陷的日期。5、谁报告了这个缺陷。6、缺陷的严重性和/或优先级。7、哪个组件是指定的缺陷