测试理论基础

测试理论基础
1)最常见的软件开发模型有哪些?
1.瀑布模型:
是一种线型、顺序开发的软件开发模型,流水线:计划->需求分析->设计->编码->测试->运行和维护。阶段之间两两为输出输入,具有因果关系。联系紧密。
特点:线型化,阶段特征分明,基于文档驱动(每个阶段之间都要有相应的文档),阶段评审机制严格。
优点:提供了软件开发的基本框架,利于大型软件开发过程的人员的组织和管理,也利于开发方法和工具的使用,提高了软件的质量和效率。
缺点:初始阶段需要指出全部需求,需求版本需要很久时间才能拿到;修改需求时改动大,若中途修改需求会蒙受损失。

2.VWXH型:以v型为基础,先逐层设计后分层次测试,单向的不可逆的。
	V型:
		顺序:用户需求->需求分析->概要设计->详细设计->编码(最低处)->单元测试->集成测试->系统测试->验收测试。
		优点:测试的级别明确;测试阶段与各开发阶段相互对应且与开发同步;测试策略既有低层测试(代码级别)也有高层测试(需求级别)。
		缺点:流程图会被误认为测试是软件开发的最后阶段;没有明确说明早期的测试(如需求设计上的),不符合越早测试和不断测试的原则(用户得等到验收测试阶段才能发现是否符合需求);流程单向,不可逆。
		
	W型(双V型):测试和设计同步了,形状像W,是V型的改进版。
		优点:符合尽早测试和不断测试的原则;符合实际工作中的测试活动。
		缺点:开发和测试保持一种线性的前后关系,这样就无法支持迭代。
		
	X型:形状是从四个角出发,在交叉处交集。X模型左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将频繁交接,最终集成为产品进行版本固定交付用户使用。
		特点:X模型提出了探索测试的概念(边设计用例边测试)。
		
	H型:是平躺着的H。上面的线型是:测试准备->测试就绪点(也是下面线型的插入点)->测试执行->测试流程   
					下面的线型是:....->进入测试就绪点,再出来->其他流程(如设计流程)
		特点:它说明了软件测试除了测试的执行还有其他的活动(如设计流程)软件测试是一个独立的流程,贯穿产品整个生命周期,与其它流程并发进行;只要测试条件成熟和测试准备活动完成了就可以进行测试执行活动。
		
3.快速原型:以原型(软件产品的样品)为共同语言,实现用户与开发者双向沟通。 注意:原型指“快速软件原型”
	模式:以原型开始,然后进入一个循环圈(听取用户意见->建造/修改原型->用户测试运行原型->听取用户意见),知道符合需求结束项目。
	特点:可实际工作的系统(极具意义的项目实践);没有固定的生存期,结局可能是用后立即被抛弃,或可能成为最终系统; 可服务于不同的目的,从需求分析到最终产品都可做原型; 建立必须快,便宜;是包含修改、评价在内的完整重复过程。
	
4.敏捷开发模型:以人(即用户需求)为核心,适应变化,迭代,循序渐进的开发方法。可分为多个子项目,子项目可独立完成。
	流程:产品功能表->计划板->任务板->发布板。
	适用性(特点):敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合。
		适用取决因素:项目的规模,规模增长,沟通越来越困难;因此敏捷方法更适用于较小的队伍,20、40人或者更少。
		
5.迭代模型:常常是客户给的需求并不是很明确,开发好一部分功能后给用户看,根据用户给的反馈调整、细化,上线一个版本后,再进入下一个版本的迭代开发。
	适用场景:与瀑布模型开发过程相反;所有功能一起开发,从粗到细,逐步求精。迭代模型适用于需求不甚明确、难度比较大的软件开发。(每次迭代都需与客户确认是否符合需求)。
	每次迭代都包括:需求分析->设计->实现功能->测试->交付
	
6.螺旋模型:螺旋模型是一种演进式的软件过程模型,结合了原型开发方法的瀑布模型的系统性和可控性等特点。
	主要特点:
		1.采用循环的方式逐步加深系统定义和实现的深度,同时降低风险。
		2.确定一系列里程碑,确保项目开发过程中的相关利益者都支持可行的和令人满意的系统解决方案。
		所以,每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。
	流程:制定计划->风险分析(风险大,适用于金融类)->实施工程->客户评估

2)迭代模型、螺旋模型、敏捷开发模型、双v型的概念和优缺点是什么?
答案在上面了。

3)按开发阶段来讲,测试分为哪些类型?
1.单元测试(白盒测试,unit testing):人为规定的最小的被测功能模块。负责内容有:入口和出口函数,输入和输出信息,错误处理信息,部分边界值测试。
2.集成测试(接口测试,intergratian testing),也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。
集成测试的两种方法在17.
3.系统测试(黑盒测试,System testing):将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试.
范围:功能测试、负载测试、稳定性测试、健壮性测试、压力测试、兼容测试、性能测试、GUI测试、安全性测试、可用性测试、安装测试、配置测试、容量测试、配置测试、数据备份测试、失效恢复测试、文档测试、在线帮助测试。
4.验收测试:主要确认软件是否按合同要求进行工作,即是否满足软件需求规格说明书中的要求。包括非正式测试(α测试和β测试)和正式测试。
正式验收测试:有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试,结果提交。着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面。

4)什么是回归测试?策略是什么?解决方法是什么?
对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了” 。(修改功能或修复bug后需要进行的测试)
回归测试策略及相应的解决方法:
1.针对100%复现的bug; <---->使用最新代码包进行测试(测试环境明确,包括硬件、软件等)
2.针对偶现的bug;<---->环境和之前百分百一致,用最新代码包,至少测试20次,并记录备注次数,若暂未发现问题,后续跟进测试。
3.版本迭代策略;<---->把所有与上一版继承的功能有关联的功能用例全部执行。
4.封板后代码小规模调整回归策略。<---->继承功能核心业务和通用功能重要业务以及新需求用例都要执行。

5)α测试和β测试的区别?
а测试:软件开发公司组织内部人员模拟各类用户行为对即将上市的产品进行测试。[内测,开发环境下]
ß测试:软件开发公司组织各方面的的典型客户在日常工作中实际使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善。[公测,线上环境下]

6)什么是沙盒测试?
沙盒环境:又称沙箱环境,即安全独立的测试环境。用来隔绝病毒防止攻击,在公司中使用于支付测试。
补充一下其他的环境:开发环境(如α测试环境)、测试环境(独立的服务器)、预生产环境(同步线上数据)、生产环境(商用环境即线上环境,β测试)。

7)软件测试方法(即用例测试方法)有哪些?适用场景分别是什么?
1.等价类:适用场景是有输入数据的地方,如输入框。有效等价类指有意义、合理有效的数据,即符合输入规则的数据;无效等价类是指无意义、不合意的数据。
2.边界值:被用来做等价类的补充方法,测试边界数据。
3.判定表
4.因果图(其结果就是判定表)
5.场景法:适用于业务比较复杂的软件系统。重点在模拟用户操作。基本流:模拟用户正确的业务操作流程;备选流:模拟用户错误的业务操作流程。
6.错误推测法:根据经验有针对性地列出程序中所有可能出错和易出错的情况。
7.正交实验法

8)评估工作量是根据什么?
是根据用例(侧面推出工作时长)来评估的,比如一条用例执行多长时间?几条用例?质量怎样?质量可用覆盖率来衡量,原则上是一条用例尽可能多地覆盖更多场景。

9)入职第一天该怎么做?
1.找人事办理入职手续,领取办公用品,包括电脑和工作卡等,了解五险一金是否有,观察同事的共同软件(这会是你工作时也要用到的,提前下载)。
2.安装办公常用软件和测试辅助软件;包括office,聊天工具(如qq,微信,钉钉等),邮箱客户端,浏览器(谷歌)。
3.申请开通邮箱即测试辅助账号,也可能是git账号,取决于你的公司用什么。
4.以上任务做完后,若没有被派任务,可申请领任务,以快速熟悉业务的理由动口去问需求文档、测试用例等文件。

10)测试流程是怎样的?
1.需求评审,目的是制定项目计划、制定风控方案、确定最终开发的需求。参加人员,测试组长(大中公司)或所有测试员(小公司);
其他的部门:项目组,运维,后端开发,产品(需求),前端开发,UI,测试,运营。(销售,这个是甲方,即外包公司才有的)
2.领取测试任务(测试经理领取);
3.使用思维导图工具提取测试点,遇到不合理、需求互斥的地方一定要用邮件去询问。(大多数公司里邮件属于正式的,当面问不够妥当)
4.设计测试用例,包括冒烟用例和全功能用例;
冒烟用例:只涉及正常的业务场景,3~5条涵盖主要功能,10分钟内执行完毕。
全功能用例:包括正常场景和异常场景。
5.用例评审(CaseReview):内容是测试用例、测试对需求的理解度、梳理测试点(他人补充的合理点)
用例评审人员:测试全组、对应需求的产品经理和开发人员。
注意:评审会过后,要进行用例整理。
6.准备测试环境以及测试数据(找开发或运营要,没有就自己动手搞)
7.待开发提交测试版本后在测试环境进行全功能测试,若发现bug,需提交详尽bug单并协助开发定位;在bug修复后要进行回归测试。

第二轮测试:在预生产环境或生产环境测试
8.开展兼容性测试、开展稳定性测试、开展性能测试;
9.验收测试(产品经理和测试经理确认,一定要仔细测!!!)
10.进行全功能回归测试;
第三轮:
11.交叉测试,不同部门或不同模块负责人互换模块来测试,确保质量;
12.进行灰度测试;
13.数据统计测试(pingback);
14.推送测试(广告,收入来源);
第四轮:
15.发版测试(版本号,启动图),MD5(加密),核心功能,新功能。
16.更新测试;包括自动更新、一般升级(提示更新,覆盖前三个版本)、强制升级。
17.下载安装测试;从应用商店、各个渠道、不同场景;
18.发送测试报告;
第五轮
19.线上版本跟踪测试;线上出现重大问题时的解决方法:Android:打补丁、热修复(Hotfix);IOS:小版本迭代;或服务端代码更新。
20.进行测试流程优化以及测试过程中改进意见
21.整理用例。
注意以上是大公司的标准流程,小公司有可能就只有第一轮或者是某几个步骤结合体。

11)什么是灰度测试?它的测试点和策略分别是什么?
1.定义:灰度测试就是允许带bug提前发布的版本,但比正常应用商店高一个小版本的测试。如正常版本是6.1.0,那么灰度版本一定是6.1.1。
2.测试点:版本新需求、渠道提供MD5值、渠道提供的启动图、核心功能。
3.策略:灰度测试最短为3天,最长为5天,选取下载的渠道的1%~3%的渠道发布(不达标对应的下载量就转为内测),发布时间为上线前一周。
4.意义:发现重大问题,为了统计崩溃率和卡顿比。

12)常用的推送工具是什么?至少列出两个
华为PUS、小米推送(MiPush)
补充:
13)传统的开发模式是什么?
14)软件开发过指的是什么?

15)软件生命周期是怎样的?
需求->设计->编码->测试->维护->升级->废弃

16)软件测试流程(简单版)
需求分析->测试计划->测试用例->测试执行(用例)->测试报告

补充,软件项目成员(大公司的):
项目经理:驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队,进行重大决策。
架构师/系统工程师:技术专家,经验丰富,负责整个系统的体系架构的设计以及关键模块的设计。
程序员/开发人员:设计、编写软件,并修复软件中的缺陷。
测试工程师:负责找出软件产品存在的问题并报告。
资料工程师:负责编写软件产品附带的文件和联机帮助文档。
配置管理员:负责管理程序员写的代码和资料工程师写的文档资料,并组合成一个软件包。
QA:质量监管人员。

17)集成测试的两种方法是什么?桩程序和驱动程序的区别是什么?
1.非增量式集成;
2.增量式集成:自顶向下增量式测试----桩程序;自底向上增量式测试----驱动程序。(两者的区别)

18)如何安装SVN(包括客户端和服务端)?
客户端直接傻瓜式安装;服务端,也傻瓜式安装,若是端口冲突,需要修改为一个没用过的端口。同时添加仓库,添加组员和密码,可分组并赋予权限。
补充常用的端口号:端口号范围是00000~99999
https <–>443
http <–>80
adb <–> 5037
appium <–> 4723
WebDriverAnget <–> 8081
appium反监听 <–>4724
夜神模拟器 <–> 62001

19)如果在SVN中误删文件,如何进行版本回溯?
小乌龟图标–>右键–>showlog–>目录–>打开要恢复的文件(Open选项)–>save

补充:解决版本冲突问题:删除有冲突的文件,重新上传该文件。

20)什么是缺陷?它的表现形式有哪些?
缺陷也就是bug,就是会导致系统出错或不符合需求的错误。
表现形式:
1.功能模块不符合产品规格说明;
2.出现产品规格指明的错误;
3.实现了产品规格说明书没有提到的功能;
4.没有实现说明文档没说但是应该实现的功能;
5.软件难以理解,不容易使用,运行缓慢;
6.性能要求等。

21)缺陷的要素有哪些?
缺陷要素有:
1.缺陷标题:尽可能简洁明了地描述什么情况下发生什么问题;
2.缺陷概述:等同于标题的细化,详细地讲述情况。
3.缺陷的状态以及说明。

补充缺陷的状态:New(新建)、Open(进行中)、Fixed(已解决)、Reopen(重开)、Closed(已关闭)、Rejected(拒绝修改)、Relayed(暂缓)

22)缺陷报告的意义?
是测试工程师和开发工程师的重要桥梁,准确无误的缺陷报告能够使开发人员快速理解缺陷和精确定位问题。

23)如何测试一款APP?
1.下载测试:下载渠道(Android、ISO应用商店、版本管理服务器如SVN或Git,第三方渠道如浏览器、官网、云平台);下载的网络形式(如WIFI自动下载、蜂窝网有提示下载);
2.安装测试:
安装成功的标准:桌面显示icon,应用名称前出现红点,手机系统设置中出现应用的相关信息。
安装失败的原因:内存不足、版本与平台系统的兼容问题、硬件的兼容问题、解析包出错、冲突、证书失效。
3.功能测试:
首次打开–>启动图–>权限(只在第一个版本测试)、引导图(先手教程)、登陆和注册、个性推荐–>广告–>进入主页–>主页业务–>UI布局(字体大小、图形及布局、颜色、边框)
非首次打开–>启动图–>已登录(未登录就要先登录)–>-主页业务–>UI布局(字体大小、图形及布局、颜色、边框)
4.异常测试:系统之间的切换、与其他应用的切换、分屏多程序运行、断电、与其他页面的切换
5.网络测试
a.无网络:
无运营商服务:欠费(光纤、手机运营商)应该出提示、系统断网操作、无网络信号
弱网:Fiddler,charles模拟弱网
b.正常网络:电信、联通、移动、广电、卫通
c.蜂窝、WIFI:蜂窝(2G,3G,4G,5G)、Ipv4和Ipv6,网络切换(蜂窝和WIFI的切换)
6.兼容性测试:平台、字体、语言、系统主题、与其他应用之间的兼容、系统(ISO和Android)、手机分辨率、方向锁定、兼容厂商、xsm型兼容(Ihpone系列,还有个必测坑爹的机型:ipoa toich,无卡,无摄像头)。
补充,如何选择机型:数据统计、基于产品的特性、新机型。
注意:不要更新测试手机的旧版系统,都是绝版的,否则会算损坏公司财产,得赔很多钱。
7.性能测试,
服务端:思考时间、响应时间、QPS、TPS、CPU占用率、内存、栈、堆(工具:loadrunner,Jmeter,云测平台) -----云测平台有:testin、MQC、OneAPM、龙测。
客户端或移动端:启动时间、网络、帧率fps、CPU占用率(溢出会导致内存不足,卡住看不了下一页会内存泄漏)、耗电量、温度、GPU、crash(崩溃)、ANR(卡顿,压力测试中必测)。
8.压力测试
PC—接口,Jmeter接口并发和业务场景,badboy和LR的录制场景。PC是为了更好地解决后端性能问题。
M站—随机测(Monkey测)和场景化压力(MonkeyRunner测),M站是为了统计崩溃率和卡顿化。
随机测(无序的):点击、滑屏、长按、多指同时操作、大量的随机操作。
9.界面软件测试
10.安全测试:软件权限、数据安全性。
11.消息推送:锁屏推送、通知栏推送、推送多条消息图标显示推送数、底栏tips; ----[推送的环境:测试环境]
12.数据统计:APP下载量、APP安装量、APP使用量、APP注册量[UV]、APP活跃度、APP页面点击率[PV].
13.升级测试:一般升级(有更新就是升级)、自动升级、强制升级、跨版本升级(3个版本)。
14.卸载测试。

23)什么是断言?
断言就是预期结果和实际结果的对比。

24)内存溢出和内存泄露的区别是什么?
自己百度

25)安卓测试环境搭建步骤是什么?
安卓测试环境:指测试过程中与真机或模拟器进行传输和交互的环境。
搭建步骤:
1.到oracle官网下载jdk安装包;
2.安装jdk(及java的运行环境,因为android底层由JAVA开发的)
3.配置环境变量:JAVA_HOME,JAVA_BIN,JAVA_LIB;
4.终端验证:java -version和javac -version;
5.下载Android SDK(SDK tools和platform_tools);
6.配置安卓环境变量:
ANDROID_HOME:安装包的变量;
ANDROID_TOOLS:tools的路径,添加到path变量;
ANDROID_PLAtFORMTOOLS:platform_tools的路径,添加到path变量。
7.验证:adb --version
adb的意思:Android Debug Bridge 安卓调试器

补充,打开开发者模式的步骤:找到手机的版本号,连击5次-->开发者选项-->USB调试-->允许模拟位置-->指针位置打开
如果失败,提示安装驱动,可以下载个豌豆荚来安装驱动。

26)夜神模拟器的调试步骤是什么?
1.先到官网下载夜神模拟器(如果太大,可以下载逍遥模拟器);
2.安装模拟器;
3.进入,模拟器设置打开开发者选项。
4.进入开发者选项界面,打开USB调试;
5.Win+r,输入cmd,进入命令窗口,输入命令:adb -device -l
6.然后会显示来连接成功,再输入命令连接模拟器:adb connect 127.0.01:62001 注意:62001是夜神模拟器的端口。
7.验证:adb -devices -l 查看连接的设备是否有夜神模拟器,即127.0.01:62001

如果查看无连接设备时,解决方案如下
	1.关闭终端;
	2.选择模拟器图标,右键选择进入文件所在位置;
	3.找到nox_adb.exe,进行重命名,直接在后面追加.bak
	4.再打开Android SDK中的platform_tools目录,找到adb.exe,复制粘贴到模拟器nox.adb.exe同级目录下,再将其重命名为nox_adb.exe;
	5.打开终端,再次输入adb -devices -l 验证。

27)请写出至少10条adb命令
1.连接模拟器或真机:adb connect 127.0.0.1:port [port为模拟器端口号]
2.查看已连接设备:adb devices
3.查看已连接设备详细信息:adb devices -l
4.安装应用程序:adb (-s) install 安装包的绝对路径
5.覆盖安装: adb install -r 安装包的绝对路径
6.卸载应用: adb uninstall 包名 注意:包名是安装后生成的,和安装包不是同一个东西。
7.获取应用包名:aapt dump badging 安装包的绝对路径
8.获取已运行的应用的包名:adb shell dumpsys activity | find “mFocusedActivity”
9.查看并导出日志: adb logcat > 绝对路径家文件名(如log.txt)
10.进入安卓:adb shell
11.再安卓系统中创建文件:mkdir 文件名 后面统一用英文看起来比较舒服:filename,path
12.把本地文件拷贝(推)到Android手机上:adb push local_file_path /android_path/ 注意,安卓系统要加反斜杠,local_file_path是本地文件路径,android_path是安卓的路径(目录)
13.把Android手机文件拷贝(拉)到本地:adb pull android_file_path local_path 路径都要是绝对路径
14.写脚本(text文件)控制模拟器,要在模拟器中点击指定位置,先在开发者模式打开指针位置,并把命令写入到txt文件中
15.点击屏幕某一位置,用x,y坐标,值是数字: adb shell input tap x y
16.滑动屏幕:adb shell swipe x1 y1 x2 y2 t ###t是时间,单位毫秒ms
17.操作电源键:adb shell input keyevent 键号 ##例如26键号是锁屏:adb shell input keyevent 26
18.启动命令: adb start -server
19.停止命令:adb kill -server
20.超级管理员(超管)身份运行:adb root
21.启动并把默认端口号(5037)改为指定端口号:adb -p start -server
22.查看CPU: adb shell cat /proc/cpuinfo
23.录制视频并存为mp4模式: adb shell screenrecord save_path.mp4 ##save_path是存放路径,更多命令建议网上查找一下
24.截屏: adb shell screencap -p path_filename.png ##-p是指定文件为png格式; -d display-id 指定截图的具体显示屏(适用于有多个显示屏时)

28)给charles安装证书的步骤是什么?
顶导航help–>SSL proxying–>INSTALL CHARLERS Root certificace–>安装证书。(未完)

29)网络协议探测工具charles的应用:
抓包,脏数据:指没用、无意义多余的数据。
b.抓取https请求(需要先安装受信证书)
1.顶导航Proxy–>-SSL Proxying Setting->勾选Enbale SSL Proxying–>点击add–> [host填写*,port写443]–>点击OK保存。
2.顶导航help–>SSL proxying–>INSTALL CHARLERS Root certificace–>安装证书。

c.重定向,验证前端的兼容性和安全性
1.Mapal local:一、选中具体的请求接口,保存save response;二、修改保存文件的信息(测试数据);三、选择对应接口,选择map local(在Tools选项)–勾选Enable Maple local(使用完毕就remove掉)–>添加:点击add–>(https:443)输入对应的protocol和HOST:(URL)
–>choose修改的文件,ok–>刷新请求的网页
2.MapRemote进入抓包拉手网www.lashou.com
选择对迎接口,选择map Remote–>勾选Enable Map Remote–> 点击add–>填写map from 内容–>填写map to 内容,点击ok–>刷新请求内容。

d.打断点【可校验服务端的容错性以及安全性】:选择对应的接口集–>右键,Breakpoints–>请求打断点接口(会自动打开charles界面)–>修改Request或Edit response–>点击execute.

e.模拟弱网:顶导航Proxy–>Throttle Setting–>勾选 Throttling–>配置上传速度和下载速度–>点击ok.

f.接口压测:右键选中被压测接口–>选择Repeat Advanced–>设置执行次数以及时长–>ok.

g.抓取移动端请求(必须处于同一网络或同一网段)
1.修改移动端网络设置,配置IP和端口;
2.移动端安装证书:在charles–>help–>Install … Mobile reviews Remote Brower–>去chls.pro/ssl 下载证书–(这个后续补上截图)
3.真机安装证书完毕后要重启charles.

30)编写测试用例的步骤和技巧有哪些?
先用思维导图提取测试点,再分模块写,先写有效用例再写无效用例,先写等级高的用例再写等级低的。

31)编号规则是什么?优先级有哪些?
编号规则:项目名_模块名_子模块名_test001
优先级:自己百度,每个公司对优先级的定义不一样,大致都是四个。

32)安装禅道和xampp的步骤是什么?
无,后续补充。

33)熟记禅道的业务和操作步骤
提交bug,自己去练,还有QC.此处没空去写总结文档。

遗漏的知识补充:
1)什么是冒烟测试?
也叫BVT测试(Build Verification Test),其对象是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。

补充其他的测试划分:
1.随机测试的概念:又名猴子测试,测试数据是随机产生的,在测试用例之外。只能作为一个测试的补充。
2.TDD,测试驱动开发。测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。

2)软件需求分析包括哪两方面?需求分析特征是什么?
包括需求分析概要和需求分析要求;
特征:
1.制定的测试需求项必须时可核实的;
2.应指明满足需求的正常前置条件和不满足需求时的出错条件;
3.不涉及具体的测试数据。因为测试数据时测试设计环节应该解决的内容。

3)测试计划什么时候开始写?如何制定测试计划?
测试计划开始写的时间:需求分析后,在整个测试工作过程中,不断修改。 ##由具有丰富经验的项目测试负责人来写。
测试计划的定义:描述所有要完成的测试工作。包括被测试项目的背景、目标、范围、方式、资源、进度安排、测试组织、以及测试有关的风险等方面。
为何制定测试计划:
1.测试过程中提供指导,如测试目标、内容、方法、时间周期。
2.改善测试任务与测试过程的关系。
3.提高测试的组织、规划和管理能力。

  1. 什么是测试环境?包括哪些?
    测试环境是测试人与那为进行测试软件测试而搭建的环境。包括硬件环境(如Linux服务器和客户端PC)和软件环境(如操作系统、数据库、服务器apche、编程语言php、浏览器等)
    补充,在软件开发过程中,除了测试环境还有开发环境、用户环境。

5)测试工具有哪些?

6)测试计划的内容有什么?上面有讲了

7)测试开始和结束的条件分别是什么?
开始条件:在项目启动,需求分析开始时随之启动的。
结束条件:需求覆盖率、用例执行率、缺陷遗留率达到预定质量目标。

8)测试用例粒度是什么?
指粗细程度,粒度大,即用例所覆盖的内容较多。
粒度大时,总用例数少,看起来简洁。
粒度小,单条用例关注的测试点集中,不容易遗漏,并且所需执行时间比较好估计。

9)测试用例的要素主要有哪些?
用例编号、用例模块、子模块、用例标题、前置条件、输入数据(可有可无)、操作步骤、预期结果、实际结果、编写人、编写时间、执行人、执行时间、执行结果(断言)、bug描述、备注。

10)八二定理是什么?
20%的模块中出现了80%的bug.

11)缺陷的生命周期是多久?
从出现到被修复或确认不修复。

12)缺陷等级是有哪些?(P0~P3)
致命:
严重:
一般:
建议:

13)CMMI是什么?其等级有哪些?
Capability Maturity Model Integration (能力成熟度模型综合),有五个等级,数字越大,成熟度越高。
第1级:初始级:软件过程无秩序,混乱。
第2级:受管理级(可重复级):建立了基本的项目管理过程,有章可循。
第3级:已定义级:实现文档化、标准化,形成了便准的软件过程。
第4级:定量管理级:软件过程和产品质量有详细的度量标准,得到了定量的认证和控制。
第5级:持续优化级:通过对来自过程、新概念和新技术等方面各种有用信息的定量分析,能够不断地、持续地对过程进行改进。

14)如何去测试一件产品来确保它的质量?
外部和内部质量如下,其都有一个共同性征:依从性,即遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等)约定或法规以及类似规定的能力。
1.功能性:包括适合性(符合用户的目标)、准确性(功能到位)、互操作性(与周边系统交互的能力)、安全保密性(授权、数据加密和放Dos攻击)等; 注:Dos,Denial of Service攻击,拒绝服务攻击,解决方法:限制请求次数。
2.可靠性:成熟性(避免因软件错误而导致软件失效的能力)、容错性(软件出现故障或者违反了制定接口的情况,软件规定了维护性能级别的能力。如:检查外部传进来的指针是否非空、或者外部传进来的参
数是否合法)、易恢复性(系统失效后恢复原有功能、性能的能力,能力指程度和速度,可采用主备倒换等易恢复机制。);
3.易用性:易理解、易学(有指导教程)、易操作(操作步骤简单,一键安装)、吸引性(外观、新颖);
4.效率:时间特性(系统在各业务场景下完成用户指定的业务请求所需的响应时间)、资源利用性(统在各业务场景下完成用户指定的业务请求所消耗的系统资源。如CPU使用率、内存使用率、IO,通信带宽使用等);
5.维护性:易分析(是指软件产品诊断软件中的缺陷或失效原因,以及判定待修改的部分的能力。如有日志)、易改变(指软件产品使指定的修改可以被实现的能力)、稳定性(指软件产品避免由于软件修改而造成意外结果
的能力)、易测试(指软件产品使已修改软件能被确认的能力);
6.可移植性:适应性(软件系统无需做任何相应变动就能适应不同运行环境(操作系统平台、数据库平台、硬件平台等)的能力,设造虚拟层实现)、易安装性(指软件产品在指定环境中被安装的能力)、共存性(软件系统和在公共环境与其共享资源的其他系统共存的能力)、易替换性(指软件产品在环境相同、目的相同的情况下替代另一个指定软件产品的能力,如软件升级)。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值