软件测试之软件测试原则
1. 软件测试
软件测试是使用人工或自动化手段来运行或测定某个系统的过程,检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。---IEEE
2. 软件测试的目标
尽可能早地找出软件缺陷,并确保其得以修复。
3. 软件缺陷
1)软件未实现软件需求要求的功能;
2)软件出现了软件需求指明不应该出现的错误;
3)软件实现了软件需求未提到的功能;
4)软件未实现软件需求虽未明确提及但应该实现的目标;
5)软件难以理解、不易使用、运行缓慢或者最终用户会认为不好。
4. 软件测试原则

1)完全测试程序是不可能的
这点比较好理解,例如纸杯,需要验证其可承载温度。如果每个温度都测试,输入就太多了,也完全没有这个必要对吧。
测试多少需要依据产品特性和人力成本进行设计,此部分将在测试设计部分进一步讲解
2)软件测试是有风险的行为
既然完全测试程序是不可能的,那就难以确保缺陷能被及时发现:
A、软件设计来源于产品特性和人力成本,对产品特性的不了解,对人力资源的依赖都会影响软件设计的全面性;
B、即使有了全面的软件设计,在执行时,也可能受测试环境和测试人力的影响而难以执行。
3)测试无法显示潜伏的软件缺陷
由于项目进行的是有限的测试,已测试部分发现的缺陷情况,无法预知未测试部分的潜伏缺陷数量。就好比进行纸杯的兼容性测试,装水时发现不漏水,并不代表装其他碱性/酸性液体时也不漏水。
4)找到的软件缺陷越多,说明软件存在的缺陷越多
这个好理解,有限的测试,即便是随机抽查,发现的缺陷越多,说明整个系统存在的缺陷越多。
5)软件测试越多,其对测试的免疫力越强
这里指的是同样的方法进行重复测试,越到后面越难发现缺陷,因为缺陷都基本被修改了,因此我们的测试方法需要迭代更新,才能发现新的缺陷。
6)没有必要修复所有的缺陷
首先测试是无法穷尽的,即使修复完了已暴露出来的缺陷,未被发现的缺陷也是无法修复的;
已发现的缺陷,可能也会受人力成本,技术瓶颈等原因而进行不解决处理。但是,即使最终决定不解决处理,也要做好问题记录,说明不解决的原因。
7)软件需求频繁变更
行业发展太快,产品需求迭代更新速度也快,经常会出现产品还未生产出来,市场需求已经变更,此时如果继续生产已过时的需求,将会面临产品没有竞争力的风险。因此,我们需要拥抱变更,要跟上市场的步伐,实时调整产品策略,测试域也需要灵活调整测试策略。

软件测试是一门有发展空间的学科,需要持续的训练和规范,加油💪