我是一名嵌入开发团队的软件测试工程师.我工作的很大一部分涉及检查项目的自动化测试状态(主要是单元/集成测试).
我不是一个想要强迫测试每个人的喉咙的短视狂热者,但我确实希望帮助每个人在他们花在编写测试上的时间里获得最大的收益.每周花大量时间编写测试,因此最大化回报非常重要.
现在,我做了一些尝试和帮助的事情.首先,我总是让自己谈论可测性问题.例如,尝试识别测试策略,特定设计是否可测试等等.
除了向人们解释事情并且通常试图帮助他们之外,我还会审查完成的代码和他们编写的测试(我必须签署故事,这意味着我也有点对抗).
我目前的流程是单独坐下来,通过他们的代码,书签和评论所有问题区域,可以改进的地方以及原因.然后,我将开发人员带到我的电脑上,并通过所有评论点进行讨论.然后我给他们一个体面的写作,所以他们有一个记录,他们很容易参考.
我不修复他们的代码和测试,但如果我发现差距,我会添加更多测试用例等.我之所以决定不对它们进行测试的原因是开发人员太容易说"谢谢"而是要退出.我的理由是,如果他们必须在我签署之前解决我发现的问题,这将导致更好的项目测试标准(即更自给自足的开发人员测试).
我的问题是:在帮助团队时,我能做得更好吗?您发现哪些方法有益?
我特别希望听到那些担任类似职位的人面临同样的挑战(例如,帮助提高测试质量,证明价值测试可以带来相关的情况,并在支持和对抗之间取得良好的平衡.)
*编辑:感谢您的回答; 所有这些都包含有用的建议.我认为最好的答案是最好的答案,因为我认为它归结为开发人员的支持,并且配对编程是我尚未尝试过的(缺少一些即兴的'这里是我如何做这个'示范在测试之后书面).我会和任何努力测试的人一起去试试:)干杯.
我注意到一些应用程序(如steam)能够像普通用户一样启动/停止服务而不调用uac控件.有谁知道怎么做?
操作系统:Vista/Win 7 Visual Studio 2005 C++
.
编辑:昨晚我正在玩蒸汽服务试图弄清楚它是如何不同的.如果我把我的服务exe放在蒸汽一个它启动它很好用uac(使用sc.exe),但如果我使用蒸汽exe在我的地方它没有工作.在服务器信息的注册表中查看,我发现steam有一个额外的权限部分.这是什么意思,你如何设置它?
.
编辑2:您需要更改服务的用户访问权限:http://msdn.microsoft.com/en-us/library/ms684215(VS.85).aspx
在MSBuild中,您可以覆盖<Target />自己的另一个文件.例如,只需通过定义具有相同名称的自己的Target,文件中包含的AfterBuild目标Microsoft.Common.targets:
<Target Name="AfterBuild">
<!-- Do something different -->
</TargetName>
Run Code Online (Sandbox Code Playgroud)
你会看到这样一个音符:
在项目"XXXXX"中使用目标"AfterBuild"覆盖项目"C:\ Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets"中的目标"AfterBuild".
有没有办法调用原始的AfterBuild目标?
我想这样做来检测某些复杂的默认目标,然后执行原始行为.像Build这样的许多目标暴露了可用于此的BuildDependsOn属性.许多其他人没有 - 我想在不完全复制其内容的情况下覆盖它们.
如果我有一个私有变量,我想要进行一些内部验证,并且我想将验证放在一个地方,我把它放在一个getter/setter后面,只能访问getter/setter.这在处理公共属性时很有用,因为其他代码无法访问私有变量,但是当我在类本身内部处理对象时,有没有办法强制执行getter/setter?
private int _eyeOrientation;
private int eyeOrientation
{
get
{
return _eyeOrientation;
}
set
{
if (value < 0)
{
_eyeOrientation = 0;
}
else
{
_eyeOrientation = value % 360;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是类中的其他函数可能会意外修改
_eyeOrientation = -1;
这将使程序陷入眩晕.有没有办法让它抛出编译器错误?
我的场景:计算机A有一个包含链接表的Access数据库.这些链接表实际上位于计算机B上的另一个Access数据库中.没有什么不寻常的.
现在我们创建一个SQL Server数据库,并在计算机B上的Access数据库中建立指向这些表的链接; 我们配置一台机器DSN来定义计算机B上必要的ODBC连接.访问数据库B现在包含本地表和链接的SQL表.
Access数据库A现在想要链接到Access数据库B的新表 - 但只有其本地表显示在对话框中才能添加链接表.您似乎无法在Access中"链接到链接表"...
但这是真的吗?我们想要做的是将数据库B的SQL表链接呈现给数据库A ,就好像它们是本地表一样 ; 即数据库A不知道数据库B中的新表实际上不是本地的.
当然,我们可以通过在该计算机上配置DSN将SQL表直接链接到数据库A ,但我们不想这样做.我们希望将计算机/数据库B用作nexus或"网关",将本地和SQL表无缝地呈现给网络上的其他Access客户端应用程序.这只是一个临时设置,允许我们逐步将所有Access客户端应用程序迁移到基于SQL Server的表,而无需修改大量代码.
可以这样做吗?还有其他可行的解决方案或方案我们还没有想过吗?
git log origin/master
git log origin/master..
Run Code Online (Sandbox Code Playgroud)
与上面的确切区别是什么?我试图理解..符号的确切含义.我认为这是一个范围,但在这种情况下,它做了一些不同的事情.
假设我有一个字符串数组:
string[] myStrings = new string[] { "First", "Second", "Third" };
Run Code Online (Sandbox Code Playgroud)
我想连接它们,所以输出是:
First Second Third
Run Code Online (Sandbox Code Playgroud)
我知道我可以像这样连接它们,但两者之间没有空间:
string output = String.Concat(myStrings.ToArray());
Run Code Online (Sandbox Code Playgroud)
我显然可以在循环中做到这一点,但我希望有更好的方法.
有没有更简洁的方式来做我想要的?
如果我的C++应用程序在Windows上崩溃,我想向我们的服务器发送有用的调试信息.
在Linux上我会使用GNU backtrace()函数 - 是否有Windows的等价物?
有没有办法在程序崩溃后提取有用的调试信息?或者只是从过程中?
(根据"测试你的应用程序,所以它不会崩溃"的建议是没有用的! - 所有非平凡的程序都会有bug)
我有一个方法,需要一个const char指针作为输入(不是null终止).这是我在我的项目中使用的库(TinyXML)的要求.我从string.c_str()方法调用中获取此方法的输入.
是否需要删除此char指针?呼叫完成后,字符串立即超出范围; 所以字符串应该用析构函数调用删除它,对吗?
为了挤进我正在使用的嵌入式系统中可用的有限数量的文件系统存储,我想消除任何可以合理删除而不会显着影响功能或性能的文件.Python库中的*.py,*.pyo和*.pyc文件占用了相当大的空间,我想知道哪些选项对于小型嵌入式系统中的Python 2.6安装最合理: