软件测试流程

需求评审,测试需求,测试计划,测试方案,测试用例,预测试,第一轮正式测试、第二轮回归测试、第三轮测试,测试报告,测试总结,测试指南。

1. 测试计划和测试方案的区别

     测试方案:主要是测试范围和测试策略

     测试计划:任务安排和时间进度

     测试计划5w1h法:  what(做什么): 测试范围和内容, why(为什么做)测试目的, when(何时做):测试实践, where(哪里做): 测试地点,文档, 和软件位置。who (谁做):测试人力资源,

                                    how(怎么做):测试方法和工具

     测试计划的目的:

                  管理者可以根据测试计划做宏观调控,进行相应的资源配置

                   测试负责人可以根据测试计划跟踪测试进度

                   测试人员可以了解整个项目的情况,以及项目不同阶段所要进行工作

                  便于其他人了解测试人员的工作

2. 软件测试的一些基本原则

    *zero bug 和 good enoughzero bug指的是软件没有任何的bug,good enough指的是只要软件达到一定的质量要求,就可以停止测试了。good enough原则是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是不负责任的表现。

   *不要试图穷举测试,穷举测试指的是测试时,考虑所有的可能的输入值。这是不切实际的,我们不可能把所有的输入值都考虑到并且这很花费时间和资源。我们需要使用最少的测试用例,来达到最大的覆盖率。

   * 软件测试要尽早执行在需求分析阶段,引入的缺陷是最多的,修复成本是最少低的。所以要尽早开始软件测试,越到后面,修复成本越高。

   * 软件测试应该追溯需求软件缺陷产生的原因(如图)

           

         * 缺陷的二八原则二八原则指的是一般情况下,软件80%的缺陷集中在20%的模块中。所以我们测试时,在这20%的模块上,要投入较多的人力和精力重点测试。

          * 缺陷具有免疫力如同害虫会对农药产生抗药性一样,缺陷也会产生"抗药性"。用旧版本的测试用例去测新版本的软件时,效果会大大的折扣。

             这就要求我们需要根据新版本的特点去修改和维护测试用。注意:每修复三到四个缺陷,一般就会产生一个新的缺陷。

3. 测试类型

 

                  解析:

                         

                     *单元测试
                            单元测试一般在项目里面由开发同事自己完成,是对我们项目的最小可测单元进行的测试,主要是面向代码内部的函数做相应的检查
                           ,常见的case实现方法有,代码走查, 逻辑判断,基本路径法等。
                    *集成测试
                            也叫组合测试和联合测试。 是将我们已经测试通过的几个单元组合在一起进行测试,以及模块与模块之间的一些接口测试。
     
                    *系统测试
                           系统测试是把我们整个产品作为一个整体的测试,检查是否符合产品需求说明书, 这种测试可以发现系统分析和设计中的错误。 测试分类和方法有很多,
                           比如功能测试, 性能测试,安全测试,压力测试

                         1. 阶段测试——验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试它也是软件正式交付给用户使用的最后一道工序。

                                                                     验收测试又分为α测试和β测试,α测试指的是由用户、测试人员、开发人员等共同参与的内部测试;β测试指的是内测后的公测,即完全交给最终的用户测试。

                         2. 静态测试:是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。

                         3. 动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。我们判断一个测试属于动态测试还是静态测试的唯一标准就是看是否运行程序。

                         性能测试:软件的性能包括很多方面,主要有时间性能和空间性能两种。

                                            时间性能:主要指软件的一个具体事务的响应时间空间性能:主要指软件运行时所消耗的系统资源

                                            软件性能测试一般分为一般性能测试、稳定性能测试、负载测试和压力测试。

                                            假设一个人很轻松就能背一袋米,背两袋米很吃力,最多就能背三袋米,

                                             那么 一般性能测试————我就让他背一袋米。

                                             稳定性测试—————我让他背一袋米,让他去操场上跑圈,看多久累倒。

                                             负载测试————让他背两袋米去操场去跑圈,看多久累倒。

                                             压力测试————让他背两袋米,三袋米,四袋米·····发现他最多只能背三袋米。 

                        4. 黑盒——性能测试——稳定性测试:(又称可靠性测试):连续运行内测系统,检查系统运行的时间稳定程度。通常用MTBF(错误发生的平均时间间隔)来衡量系统的稳定性,越大稳定性越强。

                         5. 黑盒——性能测试——负载测试:被测系统在其能忍受的极限范围之内连续运行,来测试系统的稳定性。

                         6.黑盒——性能测试——压力测试:连续不断的给被测系统增加压力,直到被测系统压垮为止,用来测试系统所能承受的最大压力

                         7.回归测试:是指对软件的新的版本测试时,重复执行上一个版本测试时的用例

                         8.冒烟测试:指对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否可以实现,是否具备可测性

                         9.随机测试:指测试中所有的输入数据都是随机生产的,其目的是模拟用户的真实操作,并发现边缘错误。随机测试的缺点:测试不系统,无法统计代码覆盖率和需求覆盖率,很难回归测试等。

4. 测试用例设计方法

        白盒测试方法

             语句覆盖:计若干个测试用例,使得被测程序的每一条可执行语句至少被执行一次

             判定覆盖(分支覆盖):设计若干个测试用例,使得被测程序的每个判定语句至少有一次为真值,有一次为假值。

             条件覆盖:设计若干个测试用例,使得被测程序的每个判定语句中的每个条件的可能结果至少执行一次

             判定/条件覆盖:设计若干个测试用例,使得被测程序的每个判定语句中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次

             条件组合覆盖:设计若干个测试用例,使得被测程序的每个判定语句中的每个条件的可能结果的所有组合至少执行一次

             路径覆盖:设计若干个测试用例,使得被测程序中的所有路径执行一次。

        黑盒测试方法:

               https://www.cnblogs.com/ting152/p/12457805.html

5. 软件测试模型

    v模型

    

             W模型

                 

         

             

原文地址:https://www.cnblogs.com/ting152/p/12579802.html