当前位置:文档之家› 软件测试课程必考内容

软件测试课程必考内容

等价类划分方法:将所有可能的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有同等效果,那么这样的子集就构成一个等价类。

边界值分析方法:选取输入、输出的边界值进行测试。

因为通常大量的软件错误是发生在输入或输出范围的边界上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。

显式功能性需求:指的是软件本身需要实现的具体功能。

非功能性需求:主要涉及安全性、性能以及兼容性三大方面单元测试:是指对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。

驱动代码、桩代码、mock代码三者的逻辑关系:驱动代码—>被测试函数—>(桩代码、mock代码)驱动代码:指调用被测函数的代码。

桩代码:用来代替真实代码的临时代码,起到隔离和补齐的作业,使被测代码能够独立编译、链接,并运行。

自动化测试:把人对软件的测试行为转化为由机器执行测试行为的一种实践。

自动化测试的优势:1.替代大量的手工机械重复性操作,把更多的时间花在用例设计和新功能测试上。

2.大幅提升回归测试的效率,适合敏捷开发过程。

3.更好地利用无人值守时间,去更频繁地执行测试4.高效实现某些手工测试无法完成或者代价巨大的测试类型5.保证每次测试执行的操作以及验证的一致性和可重复性,避免人为的遗漏或疏忽。

自动化测试缺点:1.不能取代手工测试,只能替代执行频率高、机械化的重复步骤。

2.比手动测试脆弱,无法应对被测系统的变化。

3.自动化测试用例的开发工作量远大于单次的手工测试。

4.手工测试发现的缺陷数量通常比自动化测试要更多,并且自动化测试仅仅能发现回归测试范围的缺陷。

5.测试的效率很大程度上依赖自动化测试用例的设计以及实现质量。

6.实行自动化测试的初期,用例开发效率通常都很低。

7.业务测试专家和自动化测试专家通常是两批人,只有二者紧密合作,才能高效开展自动化测试。

8.自动化测试开发人员必须具备一定的编程能力。

什么样的项目适合自动化测试?1.需求稳定,不会频繁变更。

2.研发和维护周期长,需要频繁执行回归测试。

3.需要在多种平台上重复运行相同测试的场景。

4.某些测试项目通过手工测试无法实现,或手工成本太高。

对于所有的性能和压力测试,很难通过手工方式实现。

5.被测软件的开发比较规范,能够保证系统的可测试性。

6.测试人员已经具备一定的编程能力。

缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁,也是测试工程师日常工作的重要输出。

人工静态方法(区分)1.代码走查:由开发人员检查自己的代码,尽可能多的发现各类潜在错误。

2.结对编程:是一种敏捷软件开发方法,一般是由两个开发人员结成对子在一台计算机上共同完成开发任务。

3.同行评审:是指把代码递交到代码仓库,或者合并代码分支到主干前,需要和你同技术级别或者更高技术级别的一个或多个同事对你的代码进行评审,只有通过所有评审后,你的代码才会被真正递交。

(同行评审既能较好地保证代码质量,又不需要过多的人工成本投入,而且递交的代码出现问题后责任明确,另外代码的可追溯性也很好。

)【什么是同行评审】自动静态方法:特点:自动化程度高,成本低,发现的代码问题广。

1.相比于编译器,可以做到对代码更加严格、个性化的检查。

2.不真正检测代码的逻辑功能,只是站在代码本身的视角,基于规则,尽可能多地去发现代码错误。

3.由于静态分析算法并不实际执行代码,完全是基于代码的词法分析、语法分析、控制流分析等技术,由于分析技术的局限性以及代码写法的多样性,所以会存在一定的误报率。

衡量软件性能的三个最主要的指标:并发用户数、响应时间和系统吞吐量。

(之间的关系)系统并发用户数较少时,系统的吞吐量也低,系统处于空闲状态,我们往往把这个阶段称为“空闲区间”。

系统整体负载并不是很大时,随着系统并发用户数的增长,系统吞吐量也会随之呈线性增长,我们往往把这个阶段称为“线性增长区间”。

随着系统并发用户数的进一步增长,系统的处理能力逐渐趋于饱和,因此每个用户的响应时间会逐渐变长。

相应的,系统的整体吞吐量并不会随着并发用户数的增长而继续呈线性增长。

我们往往把这个阶段称为系统的“拐点”。

随着系统并发用户数的增长,系统处理能力达到过饱和状态。

此时,如果继续增加并发用户数,最终所有用户的响应时间会变得无限长。

相应地,系统的整体吞吐量会降为零,系统处于被压垮的状态。

我们往往把这个阶段称为“过饱和区间”。

一、从“用户登录”测试谈起测试用例:1.输入已注册的用户名和正确的密码,验证是否登录成功。

2.不正确的密码,登录失败,并且提示信息正确。

3.未注册,登录失败,并且提示信息正确。

4.用户名和密码两者都为空,验证是否登录失败,提示信息正确。

5.用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确。

6.启用验证码功能,在用户名和密码正确的前提下,输入正确的验证码,验证是否登录成功。

7.(6)(失败),并且提示信息正确。

8.用户名和密码是否大小写敏感。

9.页面上的密码框是否加密显示。

10.后台系统创建的用户第一次登录成功时,是否提示修改密码。

11.忘记用户名和密码的功能是否可用。

12.前端页面是否根据设计要求限制用户名和密码长度。

13.如果登录功能需要验证码,点击验证码图片是否可以更换验证码,更换后的验证码是否可用。

14.刷新页面是否会刷新验证码。

15.如果验证码具有时效性,需要分别验证时效内和时效外的有效性。

16.用户登录成功但是会话超时后,继续操作是否重定向到用户登录界面。

17.不同级别的用户,比如管理员用户和普通用户,登录系统后的权限是否正确。

18.页面默认焦点是否定位在用户的输入框中。

七、软件缺陷报告缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁,也是测试工程师日常工作的重要输出。

缺陷报告内容:1.缺陷标题:“在什么情况下发生了什么问题”2.缺陷概述:清晰简洁地描述缺陷3.缺陷影响:决定了缺陷的优先级和严重程度。

4.环境配置:描述测试环境的配置细节,为缺陷的重现提供必要的环境信息。

5.前置条件:测试步骤开始前系统应该处在的状态,其目的是减少缺陷重现步骤的描述。

6.缺陷重现步骤:缺陷报告中最核心的内容,用简洁的语言向开发工程师展示缺陷重现的具体操作步骤。

7.期望结果和实际结果8.优先级和严重程度:严重程度:1.致命的:造成系统或应用程序崩溃、死机、系统悬挂,或造成数据丢失、主要功能完全丧失等。

2.严重的:指功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误声明。

3.一般的:这样的软件缺陷虽然不影响系统的基本使用,但没有很好地实现功能,没有达到预期效果。

如次要功能丧失,提示信息不太准确,或用户界面差,操作时间长等。

4.微小的:对功能几乎没有影响,产品及属性仍可使用,如有个别错别字、文字排列不整齐等。

优先级:1.立即解决(P1):缺陷导致系统几乎不能使用或测试不能继续,需立即修复。

2.高优先级(P2):缺陷严重,影响测试,需要优先考虑。

3.正常排队(P3):缺陷需要正常排队等待修复。

4.低优先级(P4):缺陷可以在开发人员有时间的时候被纠正。

9.变通方案:提供一种临时绕开当前缺陷而不影响产品功能的方式10.根原因分析:11.附件:界面截图、测试用例日志、服务器端日志、GUI 测试的执行视频九、软件测试师核心竞争力传统测试工程师应该具备的核心竞争力(功能测试工程师):1.测试策略设计能力:对不同被测软件,能快速准确地理解需求,在有限的时间和资源下,明确测试重点以及最适合的测试方法的能力。

2.测试用例设计能力:无论对于什么类型的测试,都能设计出高效地发现缺陷,保证产品质量的优秀测试用例。

3.快速学习能力:1)对不同业务需求和功能快速学习和理解能力。

2)对于测试新技术和新方法的学习与应用能力。

4.探索性测试思维:测试工程师在执行测试的过程中不断学习被测系统,同时结合基于自己经验的错误猜测和逻辑推理,整理和分析出更多的有针对性的测试关注点。

(探索性测试)5.缺陷分析能力:(1)已经的缺陷,结合发生错误的上下文以及后台日志可以预测或者定位缺陷的发生原因(2)根据已经发现的缺陷,推断同类缺陷存在的可能性,找出所有相关的潜在缺陷。

(3)可对一段时间内发生的缺陷类型和趋势进行合理分析,对高频缺席类型提供系统性的发现和预防措施,调整后续的测试策略。

6.自动化测试技术7.良好的沟通能力。

测试开发工程师的核心竞争力:1.测试系统需求分析能力2.更宽广的知识体系人工动态方法:真正检测代码的业务逻辑功能,关注点是“什么样的输入,执行了什么代码,产生什么样的输出”,主要用于发现算法错误和部分算法错误,是最重要的代码级测试手段。

单元测试的输入参数:被测试函数的输入参数、被测试函数的内部需要读取的全局静态变量、被测试函数内部需要读取的类成员变量、函数内部调用子函数获得的数据、函数内部调用子函数改写的数据、嵌入式系统中,在中断调用中改写的数据。

单元测试的预期输出:被测函数的返回值、被测函数的输出参数、被测函数所改写的成员变量和全局变量、被测函数中进行的文件更新、数据库更新、消息队列更新等。

自动动态方法:基于代码自动生成边界测试用例并执行来捕捉潜在的异常、崩溃和超时的测试方法。

自动动态方法的重点是:如何实现边界测试用例的自动生成,方法是根据被测汉的输入参数生成可能的边界值。

二九、性能测试常见的七种性能测试方法:1.后端性能测试:通过性能测试工具模拟大量的并发用户请求,然后获取系统性能的各项指标且验证各项指标是否符合预期的性能需求的测试手段。

2.前端性能测试:关注的是浏览器端的页面渲染时间、资源加载顺序、请求数量、前端缓存情况、资源压缩等内容,希望借此找到页面加载过程中比较耗时的操作和资源,然后进行有针对性的优化,最终达到优化终端用户在浏览器端使用体验的目的。

雅虎7大类35条前端优化:1)页面内容:减少http请求次数、减少DNS查询次数、避免页面跳转、缓存Ajax、延迟加载、提前加载、减少DOM 元素数量、根据域名划分内容、减少iframe数量、避免404.2)服务器:使用CDN、添加expires或Cache-Control报文头、Gzip压缩传输文件、配置ETags、尽早flush输出、使用GET Ajax请求、避免空的图片src。

3)Cookie:减少cookie大小、页面内容使用无cookie域名。

4)Css:将样式表置顶、避免css表达式、用<link>代替@import、避免使用filters。

5)JavaScript:将脚本置底。

使用外部JavaScript和css文件、精简JavaScript和css、去除重复脚本、减少DOM 访问、使用智能事件处理。

相关主题