AI测试 如何解读程序和算法的区别?

andyguo · 2023年02月26日 · 3358 次阅读

这个算是编程入门(启蒙)的基础概念了,现在很多少儿编程,其实并没有真的在编【程】,而是在【编】程——因为孩子这么小,根本学不会 coding,所以算法启蒙是远早于写程序/代码的。

先说下基本概念:

程序是一组指令的集合,用于指导计算机执行特定的任务。它是计算机程序设计的产物,通常由程序员编写。程序告诉计算机如何执行一个特定的任务,包括输入、处理和输出。

算法是一组解决问题的规则和指令。它是一种逻辑上的思考方式,是解决问题的一种方法。算法可以用自然语言、流程图、伪代码等方式来描述,同时也可以用程序来实现。

用一张表来表示两者的区别:

再来举几个例子,方便题主理解。

我经常对 6 岁以下的小朋友举【积木】的例子。

假设你要搭积木,那么,

程序——就是搭积木的详细步骤。例如,拿出积木,按照形状和颜色分类,一块一块地搭建,直到构建出你想要的形状。

算法——就是一种将积木按照一定规则组合的方法。你可以选择不同的积木、不同的形状或数量等等,但只要你遵循了规定的步骤,最终会得到一个稳定的、符合你期望的积木结构。

对入门的新手来说,可以大致理解如下:

假设你要煮一锅米饭,那么,

程序——就是煮饭的详细步骤。例如,洗米,加水,煮沸,转小火,焖煮等等。

算法——就是一种将生米煮成熟饭的方法。例如,你可以选择不同的锅、使用不同的水量或火力等等,但只要你遵循了规定的步骤,最终会得到一锅熟饭。

再举个例子:

假设你想在一张纸上画一条直线,那么,

程序——就是画线的详细步骤。例如,拿出一支笔,准备一张纸,画出起点,沿着直线移动,画出终点等等。

算法——就是一种将两个点之间连接的方法。例如,你可以选择不同的笔、使用不同的压力或角度等等,但只要你遵循了规定的步骤,最终会得到一条直线。

简单来说,不需要会写代码,也可以学习算法,算法是一种解决问题的思考方式,不仅可以通过代码来实现,也可以用自然语言、流程图等方式来描述~

但是在我们面试的时候经常说,我是做算法测试的,在我的团队就有这样的一组人称作算法测试团队,比如无人驾驶中的某一个功能,例如异常低速算法测试,满足什么的条件算作是异常低速,什么样的情况不是,算法产品经理给出了算法流程图,开发帮忙实现,测试根据流程图的输入和输出进行 check,其实测试的时候和接口测试没什么区别,只是我们测试接口的是时候 是给接口发送测试 case,我们的算法测试,有可能是接口比如模拟车路的 obu 上报 case,也有直接写 kafka 跳过网关接口,其实我们平时说的功能测试,只不过把 case 通过 ui 界面来实现。

所以整的来说无论是算法测试、接口测试、还是手工的功能测试,设计的 case 的能力才是关键,对业务的了解程度、对开发实现原理的理解深度,对数据流的了解程度,这才是根本。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册