基础知识
1软件测试基础
1) 什么是软件测试?
软件测试是通过手工或自动化的手段运行或测定被测对象是否满足所对应的需求;被测对象包括需求分析、设计规格说明书,系统编码等;在测试过程中,要根据相应的规格说明书设计一组测试用例,通过对测试用例的执行来发现系统中相应的错误保证软件质量的一项活动。
2)软件生命周期是什么?
① 项目规划 ②.需求定义分析 ③.软件设计 ④. 程序编码 ⑤.软件测试 ⑥.运行维护 3)软件测试目的是什么?
①.发现系统的错误 ②.验证系统是否满足需求 ③保障产品质量 ④改进开发进程
4)软件缺陷(bug)与软件错误(error)的区别和联系?
区别:软件缺陷是存在于软件之中的不希望或者不可接受的偏差,而软件错误是由于人为的原因产生的错误。缺陷是在软件中抽象存在的,而错误是人的行为问题。
联系:由于人的错误行为,在设计或者编码过程中的失误,导致了软件内部的缺陷。人为错误是引发软件缺陷的直接原因。一个软件错误必定引发一个或多个软件缺陷。 5)软件测试如何改进软件开发过程?
软件测试和软件开发是不同的两个过程,但是通过软件测试发现软件的缺陷,然后通过缺陷的分析确定错误产生的原因从而发现软件开发过程中存在的缺陷。同时通过对测试结果的分析整理,还可以修正软件开发规则。因此,软件测试在一定程度上可以改进软件开发流程。
6)分析“软件测试没有什么技术含量,不就是点击按钮,对系统进行操作吗?”。
分析:在上述问题中只所以出现这样的言论,是对软件测试理解的片面性和对软件测试理解的偏激造成的。对于一个规范的软件测试过程包括了软件测试的计划、系统分析、测试设计、开发等技术。软件测试是一个发现软件缺陷的过程,要想发现软件缺陷必须对被测对象有足够的了解,而不是简单的对被测对象的执行,更不是只是点击“按钮”。这里边包括了如何设计测试场景、测试数据、测试执行等过程。同样的通过软件测试发现系统的问题,通过问题的改进可以提高软件产品的质量,赢得用户的口碑,从而提高产品的市场竞争力,提高公司的利益。因此软件测试是一项非常有意义的关系公司存亡的活动。
7)软件测试对象包括什么?
①需求规格说明 ②概要设计规格说明 ③详细设计规格说明 ④源程序 ⑤系统 ⑥用户手册 ⑦帮助文档 8)主要的软件测试手段分别是什么,如何理解?
软件的测试手段包括验证和确认;验证是对前一个阶段的验证;确认是对原始开发需求的确认,任何一个阶段的确认都应追溯到需求。
1软件测试过程概述
1)软件开发的生命周期是什么?
软件的开发生命周期包括:需求分析à系统设计à软件编码à运营维护 。
2)软件测试的生命周期(过程、流程)是什么?
软件测试生命周期包括:测试计划、测试设计、测试开发、测试评估、测试报告、缺陷跟踪。
3)软件测试流程中的里程碑分别是什么?
①.测试计划通过评审 ②.测试设计完成 ③.测试脚本开发完成 ④.测试用例执行完成 ⑤.测试报告通过评审
4)测试计划的主要内容包括那些?
①测试的目的与范围 ②测试的策略和方法 ③人力物力资源的安排(角色及职责) ④.测试进度的安排(什么样的事情应该在那个时间点完成,由谁来做,产物等)⑤.测试风险分析 ⑥.停测标准 ⑦.完成标准 。
5)测试计划应该完成那些目标?
①.合理的管理和组织测试资源 ②.指导测试工作的正常进行 ③.配合研发部门调整相关资源 6)测试设计阶段设计的是什么?
测试设计阶段的设计包括测试方案的设计和测试用例的设计,主要是做测试用例的设计。
7)什么是测试开发,测试开发过程中开发的是什么?
测试开发指的是在测试用例设计完成后,对测试用例中需要进行自动化测试的测试用例进行的脚本开发过程。 测试开发过程中开发的主要是测试脚本。
8)什么是测试执行?测试执行过程中应该具备那些基础技能? 测试执行指依据测试用例运行测试脚本(自动化测试)或者运行被测对象,发现被测系统中的缺陷的过程。 在测试执行过程中一个合格的测试人员需要具有以下这些技能:
①被测对象的操作能力,保证可以正确的运行和操作你的被测对象; ②敏锐的观察能力,可以快速有效的识别BUG; ③BUG确认能力 ④系统背景知识和相关业务知识
3单元测试与集成测试
1)什么是白盒测试?
白盒测试是对软件的过程性细节多细致性的检查,是把测试对象看做是一个打开的盒子它允许测试人员利用程序内部的逻辑结构和相关信息设计或选择测试用例,对程序的所有逻辑进行测试,通过在不同点检查程序状态,确定程序的实际状态是否与预期状态相一致 ,注:白盒测试又称为结构测试和逻辑驱动测试
1)
白盒测试用例设计的方法有哪些?
①.语句覆盖 ②.判定覆盖 ③.条件覆盖 ④.判定/条件覆盖 ⑤.条件组合覆盖 ⑥.路径覆盖 3)白盒测试的主要技术有哪些?
①.静态分析 ②.动态分析 ③.逻辑覆盖 ④.基本路径测试 4)什么是静态测试,静态测试的主要方法?
静态测试是指在不运行被测对象情况下的测试;静态测试的方法主要有,以及编码规范和标准,对代码进行走查、审查和评审。 5)什么是动态测试,动态测试的主要方法?
动态测试指在运行被测对象情况下的一种测试方式。动态测试的方法包括:黑盒测试和白盒测试。 6)常见的白盒测试工具有哪些?
比如商业白盒测试工具IBM的PureCoverage、Purify、Quantify,开源工具:JUnit、CppUnit、HttpUnit、NUnit等。 7)什么是集成测试,集成测试的关注点是什么?
集成测试是将通过单元测试的单元按照设计要求组合起来进行测试 集成测试关注的是模块与模块之间的接口问题
4系统测试测试过程
1)什么是系统测试,系统测试中常见的测试类型有哪些? 系统测试是将已经通过集成测试后的软件作为计算机系统的一部分与计算机硬件、某些支持的软件、数据、人员等元素结合起来在实际运行环境中对计算机系统进行严格有效,来发现软件潜在的缺陷,保障系统运行
系统测试的类型有:功能测试、性能测试、裸机测试、BVT测试、安装卸载测试、安全性测试、兼容性测试、易用性测试、容错测试、配置测试
2)什么是功能测试,功能测试的测试要点是什么?
功能测试是指验证系统的功能是否满足用户需求的测试,功能测试的主要关注点是功能点和功能逻辑。功能点是指某一个功能的具体实现的点包括页面上的设置输入设置等。功能逻辑指需要完成的功能在系统执行过程中如何去实现,实现的是否正确符合需求。 3)功能测试和性能测试有哪些不同? ①.功能测试和性能测试关注的要点不一样,
功能测试主要关注系统在功能模块上的实现或者功能逻辑上的实现是否正确,是否存在问题。性能测试关注系统执行的效率、响应速度、能够承受的负载等。 ②.在测试方法上不一样
功能测试一般应用手工测试,也可以根据具体的情况应用自动化测试,功能自动化测试的主要技术要点是实现目标对象的识别,仿真用户的真实的鼠标和键盘的操作。
性能测试一般应用自动化测试手段,主要是通过协议的仿真来模拟多用户情况下,测试被测系统的响应情况。
4)什么是兼容性测试?兼容性测试的测试要点是什么?
兼容性测试又叫做配置测试,是指测试软件在特别的硬件、软件、操作系统、网络等环境中是否能很好的运行。 测试的要点是1)软件之间兼容性2)数据之间兼容性3)硬件兼容性等