其他分享
首页 > 其他分享> > HIT-2022夏-高级软件测试 take home exam

HIT-2022夏-高级软件测试 take home exam

作者:互联网

这里是哈工大2022夏季开放的高级软件测试(AliMili)的take home exam(最终考试)题目的个人解题思路。

总成绩构成是考试(90%)和平时分(10%),平时分一般会直接给满,考试分的话听说去年不是教授自己批的所以所有人都过了,今年貌似是教授自己批阅所以好像有十几个人不及格。。。(最后成绩都会在群里公示)

这门外教课我自己也没怎么听课,最后的考试题目因为每年都会变所以没有什么往年的参考,所以只能靠自己看ppt和看群里的老师解题文档去找题目里相应题型的解答格式和解题方法,经过一番十分痛苦的摸索差不多搞清楚(?)了每道题目应该是用什么格式和方法去做(仅限于今年的题目)。

因为自己也只是以解题的角度去看ppt和文档(ppt做的确实有些简陋。。。自己看的话不仅痛苦而且容易一头雾水),所以每道题也只是以解题目的目的来做的,实际上并没有深入理解知识点,所以仅仅提供解题套路,有些地方为什么这么写感兴趣的可以自己深入理解PPT(bushi)。

满分100分,个人成绩92,每题20分,第一,第五题各扣4分,因此答案的正确性得到了一定验证(x

写这个博客的主要目的还是因为自己写的时候挺痛苦的,也浪费了不少时间,希望能够帮助之后选这门课的学弟学妹们节省一些时间(悲

我们开始吧~

第一题:

题目以及个人答案(个人答案均为word手打公式,这里直接截图了):

 

 

 

 这道题的题目意思是说给一个array A,由数字构成,然后我们需要写两个集合,一个是把A的中间值置于x(就是x是A中的一个median值),一个是把数字x的位于中间的下标(所有满足是一个median值的数的所有下标中的一个处于median位置的下标)置于k。这个中间值(median)是什么呢?题目最后一段给出了解释,就是要求大于它的数和小于它的数的数量相差不超过1.

这个数量应该怎么表达在最开头的例子中给出了解答,就是这个新的格式#x:……,这个格式如上面的例子所述,是表示符合……条件的x的数量的(x应该可以替换成其他的,我自己替换了,全是x不太好看hhh,总之就是表示变量的)。因此,解题思路就比较清晰了。

下面就该考虑解题格式了,这道题目的解题格式是在ppt上找到的,里面的s,s‘个人理解是输入输出(结合ppt中其他例子得出的可能结论?),x’和k‘就是你要放置的x和k。

 

 

 综上,个人答案如下:

 

 

M1:首先满足x’(就是题目要求的x)是在A中的,然后要满足A中大于x‘和小于x’的数的数量差的绝对值小于等于1即可。

M2:思路差不多,首先满足A[k']=x‘,即k’是M1中满足条件的x‘的下标,然后就是同样下标对应值为x’且大于k‘的下标数量和小于k’的下标数量的差的绝对值小于等于1即可。

M3合并一下即可。

这道题满分20,扣了4分,因此建议做的时候再参考一下标准答案(提交后老师发在群里的)的格式:

 

 

 

第二题:

题目:

 

这道题要求使用霍尔逻辑来证明下面的循环,这个霍尔逻辑ppt上讲的实在过于抽象(。。。),上网倒是能搜到相关知识,无奈讲的和ppt上不太一样,和老师一些解答文档格式也很不相同(泪目,因此最后解决方案是翻遍了老师的解答文档(群里有往前几年老师上课讲题后发在群里的解题文档),最终在2021年文档notesjuly15ch6里面找到了基本一样的while循环证明类型的题目(就是最后一题),直接照着改就行,如果更换题型了可以看看往年文档里的其他题目,应该都会有参考的。

本题拿到了满分,个人答案如下:

老师给出的官方答案如下:

 

 

 

 

 

第三题:

题目(有点问题,p2的while后面是y>0)

 

 

 

 这题其实只需要做两个操作,第一步是把programs的p1,p2修改形式如下:

 

 为什么这么改呢,ppt中有相应说明,我这里懒得重新回ppt里找图,就白话描述一下(?),p1程序就是说y不等于0的时候,每一轮z都加上x,y都减去1,那么循环的结果就是y>=0或者y=0时,x还是等于x,z这时候等于原本的z加上y个x了。也就是上面修改完形式的p1,p2的形式修改也是相同的道理。

这里修改形式主要是为了把它们变成集合,方便后面套公式。

接下来套用公式,题目要求的partial correctness要的就是下面的这个公式的结果,所有集合都有了,直接带入求一下结果就行。(这些公式都可以在ppt里找到)

 

 total correctness的:

 

 

 

 这题也拿到了满分,下面给出老师的参考答案:

 

 

 

 

 

 

第四题:

题目如下:

 

 这道题目在ppt上有相应的解答格式,主要就是用到了两页ppt的内容:

 

 这个公式看起来挺复杂的,仔细看一下并不难理解,主要就是用于两个集合点乘(?),接下来会大量用到这个公式。

还有一个是用来处理题目中的write和read的,我个人认为应该加上,ppt的题目例子也有这一步,不过我看老师的答案里面并没有这一步,所以如果嫌麻烦的话忽略这个就行:

 

 下面开始做题,一共需要处理四个式子:

 

 首先就是需要将题目中的p5几个不同的条件改成上图中一开始的长式子中集合的格式,这个很好改,大家自己看一下应该就明白了。然后将这些集合点乘,使用上面介绍的公式即可。

接下来的path function就是用上图第二张ppt中的内容把式子化简后得到的结果包装一下就可以,is就是你的输入向量,h(is)就是向量的head,第一个元素,就是x,t(is)就是除了h(is)外其他元素,因此h(t(is))就是第二个元素,y。替换一下化简结果就能得到path function,从中截取path condition即可。最后的test vector只要满足condition的条件就行,数字随意。

剩下的内容跟第一个过程一样,因为很长就不再放图了,意义不大。

下面是p5老师的解答,写的很简略hhh,我个人认为不像是完整答案,没有替换步骤也没有给出path condition之类的,不过这样写肯定是ok的,还更省事:

 

 

第五题:

题目如下:

 

 这道题目需要你做一个拟合,求几个数值,即求一下每个log值,然后就得到了N和log值对应的一条直线,你需要求一下这条线的k和b,就是底下的log(R)和log(MTTF0).

接下来再求一下对应的R和MTTF0,代入如下的公式即可。(这道题我最不确定解法,因为PPT上的东西给的太复杂了。。。但是看了答案发现其实思路倒应该没错,很复杂的东西确实都没用上)

 

最后扣了4分,老师给出的sample solution如下:

 

 

 

这样就结束啦!最后一题我没做,六道题选五个就可以了。

虽然这次写博客复盘感觉流程不长,但当时做题的时候确实很一头雾水。。。可能还是因为PPT的缘故吧(远目

 

标签:下标,题目,exam,格式,解题,ppt,HIT,就是,软件测试
来源: https://www.cnblogs.com/redTide/p/16537776.html