功能测试是如何进行测试的?
29 个回答
功能测试,是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求,比如说逻辑功能测试,界面测试,易用性测试,安装/卸载测试,兼容性测试等。
对于黑盒测试来说,它是通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行测试,它只是检查样序是否按照需求规格说明书的规定正常实现。
等价类划分,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误 。
边界值分析法,对输入或输出的边界值进行测试的一种黑盒测试方法。
是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
边界是指相对于等价类而言,稍高于、稍低于其边界值的一些特定情况。
如考虑所输入条件之间的相互组合,会由于组合情况数目相当大,需要大量的测试用例,可以用因果图法。
如果知友对这部分内容感兴趣,可以持续关注小编的账号,除此之外,小编还录制了不少这方面的技术视频,知友如果有需要,可以私聊本小编获取哦!
我组建测试自学团学习群,更多自学测试伙伴在一起沟通交流,感兴趣可以私聊我我建了一个测试小白交流群,私信我,进入交流群。我会给大家分享我收集整理的各种学习资料,组织大家一起做项目练习,帮助大家匹配一位学习伙伴互相监督学习,欢迎加入
1.编写导入excel的用例时,像字段这样的要为空,为特殊字符,为汉字,为字母,为数字,为长度大于规定的数值的字符,为混合的字符,输入电话号码时不仅要保证全是数字,还要注意前几位数字是否为正确的电话号码的前3位数,导入的银行账号的长度字符。
2.编写测试用例前提是要把需求完全看懂,再依据逻辑模块进行划分,大模块用不同的sheet来进行划分,
为了一目了然也可以使用xmind进行编写勾画,一定要把需求一字一句的读懂,数据从哪里来的,整体的
操作流程,项目的目的是要做啥,这样才能做到心中有数???????? ?
3.修改host之后一定要返回到原来的状态
4.提交bug的时候一定要标记好优先级这样才能比较好的测试。
5.安全测试xss,sql注入
6.删除之后要实时的更新,不用再次刷新的来更新
7.p0是级别最高的bug
8.管理bug的工具不仅有禅道,还有jira
9.现在公司内部沟通一般使用钉钉
10.共享文件的话一般是用钉钉里面的石墨文件共享
11.有些公司就是使用excel编写测试用例
12.不用连接vpn,直接使用 http://192.168.6.141即可
13.一般提测的话有提交测试说明书
14.连接数据库,用小海豚即可,不必先安装mysql
15.excel表格里面一般有,前置条件,步骤说明,预期结果,优先级,一般p0是最严重的bug
16.安装mysql文件安装msi格式的比较省事,zip的可能会不成功
17.当前端某个控件不见的情况,查看是否是浏览器分辨率设置大小的缘故
18.查看下拉列表是否能正常选择和保存
19.配置变更的情况下查看业务流程是否变更
29.测试环境的链接跳转不应该是线上环境
30.涉及到邮箱的情况下应该是用临时邮箱来替代
31.要注意title字符是否显示正确
32.查看下拉选择框是否存在默认值
33.记得f12来查看前端返回的数据是否正确
34.查看分页显示和规则是否有误,如上一页和下一页按钮显示的位置
35.字符的长度过大时,查看页面的布局是否是混乱的
36.查看显示的数据是否做了去重处理
37.编辑框的边缘应该是要显示出来的
38.查询时间起始时间不应该大于终止时间
39.查看导出明细的时间是否有延误
40.查看查询字段和列表字段是否和用例完全一致
41.不宜在发版的时候进行数据的测试
42.开发人员改完bug之后,测试人员是要找到相应的模块进行发版才行的
43.当网络代理出现错误导致无法上网的时候,在控制面板上的把代理置灰即可
我建了一个测试小白交流群,私信我,进入交流群。我会给大家分享我收集整理的各种学习资料,组织大家一起做项目练习,帮助大家匹配一位学习伙伴互相监督学习,欢迎加入
作者:言寡
来源:CSDN
功能测试是一种黑盒测试,它是通过对软件系统的功能进行测试来验证系统是否符合需求和设计规格要求。在功能测试中,测试人员需要根据需求和设计文档编写测试用例并执行测试,以此来检查系统的功能是否正常。
具体而言,功能测试通常包括以下步骤:
- 确认测试目标和测试范围:确定要测试的功能模块和测试的重点。
- 编写测试用例:根据需求和设计文档编写测试用例,包括测试输入数据、测试步骤和预期结果等。
- 准备测试环境:搭建适当的测试环境,包括硬件、软件和网络等。
- 执行测试用例:按照测试用例执行测试并记录测试结果。
- 分析测试结果:将测试结果进行分析,找出问题所在,并对问题进行分类和优先级排序。
- 生成测试报告:将测试结果整理成测试报告,包括测试的覆盖率、发现的缺陷数量和严重程度等。
总之,功能测试是验证软件系统的功能是否符合需求和设计文档规定的过程,它是保证软件质量的重要手段之一。
END绵薄之力
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
软件测试面试题
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:
1、 软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、 性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、 计算机基础
这在都我的QQ技术交流群里(技术交流和资源共享,广告勿扰)
可以加群免费拿走。还有同行大神一起交流技术哦
获取方式 :
今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦.....
谢邀~说到功能测试如何测试?功能测试里面分了很多种类,比如项目功能里面的功能点测试、兼容性测试、UI界面测试,现在不少企业把接口也归类到功能测试范畴了~
上面几个如果展开的话内容还是比较多的,纯功能里面测试流程、如何测兼容性、界面的测试这些都需要展开测试~
如果楼主有时间的话,可以看一下我们学员分享的笔记~
如果想在测试道路上继续学习的话,需要对功能测试有个深入的了解,那功能测试怎么学习呢?
这里总结了如何学习软件测试的标准学习路线,对于软件测试基础知识的学习,除了软件的基础知识,还有软件的生命周期,软件的开发模型,软件开发有什么样的文档,软件测试的一些基础(比如说软件测试的概念、软件测试的一个流程),开发有模型那软件测试也有项目模型(我们在微模型、X模型、W模型、敏捷下怎样做软件测试这些基础),还有测试的组织架构,以及上升方式(我们一个总监下面可能会有多个经理,然后下面会有主管组长等等这样的标准组织架构,每一个角色都是负责什么的),接下来还有一些常用的软件标准(比如iso,虽然不是每个公司都要通过iso的评定,但是iso规定了一种目前常见的软件工程的实施办法,所以我们测试人员在这样的实施办法中应该有什么样的职责和表现,有什么样的输出和产出)这是针对软件测试的一些基础学习。
接下来把软件测试分为了3个阶段,测试策划阶段、测试设计阶段和测试执行阶段,再有就是测试总结,接下来我们分开来说都分别要学习什么。
测试策划阶段要学什么呢?所有的测试都涉及到的第一件事就是如何去搭建一个软件测试环境,这里可能会用到Linux基础、Linux怎么安装软件、也有针对环境的选择、针对于云端服务的选择等等,测试环境的搭建应该在什么情况下搭建跟生产匹配,或者如何在生产上衰减一类的软件测试环境,搭建的原则和搭建的方法,这是第一个要学习的。第二个就是测试流程,分为需求测试和测试计划,这都是策划步骤,那么需求测试就是在需求阶段,从需求产生到需求评审,我们在这之中针对需求需要做哪些测试。接下来就是针对测试计划、测试方案的一个编写,这是我们整个测试的一个主导作用。
测试策划学习完后就到了测试设计阶段,测试设计里有很多的软件测试方法,比如边界值分析法、等价类设计法、判定表设计、因果图分析、正交实验法以及场景法,那每个方法都是怎么样设计测试用例的,以及怎么样更好的规划软件测试的一个设计,也就是用例的设计,这里就是让大家学习测试用例是怎么样产生的。
到了执行阶段,其实并不是简单的说写好了用例就是来执行的,在执行过程中一定伴随着测试用例的修改,接下来就是发现缺陷,缺陷管理的流程,缺陷跟踪分析的步骤,除了这些我们还要学习易用性测试和兼容性测试这些方面的测试。
最终我们还要有个测试总结,也就是测试报告,我们的个人总结,风险总结,应该如何进行去总结、归纳以及帮助我们去了解未来怎样让这些缺陷尽量避免发生。这是我们针对于软件测试它的一些基础功能测试所要学习的一个路线,从基础知识到测试策划到测试设计到测试执行到总结,那不管怎么学习都要记得动手实战最重要,实践比我们学习一些知识更重要,用一些适用的项目来进行真正的测试实践,比如你可以用支付宝、微信、淘宝等等来模拟你的测试实战,来帮助他们用例设计以及发现问题。
为客户负责的测试项目 ,采取的开发模式是每周一次提测 ,每次提测一到两个模块 ,由于是新项目,故bug会多了一点 。但如果让你在一天内发现30个以上的bug ,这个其实也是比较难的。而且当测试的功能多了,提的bug多了 ,最容易就是乱。 到最后连你自己都不知道测试的如何?覆盖率如何 。 那么,该如何保证效率的同时,又能保证测试覆盖率呢 ?
以下是本人在测试过程中的一次经历 ,在一个小时内发现10个bug ,半天内提交48个bug的经历 。最快时相当于每6分钟提交一个bug ,除去提交一个bug的时间大约花2~3分钟 ,发现一个bug的实际时间大约也就2~3分钟
将上面的经历总了一个小的总结 ,具体如下 :
方法1 : 清除数据 。
数据可能是测试人员接触最多的,每天会创建各种不同数据,有正常数据、异常数据 ,业务数据、流程数据等。很多bug其实就是使用了不同的数据才发现的,比如测试人员使用最熟练的就是特殊字符,只要是个输入框就要输入特殊字符试试 。但是测试数据多了也会比较麻烦,很多数据最后都变成了垃圾数据了,造成一些测试影响。
所以,第一个建议就是每隔一段时间清除一遍业务数据 ,防止这些数据的干扰和影响 。 由于数据被清空 ,所有功能都的重头开始测试,在这种情况下,往往能发现一些之前没有发现的bug 。这些bug基本都在初始化状态下才会出现的 。
第二个建议就是你最好写了一个SQL清除脚本 ,因为清除数据是定时要做的,每隔一段时间做一次 ,所以你后面使用起来就方便多了 。每次清除时只需执行一下就可以了 。
方法2 :数据设置规则
很多测试人员在添加数据时非常随意 ,他们测试一个功能往往是在每个字段中随意输入几个字符,添加上这么几条数据,查看下显示没有问题,这个功能算验证通过了 。
这种测试方式除了没法保证覆盖率之外,最主要的就是数据多了容易乱 ,如果数据之间相互调用那就更乱了 。 所以 ,建议将数据设置为一定规则 ,给数据设置规则至少有两个好处 。
(1)可以快速统计数据的覆盖情况 ,比如你要输入的数据中包括中文,英文,特殊字符 ,长度的边界值 ,各种分类的数据。这样你就可以某一个字段中标记要覆盖的数据类型,要覆盖的。具体如下 :
(2)规则可以让我们快速的测试 ,因为有很多数据需要分类,只要一分类,如果不给数据设置个规则 ,数据多了就特别容易乱,严重影响测试。 比如下面的这个功能 ,每个运营商都会有ICCID号,而且这个号在其它功能中也会多次使用,如果你随便填,在其它功能使用就容易乱 。所以 ,我会按运营商给它编号 ,比如移动编号从A100开始 ,联通从B100开始,电信从C100开始 。后面使用时我只要看字母就知道是那个运营商的的ICCID号 。
方法3 : 验证功能逻辑
有时候 ,当我们完成一个功能操作后 ,往往会在好几功能中有所展现 。比如完成一个支付操作 ,你会看到有支付记录 ,同时也会账号金额发生变化 ,并且在统计中也会有订单数统计等等 。
所以我们往往测试一个功能, 从点击按钮开始,到返回数据的期间,系统在此期间系统做了什么? 如何能体现出来 ?在哪里体现 ?这些都是我们要验证的逻辑,在这个逻辑中,最重要的则是我们看不见的那一部分 ,即点击按钮后服务端所做的业务处理 。
要了解这部分的业务处理,就需要以白盒的视角去看系统的内部处理 ,这样你才能覆盖到它的真正逻辑 。 这里推荐一种测试方法,探索式测试 ,个人认为验证这种内部逻辑实现有很大作用 。
这种测试方法简单的说就是通过一边验证, 一边学习(学习业务逻辑),从学习中获得反馈,从反馈中计新用例进行继续验证 ,如此循环验证,只到你认为这个内部逻辑已经非常熟悉并且已经没有问题即可结束。
方法4 : 回顾覆盖率情况
覆盖率是在测试过程中是必须要考虑的,在测试过程中,至少要从两个方面进行考虑 ,即功能覆盖率 ,其它类型的覆盖率 。 每一种类型又都可以细分子类 ,比如我会把功能分为功能操作 ,功能逻辑 ,功能交互 。每一种子分类都是事先总结好的,有那几种情况 ,使用那几种方法,到时候使用即可 。
然后将细分到子类的测试类型和功能进行正交,得到了要测试的范围 。你所要做的就是按照范围去进行覆盖 。一般这个测试范围我都会使用一个表格来维护,以实时的了解当前的测试进度,同时只要是进入到测试阶段都会每天发测试日报 。
最后,通常每天测试完都要评估下覆盖率 ,因为有时候你没有去执行测试用例 ,这种情况下你更的评估下覆盖率 ,测试了那些模块 ,是从哪方面进行测试的 ,应该还有那些方面没有覆盖到 ,最后记录到覆盖率表中,随同日报一起发出去 。
方法5 : 易用性测试
按照ISO9126质量模型 ,我们说易用性主要包括:易理解 ,易操作性 。
所谓的易理解,主要是能使的操作的用户更容易理解 ,比如各个界面的提示一致性就能提升用户的理解度 ,再比如像下面这样比较模式的字段加上注解也能提示用户的理解度 。
如果你是自己测试,这些易理解性都可以从bug中总结出来,所以 ,建议你测试完多总结bug,肯定对你发现bug有一定帮助 ;另外一个方法就是多关注好的产品的设计,比如你现在测试一个电商网站的添加地址提示框 ,如果你觉得不太清楚这个提示框是否合理 ,你就可以参考京东、天猫的网站,看看人家的设计,然后也可以见解过来 。
易操作性,主要遵循一个原则就行,就是减少用户的操作步骤,比如设置默认的数据 。像下面这个bug,如果你不知道这个易操作性,很多人是发现不了这个bug的(虽然简单)。总之,只要能通过一步搞定的就不需要两步,能不需要操作的就直接省了操作步骤。比如百度以前需要搜索关键字搜索,现在直接给你把热点展示出来,你可以直接点击查看,省去搜索步骤。
方法6 : 效率提升
一提到效率,很多人首先想到的就是自动化 ,但自动化测试只是提升效率的一种方式 。只要能提升测试效率和质量。无论是策略,方法,脚本,工具都是值得见解和学习的。
提升效率和质量的需求其实就来至于我们平时的测试中的痛点。只要在平时测试时就要注意细节、注意观察。这些需求是不难发现的,比如:观察在执行时那些地方会占用时间,那些地方测试起来不方便。这些费事费力的活可否优化?如何优化?目前市面上有那些好的实践。这些测试痛点,正是我们优化和改善的地方 。
以提升效率为例 。在测试过程中,如遇到构造数据不方便 ,那就可以编写个脚本自动生成测试数据 ;比如有些功能需要大量运算 ,人工算起来太费劲 ,那就编写工具来代替你运算 。
下面的截图就是我说测试的项目,添加数据时不方便的一个例子 ,若让你手工添加这些数据,肯定很不方便 。但是若让你写个脚本解决的话,相对来说就轻松搞定。
功能测试主要采用黑盒测试方法,结合测试内容对功能进行测试,同时在测试过程中对用户需求、设计文档和使用手册进行检查。测试方法主要根据测试对象的不同灵活进行选择。
功能测试主要分为功能模块测试和业务流程测试,同时在测试过程中对用户需求、设计文档和使用手册进行检查。
功能模块测试主要可采用黑盒测试策略设计测试用例,进行测试。主要功能模块测试的测试用例设计方法包括:
1.等价类划分法:等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
2.边界值分析法:针对功能说明中的输入输出域,进行边界值和极限值的设计和测试。
3.因果图法:以需求设计说明书为依据设计业务测试流程图和测试案例。
4.错误推测法:采用逆向思维方式,结合以往测试经验和直觉设计软件在功能和流程上可能存在的各种错误,进行容错性测试。
业务流程测试主要是在功能点测试的基础上,测试系统完成某项业务的能力。业务流程重点考查系统不同模块、不同子系统之间的功能衔接、数据流向以及完成业务功能的正确性和便利性。按照以下原则进行流程测试:
1.先测功能后测流程:业务流程测试是建立在功能点测试基础上的。首先要保证流程测试涉及到的功能点实现正确,所以,流程测试安排在功能测试的后面进行。
2.先测主流程后测分支流程:主流程就是指按照正常情况实现的业务流程,分支流程指出现特殊情况后的业务流程。
3.先测子系统内的流程,后测子系统间的流程:子系统内的流程测试随子系统的功能测试进行。
一、前言
功能测试是测试工程师的基础工作,很多人功能测试还做不好,就想去做性能测试、自动化测试。很多人对功能测试的理解就是点点点,如何自己不用心去悟,去研究,那么你的职业生涯也就停留在点点点上了。在这里,我把我对功能测试的理解写下来。
二、功能测试所需要掌握的技能
2.1 熟练使用SQL
1、常用的 sql 语句一定会写。比如说增删改查之类。
2、了解数据库的事务、会编写存储过程、熟练常用的系统函数。
3、了解并可以进行数据库的备份、迁移、还原、镜像等操作
4、对 sql 语句进行调优,并对可以对运行的语句监控查看性能
5、了解数据库集群等操作。
2.2 Linux
Linux是测试人员的基础功,不需要掌握太难或者很不常见的Linux命令,正常能做到查看日志,定位问题就可以了。
1、基本命令
常用的Linux基本命令,面试经常会问的,或者给出一种场景,问你用什么命令。
具体请看:
https://www.cnblogs.com/bianfengjie/p/9213180.html
2、查看日志
初级测试人员在工作时经常遇到,发现bug,开发商不承认或者不愿意解决的情况,测试人员怎么摆脱这样的问题呢?
那就是根据发现的bug根据日志级别,来查看日志,定位问题。
那这里首先要说一下日志级别了。
首先记住这一点:日志级别越高,输出的信息越少 。
具体的日志级别分为四级:
info : 代码 info 信息,不包括sql语句等一些debug信息
warning warning : 代码警告信息
error : 程序本身报错信息
java.lang.outindexERROR.....
critical :几乎用不到
一般不符合需求的bug存在 debug中,程序本身报错的bug在 error中。
2.3 使用数据库,跟数据流向
关于数据库,请见另外一篇博文。
1、数据库的本质
常见数据库主要是MAYSQL、ORECAL、Redis
其中Mysql数据库是典型的关系型数据库
2、数据库操作
(1) 数据库和表操作
(2)表数据操作
(3)复杂sql查询
2.4 写好测试用例
在测试过程中很重要的一类文档,它是测试工作的核心、是一组在测试时输入输出的标准、是软件需求的具体对照。编写测试用例,是测试人员的基本功,但是真正能写好的人并不多。
测试用例必须包含的内容:
用例编号、用例名称、测试背景、前置条件、优先级、重要级、测试数据、测试步骤、预期结果、实际结果、备注。
1、测试用例的编写流程
需求分析->提取测试点->测试用例编写->测试用例评审
2、编写测试用例的思路
(1)根据产品的RPD,提取测试点。
(2)根据数据流的走向。
(3)根据的架构部署。
(4)编写测试用例的常用方法:等价类划分法、边界值分析法、流程图法等。
(5)覆盖弱网测试、接口测试、安全测试、性能测试等。
(6)常用测试工具有:Postman、 Charles、 Fiddler 、Jemter、Loadrunner等。
3、编写测试用例注意事项
(1)根据项目的实际情况设计测试用例表格
(2)用例格式不要生搬硬套
(3)根据具体情况编写
(4)学会质疑需求,不要完全按照需求来写测试用例,要从客户和产品的角度来理解需求,看到需求之外的功能和体验
4、管理测试用例
为什么要管理测试用例?
(1)测试用例数目巨大
(2)测试用例会根据需求的改变而改变
(3)测试用例需要长期补充完善
如何管理测试用例?
(1)原始的Excel管理
(2)专业的项目管理系统(eg:git、禅道、JIRA、Confiuence等)一般都为web格式
具体参考:
https://blog.csdn.net/sdr_zd/article/details/70453027?locationNum=6&fps=1
2.5 http与https协议
关与HTTP和HTTPS协议,请点击:
https://www.cnblogs.com/bianfengjie/p/9213131.html
面试经常关于Http协议的下面几个问题
1、Http协议原理
2、http和http协议的区别
3、TCP和UDP的区别
4、session和token的区别
5、公钥和私钥的理解
6、get和post的区别
7、从输入URL到页面加载发生了什么
8、什么叫代理,正向代理和反向代理?
2.6 了解业务
做功能测试,一定要了解业务,甚至理解业务。只有把业务吃透,才能把功能测试做好,并且有一定的提高。
业务熟悉后,会知道很多常识,知道下面的常识之后,你就可以尝试进阶,学习做自动化测试、接口测试、性能测试
1、什么时候介入自动化 => 当系统趋于稳定的时候
2、什么时候介入接口测试 => 当接口开发完毕的时候
3、什么时候介入性能测试 => 当出现促销的时候,或者抢购的时候(618大促,过年抢火车票,抢优惠券)
比如说,5000张优惠券,大概有多少人抢,在多长时间内抢完
2.7 bug管理
做功能测试,还有个很重要的工作就是bug管理,一个优秀的的测试人员,线上bug非常多,多于和你一起工作的其他同事,但是线上bug非常少,少于其他同事。
1、 bug定义
(1)不符合需求的
(2)程序本身报错
(3)不符合用户的使用习惯
2、bug生命周期当我们测试人员提交一个bug的时候,自始bug就有它的生命周期,从开始到
结束,生命周期如下
3、bug单内容
Bug描述(summary)
环境信息:操作系统/数据库/浏览器/软件版本 (
OS/Database/Project/Build/Release)
所属功能模块
测试/开发人员
严重等级(1-5)
客户优先级
风险程度
状态
重现步骤
实际结果
是否要回归的问题
等
具体参考:
https://blog.csdn.net/ewq159/article/details/79500546
4、测试报告
把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件存在的质量问题提供依据,
同时为软件验收和交付打下基础测试报告和测试计划一样,一般由测试leader编写,测试人员需要了解一下测试报告中都有哪些内容
2.8 典型bug
1、抓包作用: 测试一个app搜索功能,抓包,抓到一个搜索接口,突然发现抓到了两个请求接口 -> 当访问量上来了,服务的压力上升两倍
2、数据流走向 : 测试的时候发现页面上数据只有一条,但是数据库里面多了一条 -> 1、数据量变大,查询速度变慢 2、脏数据太多,瞬间爆满,程序崩溃了
3、弱网测试:app项目一定要有弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)
三、小结
总结下来,做好功能测试并不是一件容易的事情。我做了两年的互联网功能测试来,还是很多知识不明白,只有不断地学习,自己才能成才。
很多人功能测试都做不好,就想做性能测试、自动化测试,其实是好高骛远,我觉得基础打好了,再去学习性能测试、自动化测试什么什么的,肯定事半功倍。
感谢每一个认真阅读我文章的人!!!
如果下面这些资料用得到的话可以直接拿走:
1、自学开发或者测试必备的完整项目源码与环境
2、测试工作中所有模板(测试计划、测试用例、测试报告等)
3、软件测试经典面试题
4、Python/Java自动化测试实战.pdf
5、Jmeter/postman接口测试全套视频获取
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。
一、什么是功能测试?
功能测试俗称:“点点点测试”。
就是每天拿着鼠标操作系统业务模块、功能,模拟真实的用户场景来发现问题。
点点点测试工作含量低,可替代性强。
只要是个人能看懂需求文档,学过软件测试理论专业知识就能完成功能测试。
功能测试不能完全发现系统中的问题,因为功能测试不用考虑程序内部的逻辑结构原理过程。
只能通过操作软件的输入、输出根据需求来判断结果的正确的。
通透表像很难看到本质性的问题。
所以点点点测试最没前途,最容易被环境卷掉。
除非你们企业做的传统软件测试,业务复杂,把功能测试做好后期可往产品经理方向转型。
二、为什么要实施功能测试?
软件产品从婴儿期开始成长,需要根据敏捷开发的模式不断迭代更新。
产品处于不同的发展阶段,会存在系统业务、架构、用户体能、服务器、多线程、业务逻辑等方面的问题。
如果没有人来发现这些问题,系统的质量就难以保障。
未经过测试的软件产品质量风险大,所以在产品初期需要做好功能测试。
三,如何开展功能测试?
功能测试主要依据软件测试的流程步骤和过程来开展。
软件测试流程如下图所示:
第一,根据需求文档分析业务功能模块。
第二,编写测试计划
第三,根据理解的需求文档内容编写测试点
第四,再根据测试点细化生成测试用例。
第五,评审用例 。
第六,实施项目冒烟测试
第七,开展详细测试
第八,缺陷跟踪。
第九,编写测试总结与测试报告。
总之,功能测试工作最简单,大家只要把测试流程的过程掌握好,基本按照测试流程阶段活动开展即可。
四、功能测试与其它测试的区别
黑盒测试:不需要写代码,通过输入值,查看程序是否能够输出预期。
黑盒测试基于界面的
黑盒测试不用考虑内部逻辑结构,实施简单。
黑盒测试可替代性强,技术含量低,仅仅会黑盒测试容易沦陷为底层程序员。
黑盒测试可往测试管理方向发展,如果想转测试开发速度慢,需要额外补充编程方面的知识,能转只是消耗时间较多。
白盒测试:通过编写代码开展单元测试,关注程序内部的执行过程,从而发现系统中存在的bug。
白盒测试基于单元测试代码层面的。
白盒测试需要学习编程,通过编写单元测试代码来检测程序的内部逻辑结构问题。
白盒测试技术含量高,国内真正实施白盒测试的企业除了大厂,中小型企业很少有实施。
白盒测试发展方向广阔,可以往更高级测试开发方向发展。
总之,实施功能测试流程步骤和方法只要按照上述九步操作实施即可。
如果想要提升白盒测试还需要加强编程能力的提升。
更多关于白盒测试知识的文章,请移步:
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
功能测试也叫黑盒测试或数据驱动测试,只需考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码.一般从软件产品的界面、架构出发,按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。
按照产出的文档,介绍项目开发过程中的工作步骤:
一
测试计划:这个计划,我个人觉得应该在详细设计确定后,代码开始编写的时候进行制定,因为我是“提早开始测试工作”思路的忠实fans.
1.测试计划,主要是给后面的测试工作一些指南,不能写成领导看的计划,而是要写成由做事的人看的计划
2.包含的内容可能有:
(1) 测试团队人员及分工(要确定当测试时出现缺陷界定、测试环境准备等问题时能找到指定的人员)
(2) 测试开始结束时间(理想情况下,不要安排的太紧,赶工肯定会造成延期或测试不完整,可惜理想和现实的差距被规定为很大)
(3)测试环境配置(什么样的硬件条件,是否网络、设备等,系统在什么地址访问,访问权限、使用的测试数据等方面的预计和准备)
(4)测试哪些东西要说清楚,这里我建议把简单的测试大纲纳入测试计划中,一方面领导可以看到你的计划写的多详细,另一方面大纲可以很好的成为编写用例的依据
(5)怎么测试要说明白,如只做系统测试,那就要写清楚不做集成测试,如果需要集成测试,就需要写明白集成顺序。另外如果需要进行性能、文档、等其他的测试也要在这个计划中写明,虽然一般这个计划都是针对功能测试,但是如果有其他测试,也要写出来并安排时间,相应测试的相关计划等也需要指明
(6) 测试结束标志(要说明测试达到什么程度可以结束测试,不能等到把所有缺陷都找出来以后才结束,因为那将是一万年),允许缺陷存留在系统里,我们只需要找到留多少这个度就够了
二
测试用例:这个文档,主要描述具体的测试步骤
但实际应用中,至少目前我的项目里,由于时间的原因,很少有写的,就算写了的,也基本没有用到测试里,在这边的很多项目大都是直接来测,全凭我个人的经验来检查(在此感谢领导们对于我二把刀技术的信任_@_)。
但是我想说其实他很重要,也许你不需要写的很详细,但是绝对需要通过这样的步骤来理顺思路,这个文档的好坏和实用程度,直接可以决定你是否能“用最少的工作(量和时间),尽早的发现尽可能多的缺陷”,写这个文档需要用到一些测试方法理论,如等价类划分、边界值、这个表那个表(汗。。。忘记了)
三
缺陷记录:是功能测试过程中使用频率最高的文档,用于在测试过程中记录发现的缺陷,并由开发人员作为修改缺陷的依据,以及修改后测试人员进行回测的主要依据
1. 该文当也有助于分析开发人员存在的“错误集群”现象,总结易出错的地方,对缺陷多的部分做更深入的测试,并提醒开发人员避免缺陷
2.缺陷记录填写指南:
(1)缺陷级别(即严重程度),一般由公司统一定义,为发现的缺陷进行分类,以便决定修改的缓急
(2)bug分类:区分发生的位置,是功能的,还是性能的,是有效性问题 还是其他问题等,与bug级别一起,用于决定bug的修改要求度
(3)bug状态:是标志bug的当前情况,标识是否被处置(关闭状态)
(4)上述这些指标一般由公司统一定义(一般标准都大同小异),也会用于项目的度量
3.缺陷记录使用时的注意点:
(1)描述bug要有三要素:在哪里,什么情况(前提)下,发生了什么样的问题
(2)可以借助截图、引用位置、模块等方式来描述bug,目的是让开发人员能够通过您的描述立刻马上能够重现bug,即使不能重现,也能让开发人员了解到错误的所在
(3)缺陷报告要由开发人员和测试人员共同完成,测试人员要督促开发人员填写该表以便测试后续的回测工作
(4) 如果是在执行用例的同时填写bug报告,用例的最后一列一般可以填写用例的执行结果,如果用例发生了非期望的结果,那么就要把问题记录在缺陷记录中,此时可以在缺陷记录中引用该用例的编号
四
测试总结报告:用于报告和总结项目测试工作的执行结果,列举和统计相关测试数据,对比分析数据即工作中存在的问题为后续工作做出提示,并记录遗留的问题等
1. 总结报告的还有一个功能就是告诉项目组成员该系统已经按照测试计划的要求进行了测试,并已经达到测试计划中说明的“测试结束条件”,可以证明系统已经达到测试计划所期望的质量
根据需求设计测试用例,大部分为流程性用例,尽量覆盖所有流程分支,然后根据这些流程分支进行操作,确认是否符合需求说明书中的功能。
功能测试流程:
别找了,这里都是干货!初学者必学内容!
关注我!持续更新,带小白入行!
1.软件测试分哪2种方法?分别适合什么情况?
软件测试分2种:白盒测试和黑盒测试。
白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,它着重于程序的内部结构及算法,通常不关心功能与性能指标;
黑盒测试又称功能测试、数据驱动测试或基于规格说明的测试,它实际上是站在最终用户的立场,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定
2. 白盒测试有几种方法?
总体上分为静态方法和动态方法两大类。
静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义
动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
2. 软件Bug的类型有哪些?
功能bug、系统bug、加工bug、数据bug、代码bug
4、在使用5W1H原则制定测试计划时,5W1H指的是?
Why:为什么要进行这些测试?
What:测试哪些方面,不同阶段的工作内容
Where:相应文档,缺陷的存放位置,测试环境等
When:测试不同阶段的起止时间
Who :项目有关人员组成,安排哪些测试人员进行测试
How:如何去做,使用哪些测试工具以及测试方法进行测试
5、Apache和mysq常用命令有哪些
执行/opt/zbox/zbox/ start命令开启Apache和Mysql
执行/opt/zbox/zbox/ stop命令停止Apache和Mysql
执行/opt/zbox/zbox/ restart 命令重启Apache和Mysql
根据需求文档进行测试呗,要写好测试用例。