软件测试理论知识(一)

      学习软件测试的基础理论已经有很久了,这里就当做是自己的一个巩固与提升吧,想要学习测试理论基础,但是又不知道从何下手的可以关注我的博客,不定期更新!我也就不废话了,直接上干货。

      软件测试的方式:

           1.验证:是指在软件生命周期的各个阶段,用下一阶段的产品来检查是否满足上个阶段的规格定义。

           例如:通过设计来验证需求定义的规格是否正确,通过编码来验证设计的合理性,通过测试来验证编码的正确性

            2.确认:检查每个阶段结束时的工作成果是否满足软件生命周期的需求文档中定义的各项规格和要求

            例如:软件设计完成后,需要通过评审来判断是否满足需求定义;编码完成后,需要通过代码审查等方式来检查编码是否满足了各项需求的规格定义;测试阶段,通过评审测试用例,测试计划,测试报告、缺陷覆盖等材料来判断测试是否覆盖了各项需求。

          测试原则:

              1.good enough 原则:不能盲目追求最佳的测试效果而投入过多的测试资源。应该根据项目实际要求和产品的质量要求来考虑测试的投入。

              2.Pareto 原则:(28原则)80%的Bug在分析,设计,评审阶段就能被发现和修正,剩下的16%由系统的软件测试来发现,4%由用户长时间使用过程中才能暴露出来。 

              3.尽可能早开展测试:越早发现错误,修改的代价越小;越迟发现错误,修复软件需要付出的代价就越高。

              4.在发现较多错误的地方投入更多的测试:发现某个模块的Bug有集中出现的迹象,就要应该对这些缺陷集中的模块进行更多的测试和回归验证

               5.同化效应:一个测试人员在同一个项目待得时间越久,越可能忽略一些明显的问题。交叉测试能避免一些测试的盲点,充分利用不同人员对待软件的不同视角和观点。通过引入新的测试思维来打破测试的局限和僵局。

               测量的目的分为两大类:

                1. 一类是为了验证程序能正常工作的测试。

                2. 另一类是为证明程序不能正常工作的测试

     举例:微软第一类测试

        第一类步骤:需求和设计的评审、设计阶段的测试、系统全面的测试。

        对需求文档、设计(功能设计、实现设计)文档进行可测试性、明确性、完整性、正确性等方面的审查。

        基本策略:

               1. 先执行简单测试用例,再执行复杂测试用例

               2.先验证单一的基本功能,再验证组合的功能

               3.先解决表面的、影响面积大的Bug,再解决深层的、不易重现的Bug

           

              微软第二类测试

                是阶段性的,通常叫作“Bug Bash”,尽可能的寻找出Bug

                       缺陷管理

        主要有三种角色,项目经理,开发人员和测试人员,三者分工明确,接口清晰。项目经理负责定义需求、编写需求规格说明书和设计文档;开发人员负责编写代码来实现和设计的规格定义;测试人员负责测试开发人员编写的代码是否符合项目经理定义的规格要求。

         IBM的测试方法RUP:

       基于RUP的过程模型进行的,RUP是一个强调迭代开发、持续集成的软件开发过程模型。
         1.回归测试:所谓的回归测试,个人理解就是类似于循环记忆法,往下一步进行测试,先单独测一遍,再连着前面的所有测试进行全部测试。就是上一步测试总比下一步测试少一次。
          2.RUP测试的度量 :采用测试覆盖率和质量来对测试进行度量。
              测试覆盖是对测试充分程度的评价,包括以下方面
                1.测试需求的覆盖 2.测试用例的覆盖 3.测试执行代码的覆盖
         3.用例驱动:用例(Use Case)是RUP方法论中一个非常重要的概念。简单的说:一个用例就是系统的一个功能。
             按照RUP的指导思想,用例贯穿于整个软件开发的生命周期。在需求分析时,用户对用例进行描述;在系统设计时,设计人员对用例进行分析;在开发阶段,开发人员用代码来实现用例;在测试阶段,测试人员针对产品,对照用例进行检验。
             RUP是一种以用例为中心的开发过程。而RUP得软件测试也是以用例为基本依据进行的。
        4.   RUP对软件测试的分类
            1.可靠性:
                完整性测试:侧重于评估测试对象的强壮性、语言、语法的技术兼容性以及资源利用率。
                结构性测试:侧重于评估测试目标是否符合其设计和构造的测试,通常用于web的应用程序,以确保所以链接都已链接、显示正确内容,以及没有孤立的内容。
            2.功能 :
                 配置测试 :侧重于确保不同的硬件或软件配置上按预期运行的测试,可作为系统性能测试
                 功能测试:侧重于对象按计划运行,提供需求的服务、方法或用例的测试
                 安装测试:侧重于在不同硬件或软件配置上,以及在不同条件下按预期安装的测试
                 安全测试:侧重于确保只有预期的主角才可以访问测试对象,数据的测试。
                 容量测试:侧重于核实测试对象对于大量数据(输入,输出)的处理能力测试。

            3.性能: 

                   基准测试:侧重于比较测试(新的或未知)对象与已知的参照负载和系统的性能

                   竞争测试 :侧重于核实测试对象对于多个主角对相同资源的请求处理是否可以接受的测试

                   负载测试:用于在测试的系统保持不变的情况下,核实和评估系统在不同负载下操作极限的可接受性

                   性能曲线测试:监测测试对象的计时配置文件,包括执行流,数据访问,函数和系统调用,以确定并解决性能瓶颈和低效流程。

                   强度测试:侧重于确保系统可在遇到异常条件是按预期运行。

             5.RUP对测试阶段的划分

                1.单元测试,在迭代的早期实施,侧重于核实软件的最小可测试元素。

                2.集成测试,为了确保当把实施模型中的构件集成起来执行用例时,这些构件能够正常运行。

                3.系统测试,当将软件昨晚整体运行或实施明确定义的软件行为子集时可进行的测试

                4.验收测试,是部署软件之前的最后一个测试操作。


     自动错误预防(AEP)方法
                1.概念:通过分析错误根源和消除错误原因。
                2.遵循5个特定的步骤
                    1.识别错误  2.找出错误的原因  3.定位产品产生错误的地方  4.执行预防措施来确保相同的错误不再出现 5.监控整个过程
                3.实现软件自动错误预防的五大法则
                       1.法则一:应用行业最佳实践来防止普遍错误并建立全寿命的错误预防基础
                       2.法则二:按需要修改实践来预防特殊的错误
                       3.法则三:确保每个小组正确地、始终如一地贯彻执行AEP
                       4.法则四:循序渐进地采用每一个实践
                       5.法则五:利用统计来文档每一个过程,让它发挥价值。


用例八大要素:1. 用例编号 2.测试项目3.用例名称 4.重要级别 5. 预制条件 6测试输入 7操作步骤 8 预期结果


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值