一、谈谈你了解的软件测试流程及工具

一般测试流程:

1.需求分析阶段:对业务的学习,分析需求点。

2.测试计划阶段:测试组长根据SOW开始编写《测试计划》,其中包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。 3.测试设计阶段:测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求根据《SRS》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案。《测试方案》编写完成后也需要进行评审。 4.测试方案阶段:主要是对测试用例和规程的设计。测试用例是根据《测试方案》来编写的,通过《测试方案》阶段,测试人员对整个系统需求有了详细的理解。这时开始编写用例才能保证用例的可执行和对需求的覆盖。测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,测试用例也需要评审。

5.测试执行阶段:执行测试用例,及时提交有质量的Bug和测试日报,测试报告等相关文档。 流程:

需求分析→测试计划→测试设计→测试环境搭建→测试执行→测试记录→缺陷管理→软件评估→RTM. 测试工具:

C/S及B/S架构相关的软件产品,那么对不同操作系统,如Windows系列、unix、linux甚至苹果OS等

测试环境都是必须的

常用的软件测试工具分为:

开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis 开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject

开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web ApplicationLoadSimulator

[TestDirector]:企业级测试管理工具,也是业界第一个基于Web的测试管理系统。 [Quality Center]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。 [QuickTest Professional]:用于创建功能和回归测试。 [LoadRunner]:预测系统行为和性能的负载测试工具。

二、如何发现客户端软件中的内存泄露?

检测内存泄漏的问题应该尽早进行,它绝不应该是系统测试时的主要目标。也就是说,检查是否存在内存泄漏,应该从编码时就要考虑,单元测试和集成测试时要重点检查。如果前期没有考虑,等到了系统测试才想起检查或者才发现泄漏,为时已晚,此时再去定位泄漏的位置,太难太难了,它可能会让你的交付日期delay不确定的时间。 最近看了一些自动错误预防(AEP)的理论,我深受启发。作为测试人员的我们,从“发现错误”转变到“帮助开

发人员预防错误”,这将是一个巨大的转变。所以说,下面我的答案中的第一点,我先说如何预防内存泄漏的问题,然后再讲如何发现。 1 如何在开发过程中有效预防内存泄漏? 第一步:遵循“好”的编程规则

“好”的编程规则是各位前辈经验和教训的集合,好的编程规则堪称开发者的“圣经”。遵循统一的编程规则,可以让开发新手少走好多弯路,可以让项目整体的质量维持一个起码的“质量底线”。

有关内存泄漏方面的规则主要是“内存管理”方面的,举几个简单的,如下

×用malloc或new申请内存之后,立即检查指针值是否为NULL(防止使用指针值为NULL的内存)

×动态内存的申请与释放是否配对(防止内存泄漏)

×malloc语句是否正确无误?例如字节数是否正确?类型转换是否正确

×是否出现野指针,例如用free或delete释放了内存之后,忘记将指针设置为NULL ... ...

第二步:积极主动检测“内存泄漏”

严格遵循好的编程规则,可以让程序员在代码中尽量少的引入bug,但一旦不小心引入了,怎么办?这就要求我们在单元测试和集成测试中严格把关。 在这个阶段,单靠程序员或者测试员通过“代码走查”的方式检查内存泄漏,客户的实践和我的经验告诉我,这将是“不切实际”的,无论效率还是时间。如果能够借助于一些专业的工具的话,情况可能就不一样了。 如果你的程序是用Visual C++ 6.0开发,那么Numega的BoundsChecker将是你检测“内存泄漏”最好的选择,如果是Visual C++.NET,可以试一下Compuware的DevPartner。 如果你的程序基于Unix或者Linux平台,使用C或者C++,可以考虑一下开源的工具valgrind,我的朋友跟我说,它在一定程度上比Rational的Purify更出色。 上面的工具都要求程序能够动态运行起来,而且测试用例需要你自己准备。

如果你正处于单元测试或集成测试阶段,程序代码量已经足够大,而且还不能够动态运行,要尽早检测代码中的“内存泄漏”问题,该怎么办?此时你可以试用一下目前最新的静态分析技术:

×它不要求代码能够动态运行 ×也不需要你来编写测试用例 ×只需要代码能够正常编译,就可以发现代码只有在执行过程中才出现的错误,当然也包括内存泄漏。

这方面的工具有Klocwork的K7,Coverity的SQS,以及C++test中的BugDetective,其中最“物美价廉”的就是c++test的BugDetective。 2 如何发现客户端软件的“内存泄漏”? 如果开发过程中已经按照我上面提到的去做,相信发布后的程序存在“内存泄漏”的可能性几乎为零。

如果开发过程已经到了后期,系统测试已经开始做了,还要发现内存泄漏,这个时候我希望你能够拿到源代码。如果有源代码,你还可以考虑1中的第二步,借助于专业的工具协助,虽然可能效果不一定特别理想,但总比下面我提到的方法更好一些。 当然作为测试人员,我当然也理解事情总没有想像那么完美。我们通常会碰到“需要在系统测试阶段检测是否有内存泄漏,而且没有源代码”的难题。我曾经也遇到过。 记得那还是2002年的事情了。当时我承接的项目是一个电力行业的自动化系统,分为server端和client端,典型的c/s模式,老板要求在测试功能的同时顺便检查内存泄漏的问题,

因为这个client端在客户那里可能是长时间不间断运行的,虽然客户很少操作。我当时很为难,因为没有源代码,我甚至无法做“代码走查”。在做功能测试的同时,我一直在琢磨...... 采用什么手段呢?

最后,借助于WinRunner,我出色的完成了任务,起码我的老板相信我的测试是可信的。我的方法是这样的。

×首先咨询开发方,了解到关于内存操作频繁的功能点和模块

×从我的功能测试用例中挑选出和这些功能点和模块相关的测试用例 ×找到一个“纯净”的机器,上面除了操作系统和被测的client端外,没有任何其他应用,这样做是为了排除其他应用可能存在的干扰。

×借助于WinRunner,自动化这些用例,形成自动化的脚本;在脚本的最后,添加“切换到Windows任务管理器”“记录该client进程所占用内存数据到文件”的操作脚本。 ×连续运行N个小时

×最后我打开这个数据文件,可以发现在该客户端运行过程中,每次执行完特定的测试用例后,记录的内存占用数据。当时我得出的结论是该client程序有“少许”的内存泄漏,因为在连续运行了72小时后,内存使用增加了近百分之十几。我会把这些数据导入到EXCEL中绘成了一个图表,这样更直观一些。经过简单的计算(内存的增量/用例循环次数),得到用例每次执行后增加的内存使用值,即泄漏的内存数量,然后把操作过程和这个结果一起交给开发方,最后开发方根据我的信息,真的找到了一处有内存泄漏的地方,虽然泄漏的数量很少。

以上就是我有过的一个类似的经历,我觉得可以提供给大家参考,同时也可以“举一反三,融会贯通”。如B/S的客户端控件,可以用QTP协助完成。 在测试的最后阶段要去发现甚至定位内存泄漏挺难的,但只要发挥我们测试人员的主观能动性,总是找到一些“旁门左道”的测试手段。

最后,我个人认为,从时间成本和各种风险考虑,要避免内存泄漏的问题,还是要回到前期的预防,即编程过程的规则检查和单元测试阶段主动的检测。 一家之言,欢迎讨论。

2014年软件测试工程师,2014年软件测试工程师题目相关推荐

  1. 软件测试职业培训中心,软件测试工程师就业班

    [课程内容] 一.破冰行动 开学典礼 二.软件测试基础理论 1.软件测试背景知识 2.软件工程基本理论 3.软件质量 4.软件测试概论 5.软件测试类型 6.软件测试基本理论 7.软件测试管理 8.测 ...

  2. 计算机四级嵌入式真题,2014年3月计算机四级嵌入式工程师真题试题及答案

    2014年3月计算机四级嵌入式工程师真题试题及答案 一.项选择题 1.在进行操作系统设计时,下列哪一个是构造操作系统的方法? A.网络式结构 B.并行式结构 C.微内核结构 D.主从式结构 2.在不同 ...

  3. 【测试工程师】关于软件测试的10条建议

    现在市场上有这么个普遍现象,软件测试招聘和求职,特别是在一二线软件测试从业者最苦恼的事--测试招聘和测试求职.现在互联网公司为了能找到一个适合本公司的测试小伙伴,真的是难如上青天,每天招聘网站各种撒网 ...

  4. 软件测试工程师和技术支持工程师哪个更有钱途,以后会发展更好?

    从互联网从业者来看,这两个职位都不是很有钱途. 软件测试和技术支持共同的特点是:入门容易,入行容易,想赚大钱不易.一般而言,技术含量越低的工作,物质回报就会越低,是成正比的.软件测试是"测试 ...

  5. 深圳软件测试培训:刚入行的软件测试工程师如何自学软件测试?

    深圳软件测试培训:刚入行的软件测试工程师如何自学软件测试? 从题干上看,你是已经进入了软件测试行业,有了一份软件测试的工作,那表示你看好这个行业,有意愿在这个行业持续发展. 软件测试相对一些开发的专业 ...

  6. 2023年软件测试的前景?测试工程师技能提升,进阶自动化测试...

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  7. 软件测试职业发展规划?软件测试工程师是青春饭吗?

    目录:导读 一:前言:人生的十字路口反思 二.软件测试能干多久?测试工程师是吃青春饭的吗? 三.软件测试工程师职业发展方向和细分领域 四.软件测试工程师如何才能干一辈子!!! 五.总结 一:前言:人生 ...

  8. 化工软件测试工程师待遇怎么样,软件测试工作怎么样?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 对于很多人而言,既然选择加入软件测试行业,一方面是看重软件测试岗位在国内越来越受到就业市场的重视,另一方面也是因为软件测试员有着很好的发展前景和就业方向. ...

  9. 软件测试入门之软件测试的原则与测试工程师的要求(了解即可)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/1 ...

  10. 京东软件测试工程师面试,京东软件测试面试题.docx

    京东软件测试面试题 京东软件测试面试题 今年有换换环境的打算,就先拿以前非常粗糙的简历,投了几份(印象中有央视网,某个网银类的,京东),要说反应快的还是市场化的京东.不得不点赞 上我我从地铁到亦庄,到 ...

最新文章

  1. MySQL数据库字符集和整理
  2. gin将请求体绑定到不同的结构体中
  3. Java并发编程实战系列15之原子遍历与非阻塞同步机制(Atomic Variables and Non-blocking Synchronization)...
  4. Java实现螺旋矩阵
  5. Unity 3D观察者设计模式-C#委托和事件的运用
  6. 蛋花花APP,APP开发这几点你要注意了
  7. LeetCode 841. 钥匙和房间(DFS/BFS)
  8. Java插件项目不能转了问题
  9. All xxx functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
  10. 求计算机技术在创新上的应用,计算机技术在企业中的应用
  11. AO如何获取SDE数据库中的数据
  12. Python修改图像尺寸
  13. SkeyeLive同屏直播库库功能介绍和接口说明与调用
  14. iOS下86版五笔输入法练习程序(作为备忘,最基本功能的演示demo,版本:0.99版)
  15. 斗鱼已公开的运维技术和架构分析
  16. 如何让linux时间与internet时间同步(centos)
  17. siamfc-pytorch代码讲解(三):demotrack
  18. 超强!Figma汉化版下载教程来了!
  19. 服务器被打了之后怎么办?
  20. java抽奖_JAVA实现用户抽奖功能(附完整代码)

热门文章

  1. git的基本使用---在coding上进行拉取、提交代码
  2. 网络爬虫笔记 :一个简单的爬虫框架
  3. pythonppt_用Python实现ppt转化图片(附带长图合并功能)
  4. 为Mybatis-Plus配置乐观锁使得数据同步
  5. 将对象转为需要的数组形式
  6. 循环链表构建及解决约瑟夫环、逢七过、链表逆置问题
  7. 有两个磁盘文件 textl.txt text2.txt ,各存放一行英文字母,要求把这两个文件中的信息合并(按字母顺序排列),然后输出到 个新文件 text3.txt
  8. manjaro远程linux,manjaro服务器的配置
  9. Media change: lase insert the disc labled
  10. 蓝桥杯嵌入式 ---- “空手套白狼“ 之 按键长按 短按