• 软件测试基础知识


    最近听我的导师-小蚂蚁(博客地址:http://www.blogjava.net/lijun_li/)给大家讲的软件测试基础知识,感觉讲的挺好的,把原文贴出来跟大家共享!!!

    一、软件测试概念

    什么是软件测试?百度百科上,软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

    其实说直白一点,就是找bug。

    二、软件测试目的

    软件测试的目的,就是基于概念而言的。其目的大概分为以下几种:

    1.发现软件的缺陷

    2.提高软件质量

    3.软件开发,测试过程改进

    4.评估软件质量

    5.降低公司对软件的维护成本

    6.降低软件发布后,对公司负面影响的风险

    三、软件测试模型

    常见的软件测试模型包括V模型、W模型、H模型、X模型和前置模型。这里暂且介绍常用的V模型及W模型。

    1.V模型

    V模型是最具有代表意义的测试模型。V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。

       用户需求                           验收测试  
            需求分析和系统设计         确认测试和系统测试 
                 概要设计         集成测试
                    详细设计   单元测试
                           编码

    1)从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。

    2)左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段。

    优点:V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。

    缺点:仅仅把测试过程作为在需求分析系统设计及编码之后的一个阶段;忽视了测试对需求分析系统设计的验证,一直到后期的验收测试才被发现。

    2.W模型

    W模型由Evolutif公司公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,明确表示出了测试与开发的并行关系。

    W模型中测试与开发对应关系如下:

    开发:需求分析、概要设计、  详细设计、  编码、  软件集成、系统集成、部署
         ↑    ↑       ↑     ↑      ↑    ↑   ↑
    测试:需求评审、概要设计评审、详细设计评审、单元测试、集成测试、系统测试、验收测试

    优点:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。W模型有利于尽早地全面的发现问题。

    例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。

    局限性:在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。

    四、软件测试基本流程

    根据上述的W模型,软件测试基本流程包括如下:

    1.测试需求分析

    2.测试计划

    3.测试设计(测试策略、测试用例)

    4.测试执行(手工测试、测试工具)

    5.缺陷跟踪

    6.回归测试

    7.编写测试报告

    这里要注意,一般产品有需求之后,会有需求评审会,测试会一并参加,并需要在会议上积极发言,提出自己不清楚或有疑问的需求点。这样更有利于后期测试用例的编写。

    测试流程是这样,但是,还是要真正动手测试,才能更加深刻的理解软件测试流程中的每个阶段含义。

    五、软件测试的基本方法

    1.测试技术原理

    1)黑盒测试,主要有等价类划分法、场景法等

    2)灰盒测试

    3)白盒测试,主要有静态测试、动态测试

    4)探索性测试

    2.测试策略

    测试策略大概分为以下几种:

    数据和数据库完整性测试、接口测试、集成测试(业务流程测试)、功能测试、用户界面测试(用户友好性测试)、性能测试、浏览器兼容性测试、负载测试、强度测试、安全性和访问控制测试、故障转移和恢复测试、配置测试、安装测试。

    我们要根据测试处于开发、测试的对应阶段,分析测试需求,合理的去应用测试技术原理和测试策略。要具体情况具体分析。

    六、软件测试工具

    1.功能测试工具

    1)WinRunner(Mercury公司)

    2)Robot、XDE tester(IBM公司)

    3)TestComplete

    4)Ruby+watir(开源)

    2.单元测试工具

    1)DUnit(Delphi)

    2)JTest、Junit(java)

    3)NUnit(.NET)

    3.性能测试工具

    1)LoadRunner(Mercury公司)

    2)Apache Jmeter(开源)

    3)Siege(开源)

    4)Robot(IBM公司)

    5)eHealth

    4.缺陷跟踪管理工具(开源)

    1)Bugzilla

    2)禅道

    3)redmine

    4)Bugfree

    5)Mantis

    5.用例管理工具

    1)TestLink

    2)TestManager(Rational测试解决方案中,推荐的测试用例管理工具)

    3)禅道

    6.自动化测试工具(app)

    1)monkeyrunner

    2)appium

    3)Robotium

    4)UI Automator

    七、软件测试经验分享

    文章中大概介绍了测试理论、测试策略及测试工具等,是比较入门级的,没有深入介绍。这里要说一下,测试理论要结合实际情况,进行正确有效的应用,才能发挥它的作用,因此要多实践,实践出真知。对于测试工具而言,它不是万能的,但是没有工具是万万不能的,所以要学会什么情况下,使用什么样的测试工具,进行什么样的测试,这才是最重要的,不要为了使用工具而使用。

    最后,对于测试而言,要善于总结测试工作,从总结中积累自己的测试经验和特长。并且要积极主动,学会提问题,要让别人知道你想问的信息是什么。当对测试工作有了一定的了解之后,就要对自己以后的测试工作进行规划,有计划的朝自己的目标努力。过程虽然比较辛苦,当收获成长的时候,就会非常欣慰,感觉一切都值得。我们一定要趁着年轻,多学习,多积累,不要以后让自己后悔。

    好了,今天就啰嗦到这里了,关于测试,永远有说不完的话题。。。未完待续

  • 相关阅读:
    纠结
    oracle大批量数据更新
    SQL Server 2008 “因为数据库正在使用,所以无法获得对数据库的独占访问权”解决方法
    面试总结
    Oracle 存储过程发送邮件
    ASP.NET页面之间传递值的几种方法<转>
    模式窗口里面,服务器控件添加确认操作时,又弹出新窗口
    深入研究Asp.net页面的生命周期<转>
    asp.net用jquery为服务器控件添加javascript处理
    sqlserver 把对象发布成webservice遇到的问题
  • 原文地址:https://www.cnblogs.com/lynn-li/p/5950708.html
Copyright © 2020-2023  润新知