华北电力大学(保定)软件测试与质量保证课程设计简单分享

        软件测试与质量保证实验分两部分,一部分是自己完成的白盒和黑盒测试,一部分是上机用IBM的自动化测试。

        上机部分按照书上教程来就行,你可能遇到的困难包括但不限于:找不到从哪打开测试软件,录制脚本找不到按键在哪,修改脚本添加的语句莫名其妙消失,验证点添加不上去,原因不明的运行失败,极为复古的教程以至于你根本还原不了作者的操作,做到最后发现自己做错了,奇怪的报错导致前功尽弃,对此我只能说爱莫能助,因为我也不知道到底是为什么,好在老师查的不严。

        黑白盒测试按照课上教的来,划分等价类,画控制流图,设计测试样例等等在此不多说,照着书上来就行,确实很繁琐,但确实得这么做,这篇文章主要是教完全不会做C#单元测试的人怎么用MsTest,用到的东西不多,属于纯基础教程,来自我本人的摸索,不保证正确仅供完全不懂的人凑合及格

        理论上每年上这个课的老师都不会变,所以在这里提醒一句:老师一般不会详细看你的黑白盒测试和上机的脚本,她往往是根据你写的报告给分,所以记得多和老师沟通,问问优秀的评分标准,我当时以为是做的越快越好,两天就把实验做完然后交报告回家了,最后在第五学期喜提第一个不是优的实验,过了个好年,老师表示“后面的同学很多做的很好的”,比如我室友因为开始不太会写白盒测试,交的比较晚,报告也写的很完善,给了优(95),和我一起做实验的一个保研哥跟我差不多时间交的,拿了良(85),只有我得了个75分的中,血亏20分,希望读者引以为戒!

        MsTest是Visual Studio自带的自动化测试工具,但是在这个课程之前我完全没听说过这东西,网上的资料也看不明白,C#单元测试工具对比 - 知乎说的很详细,但是没看懂,几个人在电脑前面坐了一上午才勉强会用,在这里简单介绍一下怎么用。

        首先,找到要测试的窗体,右键,创建单元测试。

 

        按理说默认就行,我之前MsTest和MsTestv2 都试过,最后没区别,有时候会报一个参数错误的提醒,不知道为什么也没影响使用。如果你担心可以都试试。

        进去之后是这样的

         每一个测试用的函数都要在前面加上[testmethod],不加的话环境识别不到,下面的测试函数可以加参数,默认生成的没有加,函数体里面是测试用的代码,这个Assert是直接报错的,我本人习惯用Assert.AreEqual(a,b),当b的值与预期的a不同时会报错,否则通过,下面是我写好的一个测试用的函数,给登录窗体使用。

[TestMethod()]
        public void login_pageTest()
        {
            login_page login_Page = new login_page();

            Assert.AreEqual(1,login_Page.Drive("1","1","经理"));
        }

Drive是我写好的驱动模块,如下

int i = 0;
        public int Drive(string user,string pass,string right)
        {
            textBox1.Text = user;
            textBox2.Text = pass;
            comboBox1.Text = right;
            object se = new object();
            EventArgs ev = new EventArgs();
            login_button_Click(se, ev);        
            return i;

        }

        我解释一下驱动模块,i用于标识登录是否成功,不成功则为0,成功为1,在button_click中,如果成功登录会将i=1,在drive函数中对窗体的文本框进行赋值,并模拟点击登录按钮。

        这个函数我写在了窗体login_page的函数定义里,窗体长这样

         这个账号我已经在数据库中预置好了,所以登录肯定是成功,Assert的预期值是1,实际返回值也会是1,下面运行一下测试

        运行可能会花好几秒时间,这是正常的。

         与预期值相符,通过,当然你也可以设置一些不通过的,取决于你个人想法。

        可能遇到的问题:

        找不到测试资源管理器(就是上面那张图片)——上方工具栏->测试->测试资源管理器。

        写单元测试的代码的时候显示缺少某些引用——原因是缺少某些dll文件,鼠标移到红线上,点击显示出的提示框中的“可能的修补程序”,会显示原因,找到蓝色的“可能的修补程序”,点它,会自动给你补上。(具体文字我忘了,但大概就是这样)

        无法调用某些方法——把要用到的函数改成public试试。

        总是无法得到预期值——大概率是你程序写的有问题,自己去运行原来的程序,打断点看看哪没执行。

        combobox赋值出错——检查一下是否设置成了只读,或者把DropDownStyle改一下,不要用DropDownList。

        运行老是不结束——可能是有死循环,或者是调用的函数没结束,比如登陆成功就会跳转到功能选择窗体,这时候会直接弹出功能选择窗体,我的处理方法是直接关掉该窗体,使函数结束,当然你也可以改动一下原程序,让它提前return。

        有好多测试样例都要测——你可以复制刚才写的test函数,每个都改动一下传给drive的参数,记得把[TestMethod]也复制上去,另一种方法是使用datarow[],但是我不会用,大概就是在前面声明一个datarow数组,里面放着好多组测试样例,下面的test就会执行这些测试样例,免得复制粘贴了,但是我没这么干过,可以咨询一下老师。据说还有一种方法避开了设置i这个变量去检测是否成功,就是捕捉当前窗体中文字,捕捉到失败两字就是登录失败了,跳转窗体就是成功了,但是这种方法我也不会,同样建议咨询老师。

        以上就是我的分享,编译和计网实验我就不放上来了,编译的代码我写的简直一坨,直接在上机考的时候汗流浃背,考完我就给删了,但非常搞笑的是计科课堂上机验收的题比我们难,我们就是添加一些“识别注释中的内容并输出”、“识别括号并输出”、“识别乘号并输出”的功能,但最后算分的排名是所有人一起算的,导致很多计科的人都是中或者良,我这种反而是优,计科的同学一定要小心。计网实验大概就是上机去输指令,画拓扑图搭建网络,主要难点在于不会用,建议咨询做完实验的人,把他摇过来帮你,或者照抄前面预备实验那里的代码,抄几个你就明白了,本来想把实验报告发上来的,但是在写这篇文章的时候已经删掉了,但是计网实验确实不难,最后抓包记得要用老师指定的软件建立一个传输文件的服务器,在另一台电脑上用浏览器网址栏输入服务器地址,传输几个文件,另一边就能用wireshark抓包了,可以把抓到的包导出,在自己的电脑上分析,写报告。

        如果还有问题可以在评论里提出,本人随缘回复。

  • 34
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值