我们的测试流程主要有三个阶段:需求了解分析、测试准备、测试执行。
1、需求了解分析阶段
我们的SE会把需求文档给我们自己先去了解一到两天这样,之后我们会有一个需求澄清会议,
我们会把不明白不理解的需求在会议上说出来,包含需求的合理性还有需求的可测性等,
产品这边解答,目的是让我们测试这边和开发对需求的理解达到一致。
【呕心沥血】耗时7天整理的金三银四必看的软件测试频面试题 涵盖 接口自动化测试框架面试题_哔哩哔哩_bilibili
2、测试准备阶段
会议结束之后我们开始准备测试工作,我们测试这边会写一个测试计划,分配每个人负责的模块,
然后我们就根据自己负责的模块用 xmind(思维导图)进行测试需求分析,分析测试点,
以及编写测试用例,之后我们会在自己的组内先进行评审,评审修改之后还会在我们的项目组评审,
评审完后进行修改测试用例。
3、测试执行阶段
开发人员编写好代码之后,我们会把代码包通过 Jelkins部署到测试环境提测,进行SIT测试,
在正式测试之前我们会先做一个冒烟测试,冒烟测试通过之后我们才转测,在执行测试的过程中,
我们如果发现bug就会用tapd(或者禅道)记录并且提交bug,也会进行bug复测,以及回归测试,
每一轮测试结束之后我们都会写一个测试报告,一般情况下,测试4-5轮之后会达到上线要求,
当达到上线的标准后,测试报告会认为测试通过,上线前我们会做预发布测试,预发布通过后,
由项目组与产品决定时间上线,上线完成,一周左右我们会写一个项目总结测试报告,
总结我们在上一个版本中遇到的问题以及今后有哪些地方需要改进,在产品选代过程中,
我们会跑自动化用例来进行回归测试。
需求不明确的话我会在需求澄清会议上面提出来,问清楚这个需求只有明确需求,
才能更好的完成工作,后续工作中还是不清楚,可以找产品再去确认这个需求。
1、 xmind思维导图评审,主要是测试人员
2、测试用例需要评审,测试人员,开发人员,产品人员
3、需求文档,项目组所有的人员,都会到场
参考答案1:
测试计划内容:
(1)目的和范围 (2)规程 (3)测试方案和方法 (4)测试的准入和准出
(5)测试计划(流程、时间安排、对应人员) (6)测试的环境配置和人员安排 (7)交付件
参考答案2
我们公司之前按照考核要求写过测试计划,不过后面老大觉得太耽误工作进度,
后面一般都不再写测试计划,而是写版本计划,这个在版本计划,每个人的任务列出来,
负责人列出来,自己根据自己的情况分配时间,然后汇总,大家一起开个小会评审就可以了。
原来我们用例包含
测试项目,用例编号、测试标题、优先级、预置条件、操作步骤、测试数据、预期结果
黑盒测试用例设计方法:主要是等价类、边界值、错误推测法、判定表、因果图、正交表、
流程分析法、状态迁移法、异常分析法。
常用的:等价类、边界值、判定表、流程分析法、错误推测法。
等价类是指某个输入域的子集合,在该子集合中,
各个输入数据对于揭露程序中的错误都是等效的,
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部
输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,
就可以用少量代表性的测试数据取得较好的测试结果,
等价类划分可有两种不同的情况有效等价类和无效等价类。
边界值的话就是对等价类划分方法的补充。测试工作经验告诉我,大量的错误往往是发生在输入或输出范围的边界上而不是发生在输入输出范围的内部,因此的话针对各种边界情况来设计测试用例,可以查出更多的错误,使用边界值分析方法设计测试用例的话,首先应该确定边界情况,通常输入和输出等价类的边界,就是应着重测试的边界情况应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
对于错误推断法,这个是基于经验和直觉推测程序中所有可能存在的各种错误,
从而有针对性的去设计测试用例的方法的,主要就是列举出程序中所有可能有的错误和容易发生错误的特殊情况去根据这些情况来选择测试用例,例如,在单元测试时曾列出的许多在模块中常见的错误以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况。
输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例。
前面介绍的等价类划分方法和边界值分析方法都是着重考虑输入条件但都没有考虑输入条件之间的联系,相互组合等等的情况。考虑输入条件之间的相互组合,可能会产生一些新的情况,
但是要检查输入条件的组合并不是一件容易的事情,即使把所有输入条件划分成等价类,
他们之间的组合情况也相当多,因此的话可以考虑采用一种适合于描述对于多种条件的组合,
相应产生多个动作的形式来考虑设计测试用例,这就需要用到因果图(逻辑模型)。
因果图方法最终生成的就是判定表它适合检查程序输入条件的各种组合情况。
(1)创建用户,并给新创建的用户指定权限。
(2)创建测试用例,对测试用例进行增、删、改、查
(3)把测试用例关联到对应的测试计划中。
(4)把测试用例指派给对应的测试人员。
(5)对应的测试人员,查看被指派的测试用例,并执行测试用例。
对BUG有一个清晰明了的描述; 详细描述BUG重现的步骤
对于产生BUG的环境进行描述; 提交BUG相关的图片和日志;
定位好BUG的等级; 将预期结果与实际结果进行对比。
是前端问题还是后端问题再去提交bug。
原来bug是用禅道来管理的
原来我们公司bug,提交bug直接给对应的开发人员,对应开发人员修复完成,交给测试复测,
复测通过关闭bug,不通过打回给对应开发。
提交-开发人员(已激活未确认)-开发进行确认,状态变成已激活,已确认,开发修复完成,
标注状态是已修复,测试人员复测通过,已关闭,打回给对应开发,已经激活。
所属产品、所属模块、所属项目、影响版本、指派人员
截止日期、严重程度、优先级、bug类型、bug环境
Bug标题、重现步骤、附件
首先我会再看需求文档,是不是我的理解有误,如果是我对需求理解错的话我就去关闭bug。
如果是bug再去让其他测试人员看看听下他们的意见,然后自己先再三去复测,并目保存好截图和日志,确定这是一个bug之后我就去跟开发说明白,并且给他看bug重现的截图以及日志,如果开发还是不认可的话我就跟产品或项目经理说明白情况。
首先,我会多测几次,测了好多次都无法重现的话我就先把bug挂起,并且留意一下,看看往后的测试中,如果在后面的测试中重现bug就激活,如果经过几个版本都还没发现的话就关闭bug。
(1)数据库中的编码设置 (2)前端页面编码 (3)后台代码也会编码
1、致命:对业务有至关重要的影响,业务系统完全丧失业务功能,无法再继续进行,
或业务系统丢失了业务数据且无法恢复,影响公司运营的重要业务数据出错。
2、严重:对业务有严重的影响,业务系统已经丧失可部分的重要的业务功能,或业务系统
丢失了业务数据且可以恢复,一般业务数据出错。
例如:界面错误,打印或显示格式错误。
例如:辅助说明描述不清楚,提示不明确的错误提示。
通常可以利用抓包工具来进行分析。可以从三个方面进行分析:请求接口、传参数、响应。
1)请求接口un是否正确如果请求的接口ur错误,为前端的bug
2)传参是否正确如果传参不正确,为前端的bug
3)请求接口u和传参都正确,查看响应是否正确如果响应内容不正确,为后端bug
4)也可以在浏览器控制台输入js代码调试进行分析
看严重级别:严重还是不严重
严重的:紧急变更上线
不严重:修复好后跟下个版本一起上线
用户会通过运维反馈到项目组这边,项目经理会根据功能模块的负责人,分给对应的开发与测试。
测试人员:编写对应的测试用例、测试环境中重现bug、提交bug、
交给开发进行修复、修复完成bug、进行bug的复测。
如果测试环境无法重现,可以导入生产环境的包到测试环境中测试,
还是不能复现,查看生产环境的日志去定位问题。
(1)需求要吃透,多问,多去了解。
(2)严格按照测试流程去执行:多考虑用户测试场景,使用测试用例设计方法,多评审。
(3)要有良好的测试执行:要求用例执行率达到100%,多轮测试,进行探索性测试,
需要测试之间交叉测试,用工具来管理我们的测试工作(禅道, testlink, excel,tapd)
(4)不断的反思与提升。
一般我们会选择晚上上线,开发测试还有产品全部到场,进行上线测试。
首先,开发将代码打包到生产环境的服务器中,如果数据表有变化,就会运行sql文件,
对表的一些操作,接着,我们测试就开始先测试主体业务功能以及新增的功能模块;
测试通过之后,我们会在界面上把上线测试的数据删除,正常上线。
如果发现bug,开发人员当场修复bug,修复成功之后我们测试再复测,通过就可以正常上线
如果发现了bug开发人员在上线规定时间之前都还没有修复好的话,就看问题的严重性,
如果严重就延期上线,如果我们是迭代版本的话我们还需要版本回滚。
如果不严重,产品跟客户觉得可以上线,就正常上线。
直接是不能导出。
1)提高测试效率 2)提高测试覆盖率 3)监控测试进度情况 4)也是质量的标准指标
CMM质量体系(用例数也是一个度量标准QA岗位)
原来我们主要是用exce编写的,当然也用过用禅道, testlink去编写,禅道都是excel表格编写完成,导入禅道系统, testlink也可以Exce表格,编写,编写测试,导入 testlink
参考答案1:
1)项目背景和目的 2)测试用例设计 3)测试环境 4)测试过程用到的工具
5)测试范围 6)测试用例执行情况 7)测试缺陷分析和总结 8)测试结果
参考答案2:
这个是写过的,测试报告,其实就是把我们测试的整个过程情况,数据统计,做成报告,包括用例执行情况,测试了哪些模块,多少用例,会哪里模块,自动化通过率,自动化跑了多少,是否全部通过,发现了多少bug,bug的情况,是否遗漏bug,测试结论等等这些,基本就这些。
测试报告里面有个测试结论:
bug产生原因(设计问题,需求问题,代码问题)
2)测试是否通过
能够发现bug的用例就是一个好的测试用例
当然我们在编写测试用例的时候,一定要步骤、场景清晰、尽量去覆盖所有的测试场景
冒烟测试一般我们是在系统测试之前,对所有主体的业务功能,测试看是否存在严重bug,
如果存在严重bug,表示,冒烟测试不通过
1)功能的回归
优先测试用例级别比较高的功能模块,可以进行自动化测试
如果时间够,进行全量测试
2)bug回归
复测这个bug,并且相关联的模块与功能也会测试一遍,以免由于修改bug导致其他问题产生
一般我在提bug的时候跟开发沟通最多,比如有一些不清晰的内容会去问开发,还有提完bug后会跟踪bug的进度,提醒开发尽快修复bug,还有测接口的时候去找开发拿接口文档,其实我们的工作跟开发都是息息相关的所以都经常都会有沟通的。
1)测试,需求理解上面有偏差
2)测试人员水平不够,测试人员覆盖点不全
3)测试人员时间不够,导致测试不完全
4)测试环境上面不足,导致测试点不能完全测试完成
把需求了解通透,引用用例评审机制,然后编写测试用例的时候用边界值,用等价类补充一些用例,根据过往经验用错误推断法来追加一些用例,如果存在组合情况的话我会用因果图或者判断表来编写,如果业务场景清晰的情况下我会用流程分析法,如果状态有发生改变的话我就会用状态迁移法。编写用例一个极其考验耐心的事情,要考虑到各种场景,全面覆盖到会出现的场景。
先跟面试官确定,产品什么是转测;
1)如果转测时间,在最近1-2天,直接了解需求开始测试。
2)如果三天后转测,一天半时间了解需求,一天写测试点和写测试用例,一天进行评审和修改测试用例,2天执行试用例与理交bug,最后一天半进行回归测试与编写测试报告。
3)如果4-5天后进行转测试,边开发边测试,一天半时间了解需求,一天写测试点和写测试用例,一天进行评审和修改测试用例,开始执行测试,开发一部分,我们就测试一部分。
1)测试用例执行率100%,通过率95%
2)1-2级bug修复率达到100%,3-4级bug修复率达到95%
如果是同一个横块,重复用例,我们可以考虑不再进行重复测试,如果不同模块,引用相同的测试用例,我们还是需要重复测试
有:我们会去单独去编写测试用例,只是主体流程用例,新增功能的用例
没有:我们会挑选原来测试用例中,级别比较高的用例去执行,或者我们建立一个 checklist列表,去检查功能是否正常使用。
git工具相当于svn工具,分支开发每个版本或者模块,开发不同模块,分支合并,把所有的功能全部整合起来,其实就划分功能模块去开发。
Web:
不同的浏览器,E,谷歌,火狐,浏览器显示比例,浏览器前进,后退,刷新按钮。
App:
不同手机厂商,型号,系统版本,内存大小,分辨率,屏幕的大小,高端机与低端机,考虑平板
1)对于测试来说,还是良好耐心,问题无法避免事情,重复的事情还是要去执行
2)重复事情,我们用自动化测试来进行替代
1)确定下,我们几个项目是否可以同步发布完成
2)如果确定项目不是同时发布(时间问题,人员问题)
确定下项目的优先级,跟客户这边商量优先级低一些项目推迟发布(产品跟客户)
1)开发人员发邮件告知对应的测试人员:新的代码地址、最新的sql文件、需求开发完成的情况。
2)测试人员把最新的代码和sql脚本更新到测试环境中,并进行冒烟测试,
要是冒烟测试不通过则转测失败。
java后台开发:
SSM spring + springy + mybaits(数据的封装)
SSH sprint + springmvc + hibernate
springboot
fianl极速开发框架
maven项目 pom.xml文件 ...中央仓库
python后台开发框架
Django flask
前端开发语言:
JavaScript + css+ html bootstrap框架 常用库: jquery简称JQ Es6/E57
php ThinkPHP框架