1.什么是软件?
软件是计算机程序,程序所用的数据以及有关文档资料的集合。
软件是计算机的灵魂,分为系统软件、应用软件。
系统软件:系统软件是生成 准备和执行其他程序的组文件或程序。如:操作系统、数据库、驱动程序、java系统编译环境等。
应用软件:计算机用户为了解决某些具体问题而购买、研发的各种程序或软件包。如:QQ、vx、APP。
2.什么是软件测试?
1983年,IEEE就提出软件工程标准术语,他将软件测试定义为:使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验他是否满足规定的需求或弄清预期结果与实际结果之间的差别。
为了发现程序中的错误而执行程序的过程。
目的:
①为了发现程序存在的代码或业务逻辑的错误
②为了检验产品是否符合用户需求
③为了提高用户体验
3.软件测试的原则
1.测试应该今早介入
2.所有的测试都应该追溯到用户需求
3.程序员应该避免检查自己的程序,单元测试除外
4.设计测试用例应该考虑到合法的输入以及不合法的输入,以及各种边界条件。特殊情况下还需制造极端和意外状态
5.二八原则:测试错误的80%肯能来源于20%的模板中
6.对错误结果进行一个确认过程
7.指定严格的测试计划
8.完全测试是不可能的,测试要终止
9.妥善保存测试过程中所有的文档
10.杀虫剂悖论:当一个测试中,同一个用例被重复使用的次数越多,发现缺陷的能力就越差
4.软件测试的对象
①程序,目标程序和源程序都属于程序
②数据
③文档
5.软件测试的分类
1.按照测试执行阶段划分
单元测试、集成测试、系统测试、验收测试(正是验收测试、alpha测试、beta测试)
alpha测试:相当于内部测试,由用户做测试,但开发人员在现场,一般是请用户到开发现场去做测试
beta测试:完全交给用户去做测试,返回测试报告,相当于发行前一个版本
2.技术划分
白盒测试:将程序比作一个盒子,这个盒子是透明的,测试人员通过观察代码的逻辑结构以及有关信息,设计或选择用例,对所有的逻辑路径进行测试,通过在不同点检查程序状态,看是否与预期结果一致。
黑盒测试:将程序比作一个盒子,这个盒子是不透明的,测试人员不需要考虑程序内部的逻辑和有关特性,只需要按照需求说明测试他的功能是否符合说明。
灰盒测试:介于白盒和黑盒之间的测试。多用于集成测试,不仅关心输入输出的正确性,还要关注程序的内部运行。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
3.被测试对象是否运行划分
动态测试:在产品运行时测试
静态测试:在产品不运行时测试,一般用来文档检查、代码检查、界面检查。
4.测试手段划分
人工测试:由专门的测试人员,从用户视角,来验证软件是否满足设计要求的测试的行为,更适合针对深度的测试和强调主管判 断的测试。
自动化测试:使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
5.测试包含的内容划分
功能测试、界面测试、安全测试、兼容性测试、易用性测试、性能测试、压力测试、负载测试、恢复测试。
6.其他测试
冒烟测试:在每一次版本更新或需求更改后,在正是测试前,对产品或系统做一次简单的验证性测试。
回归测试:指修改了旧代码后,重新测试以确认修改没有引入新的错误或导致其他代码产生错误。
回归测试场景:1.代码修改,验证之前BUG是否存在。
2.验证其他与此BUG有关系的场景用例是否有BUG。
探索性测试/自由测试(测试思维)