这个模块主要讲一些软件测试的事情
总的来说,测试的目的是为了找出软件的问题,通俗来讲就是去挑刺的
软件测试按照系统划分为单元测试,集成测试和系统测试
单元测试的基础上讲所有模块按照设计要求组装为系统,此时进行集成测试
集成测试包括:自底向上:从系统最底层的构件开始测试,逐步向上,需要设计驱动模块来辅助
自顶向下:从最顶层构件开始,逐步向下,需要设计桩模块来辅助测试
三明治:结合自底向上和自顶向下
一次性:所有构件进行一次性测试,然后集成。
白盒测试,黑盒测试和灰盒测试
对于一个程序,可以拆分为输入,程序的处理,输出,这几部分,黑盒测试只关注输入输出,将处理过程想成一个盒子,顾名思义是黑色的,只要输出是符合的,那么我们就判断这个程序没有错误。
白盒相对之下还会关注内部的处理逻辑是否正确。
灰盒测试介于两者之间。白盒测试对应单元测试,黑河测试对应系统测试,灰盒测试对应集成测试。
黑盒测试相对于更加贴近用户,关注易用性等,白盒测试更倾向于程序开发的思维。
黑盒测试主要包括一下几个方面:
正确性:比如这个命名的正确性,计算结果的正确性
可用性:是否满足需求
边界条件:也就是等价类划分,对一些判定条件做极值或者边界值的测试
还有性能,压力测试,安全性测试和错误恢复等。
白盒测试的方法分为静态和动态的。静态的主要是指不运行代码,检查软件的描述是否一致有没有问题。动态的分为(弱到强)语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
语句覆盖指每一个可执行语句都要运行一次 判断覆盖指使设计的测试用例保证程序中每个判断的每个取值分支(t or f)至少经历一次
条件覆盖:条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支
判定条件覆盖:判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。
条件组合覆盖:在白盒测试法中,选择足够的测试用例,使所有判定中各条件判断结果的所有组合至少出现一次,满足这种覆盖标准成为条件组合覆盖。
路径覆盖:是每条可能执行到的路径至少执行一次