1、软件生存周期及其模型是什么?
答:软件生存周期(Software life cycle)又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,知道失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每个时期又划分为若干个阶段,每个阶段有明确的任务。
3、你们公司测试的一个基本测试流程是什么?
答:首先会召开需求分析会议,参加人员有产品、开发和测试,主要是探讨需求主要的一些功能点,完了之后,开发就排期进行开发,我们就根据主管写出来的计划、分配到的任务编写测试用例,写完之后会进行用例评审,有评审修改的就修改整理形成最终的用例版本,之后开发人员版本编译完成后,我们会依据测试用例来执行测试,测试过程中,提交bug,跟踪bug,直至关闭,测试完后编写测试报告。
4、测试用例是什么?编写测试用例时会用到什么方法?
答:测试用例是为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。测试脚本是为了进行自动化测试而编写的脚本,测试脚本的编写必须对应相应的测试用例。
测试用例的方法有两种,白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖;黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法。
5、如何提交高质量的软件缺陷(Bug)记录?
答:1) 通用UI要统一、准确。缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。
2) 尽量使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。
3) 每条缺陷报告只包括一个缺陷。
4) 不可重现的缺陷也要报告。
5) 明确指明缺陷类型根据缺陷的现象,总结判断缺陷的类型。
6) 明确指明缺陷严重等级和优先等级。
7) 描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置。
8) 短行之间使用自动数字序号,使用相同的字体、字号、行间距。
9) 每一个步骤尽量只记录一个操作。
10) 确认步骤完整,准确,简短。
11) 根据缺陷,可选择是否进行图象捕捉。
12) 检查拼写和语法缺陷。
13) 尽量使用短语和短句,避免复杂句型句式。
14) 缺陷描述内容。
6、简述BUG 管理工具的跟踪过程
用 BugZilla 为例子
测试人员发现了 BUG,提交到 Bugzilla 中,状态为 new,BUG 的接受者为开发接口人员;开发接口将 BUG 分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG。如果是本人的 BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个 BUG,然后测试人员关闭此问题。
如果开发人员接受了 BUG,并修改好以后,将 BUG 状态修改为已修复,并告知测试在哪个版本中可以测试。测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。
在面试的过程中,从回答问题的方式,就可以看出这个人是否有自信,是否敢于承担责任。当然,良好的准备才是打赢胜仗的基础,而只有知己知彼,才能百战不殆。如果你想学习更多软件测试相关的技能及面试技巧,可以来千锋教育试听学习。
1.请描述如何划分缺陷与错误严重性和优先级别?
给软件缺陷与错误划分严重性和优先级的通用原则:
(1)表示软件缺陷所造成饿危害和恶劣程度。
(2)优先级表示修复缺陷的重要程度和次序。
严重性:
(1)严重:系统崩溃、数据丢失、数据毁坏
(2)较严重:操作性错误、结果错误、遗漏功能
(3)一般:小问题、错别字、UI布局、罕见故障
(4)建议:不影响使用的瑕疵或更好的实现。
优先级:
(1)最高优先级:立即修复,停止进一步测试。
(2)次高优先级:在产品发布之前必须修复。
(3)中等优先级:如果时间允许应该修复。
(4)最低优先级:可能会修复,但是也可能发布。
3.一条软件缺陷都记录了哪些内容?
1.通用UI要统一、准确
缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。
2.尽量使用业界惯用的表达术语和表达方法
使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。
3.每条缺陷报告只包括一个缺陷
每条缺陷报告只包括一个缺陷,可以使缺陷修正者迅速定位一个缺陷,集中精力每次只修正一个缺陷。校验者每次只校验一个缺陷是否已经正确修正。
4.不可重现的缺陷也要报告
首先缺陷报告必须展示重现缺陷的能力。不可重现的缺陷要尽力重现,若尽力之后仍不能重现,仍然要报告此缺陷,但在报告中要注明无法再现,缺陷出现的频率。
5.明确指明缺陷类型
根据缺陷的现象,总结判断缺陷的类型。例如,即功能缺陷、界面缺陷、数据缺陷,合理化建议这是最常见的缺陷或缺陷类型,其他形式的缺陷或缺陷也从属于其中某种形式。
6.明确指明缺陷严重等级和优先等级
时刻明确严重等级和优先等级之间的差别。高严重问题可能不值得解决,小装饰性问题可能被当作高优先级。
7.描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置
描述要准确反映缺陷的本质内容,简短明了。为了便于在软件缺陷管理数据库中寻找制定的测试缺陷,包含缺陷发生时的用户界面(UI)是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。
8.短行之间使用自动数字序号,使用相同的字体、字号、行间距
短行之间使用自动数字序号,使用相同的字体、字号、行间距,可以保证各条记录格式一致,做到规范专业。
9.每一个步骤尽量只记录一个操作
保证简洁、条理井然,容易重复操作步骤。
10.确认步骤完整,准确,简短
保证快速准确的重复缺陷,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。
11.根据缺陷,可选择是否进行图象捕捉
为了直观的观察缺陷或缺陷现象,通常需要附加缺陷或缺陷出现的界面,以图片的形式作为附件附着在记录的“附件”部分。为了节省空间,又能真实反映缺陷或缺陷本质,可以捕捉缺陷或缺陷产生时的全屏幕,活动窗口和局部区域。为了迅速定位、修正缺陷或缺陷位置,通常要求附加中文对照图。
附加必要的特殊文档和个人建议和注解
如果打开某个特殊的文档而产生的缺陷或缺陷,则必须附加该文档,从而可以迅速再现缺陷或缺陷。有时,为了使缺陷或缺陷修正者进一步明确缺陷或缺陷的表现,可以附加个人的修改建议或注解。
12) 检查拼写和语法缺陷
在提交每条缺陷或缺陷之前,检查拼写和语法,确保内容正确,正确的描述缺陷。
13) 尽量使用短语和短句,避免复杂句型句式
软件缺陷管理数据库的目的是便于定位缺陷,因此,要求客观的描述操作步骤,不需要修饰性的词汇和复杂的句型,增强可读性。
4.简述一下缺陷的生命周期
打开 : 表示问题被提交等待有人处理。
重新指派 : 问题被重新指派给某人处理。
处理 : 问题在处理中,尚未完成。
固定 : 确认此问题存在,但暂时不进行处理。
回归 : 对已经修复的问题进行回归确认。Reopened :
关闭 : 问题的最后一个状态。
5.测试用例设计方法都有哪些?
1.等价类划分法
顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。
2.边界值分析法
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
3.错误推测法
错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
4.判定表法
又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
5.正交实验法
用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。
6.一个文本框要求输入6位数字密码,且对每个账户每次只允许出现三次输入错误,对此文本框进行测试设计的等价区间有哪些?
1.密码为空 登录
2.正确输入(输入正确的值) 登录
3.错误输入
(输入错误的值,输入数据例如:特殊符号、英文字母、汉字及非法字符等一些非正确值;输入方法例如:不足六位,超出六位,最大输入值) 登录/取消
4.连续错误输入三次以上 (查看连续错误输入后的提示信息及结果)
5.其他(是否支持剪贴板操作,例如:复制/剪切/粘贴)
7.什么时候开始进行性能测试?
性能测试一般分前期阶段和后期阶段。
前期阶段是功能实现后还没有到系统集成时期。 可以针对功能实现进行性能测试,看看单独功能实现的响应时间
后期阶段是指系统功能通过功能性测试完毕后,到整体的性能测试阶段。
8.什么是性能测试、负载测试、压力测试?
性能测试(Performance Test):通常收集所有和测试有关的所有性能,被不同人在不同场合下进行使用。 关注点:how much和how fast
负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。 关注点:how much
压力测试(Stress Test): 压力测试(又叫强度测试)也是一种性能测试,它在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。