软件测试基础

第一讲:

1、软件:程序+数据+文档的集合。

2、数据:开发数据(数据数据)、测试数据(模拟用户数据)、用户数据。

3、需求:所有的测试都必须回归到需求。

4、程序:功能实现所需的设计代码。(开发所设置的代码)

5、文档:帮助文档(用户)、

         (测试)输出文档(测试计划、测试方案、测试用例、缺陷报告、阶段性总结报告、总结报告。)

          (开发)开发计划、概要设计、详细设计、配置文档。

6、测试:test 检测、检查。

测试思路:正向思维、逆向思维。

7、软件测试:在软件工程学的含义中,指被测软件或者系统的功能经过一系列的检查或者检测是否符合              需求的预期结果的过程。(1983年     IEEEE机构)

8、软件测试的目的:发现问题,并解决问题(定位问题的过程)

软件产品的质量只能是提高,无法保证。

9、项目:软件工程学中,根据客户的需求进行一系列的更改或研发的过程。

5W:what(做什么)、why(为什么做)、whem(什么时候做)、where(哪里做)、how(如何做)

10、产品:在软件工程中的一系列工作的过程;并且是项目成功的成果则产生产品。

项目一定是产品,但是产品不一定是项目。(×)

产品是项目得出的成果,项目是产品的过程。(√)

项目可能得出产品,但产品并不一定是由项目产生的。(×)

11、项目与产品:(1)、从用户角度:项目针对的是单一用户或者多个用户而产品针对的是市场。

                (2)、从技术角度:项目的需求是可变的而产品是固定的或者是稳定的。

                (3)、从价格角度:项目的费用相对于产品的费用更高,但是在利润上产品更高。

项目:项目相当于就是产品一系列的过程。例如:Windows

12、项目中的角色:技术总监、项目经理、开发部、测试部、美工部、产品部、运维部。

13、测试的基本素质:(测试技能+个人的综合素养)

    主要的测试技能:1、能够简单的代码走读能力。

                    2、对测试流程和概念有独特的思想。

                    3、掌握相关的辅助技能(数据库、服务器)

                    4、熟练测试工具(应用、管理、性能)

   个人素质:创新能力(探索性的)、强的的逻辑思维能力、沟通能力、破坏性、耐心、坚持原则。

14、测试的原则:1、测试需要尽可能的越早的参与,降低成本

                2、测试只能是提高产品质量,无法保证。

                3、测试无法进行穷举测试。

                4、开发人员的局限性。

                5、测试需要尽可能的覆盖所有的路径。

                6、使用一条测试用例尽可能覆盖多条路径。

                7、所有的测试都必须回归需求,并且都符合需求。

15、测试与调试的区别:1按含义分:检查被检测的系统或者软件是否符合需求。

                                 使用工具进行检查代码中是否存在错误的步骤。

                      2按时间:按计划

                               随时的,在开发的过程中随时都有可能需要调试。

                      3、按角度:从用户的角度出发。

                                 开发需要完成的任务。

16、不符合需求的称为缺陷:bug/defect

    错误:error

    缺陷一定是错误,错误不一定是缺陷。(×)


第二讲

1、缺陷、漏洞、失败、错误、在IT界统称为Bug。

Bug指被测系统或者软件不符合需求的。

2、错误:功能没有完全实现。(功能实现逻辑不符,设计错误的)

3、漏洞:指被测软件的安全性方面的增强。

4、产生缺陷的原因:1、沟通不足

                   2、逻辑理解错误。

                   3、软件复杂性。

                   4、用户需求变更

                   5、文档不完善。(口头表达,需求没有明确定义)

                   6、项目周期短。

                   7、软硬件环境导致。

                   8、需求不明确。

5、有效缺陷:被开发和测试人员共同所认可的缺陷则为有效。

6、无效缺陷:被开发人员不被认可的缺陷,测试人员认可。则为无效。

7、合法的无效缺陷:当前技术无法达到、无法进行修复的缺陷。

8、无效缺陷产生的原因:

                  1、版本管理混乱。

                  2、需求变更并且没有及时沟通。

                  3、Bug的偶然性。

                  4、环境因素导致。(服务器)

开发服务器与测试服务器必修分离。

开发环境:理想环境:指把系统或者软件所需的插件、中间件全部已安装或者配置。

测试环境:模拟用户真实环境。

用户环境:真实环境。

客户端环境只要指:系统之间的兼容性问题。

软件架构主要:B/S(brower/sever)浏览器/服务器

              C/S(client/sever)客户端/服务器

9、缺陷重现的必要性:

                    1、便于开发与测试对bug的定位。

                    2、统计bug出现率问题。

                    3、提高开发修复效率。

10、重复性bug的原因:

                    1、同一模块被多个测试人员同时测试并没有及时沟通。

                    2、版本控制问题。

                    3、bug的管理不当。(工具、文档管理)

11、bug管理工具 :{testdirector(TD)、  Qc(quantity control)}(HP) 、bugfree、jire、禅道、bugzilla 、mantis

文档(word、excel)

12Bug状态:                    





                                        ↗delay(延期)





↓→  →          

    →    ↓




         ↑




new(新建)
open(打开)
fixd(修复)


closed(关闭)






 ▕

        

         ↑

    ▕

rejected(拒绝)

reopen(重新打开)← ←



       ╰


Bug流程:当测试人员发现Bug时,会在缺陷管理的工具上对该Bug进行New(新建),然后指派给测试经理或者测试组长,由测试组长进行Bug的验证是否有效,如为有效bug则会指派给相对应的开发经理或者开发人员。无效则把该bug进行关闭。此时开发人员会根据自身的bug进行重现,如重现成功则会对该bug进行fixed,如失败则会该bug进行rejected;当该bug开发人员暂时无法解决,此时会对该bug进行delay,相关bug开发修复后会提交新的版本给测试人员。测试人员会对已修复的bug进行回归测试。验证修复成功后则会把该bug进行closed,否则的话reopen;经过多轮的测试后,最终将bug进行closed。