[英]iPhone OS Testing Best Practices
Not so long ago iPhone development was quite simple, only a few OS versions and even less devices. 不久之前,iPhone的开发非常简单,只有几个OS版本,甚至更少的设备。
Now however, there are 2 major OS versions and 5 different devices to consider. 但是,现在有2种主要的OS版本和5种不同的设备需要考虑。
As a company about to release several applications testing has been become more and more of an issue. 作为一家即将发布多个应用程序的公司,测试已成为越来越多的问题。
What are the best ways to test all combinations, do I need to acquire every generation of iPhone and iPod Touch? 测试所有组合的最佳方法是什么,我需要购买每一代iPhone和iPod Touch吗? Are there any gotchas with specific hardware/OS combinations I might need to code around? 我可能需要编写一些具有特定硬件/操作系统组合的陷阱?
I guess my question is, "What's the minimum amount of testing required to cover all the bases?" 我想我的问题是,“涵盖所有基础的最低测试量是多少?”
In my experience, you won't have much compatibility trouble between iPod/iPhone. 以我的经验,您在iPod / iPhone之间不会有太多的兼容性问题。 There are other gotchas to be aware of: 还有其他注意事项:
So, what do you need to buy? 那么,您需要购买什么? If you're a serious developer, yes, you should have all 5 devices available. 如果您是一个认真的开发人员,可以,您应该拥有所有5种设备。 But do you need to test every build on all 5 devices? 但是您是否需要测试所有5种设备上的每个版本? Does every one of your developers need 5 devices each? 您的每个开发人员都需要5台设备吗? No. 没有。
One developer can probably test everything that matters with one iPhone 3G and an iPod Touch. 一个开发人员可能可以用一部iPhone 3G和iPod Touch测试所有重要的事情。 Toss in a 3GS and your coverage is probably nearly perfect. 投掷3GS,您的覆盖范围可能几乎是完美的。 (Note that development on 3GS is much nicer just because the CPU is faster, so your apps deploy more quickly.) (请注意,由于CPU速度更快,因此3GS上的开发要好得多,因此您的应用程序部署会更快。)
At work we have one device per developer, but they're a mix of 3G and iPod devices (and, today, one 3GS). 在工作中,每个开发人员只有一台设备,但它们是3G和iPod设备的混合体(今天是3GS)。
I don't have much experience with the iPhone itself, but in general this might be a good application of pairwise testing . 我对iPhone本身没有太多经验,但是总的来说,这可能是成对测试的良好应用。 In practice, you can get 90% coverage with a small fraction of the testing of an exhaustive test pass. 在实践中,只需进行详尽的测试通过的一小部分测试,即可获得90%的覆盖率。 Then later if you find certain configurations have gotchas you can add them to your set of configurations and still not need to do an exhaustive pass. 然后,如果您发现某些配置存在陷阱,则可以将它们添加到配置集中,而无需进行详尽的说明。
I am not sure if its a best practice. 我不确定这是否是最佳做法。 But I have heard many people using ibetatest for exactly what you are looking for. 但是我听说很多人使用ibetatest来满足您的需求。 Lots of enthusiastic beta testers out there. 有很多热情的Beta测试人员。 You shouldn't have any issues on 95% of your code running on different versions, and something like ibetatest should catch the remaining 5%. 95%的代码在不同版本上运行时,您应该不会有任何问题,而ibetatest之类的东西应该可以捕获剩余的5%。
I'd suggest a couple things: 我建议一些事情:
you probably will need a range of devices for your own internal testing. 您可能需要一系列设备进行自己的内部测试。 As has already been pointed out, there are various differences between each generation of iPod Touch/iPhone 正如已经指出的那样,每一代iPod Touch / iPhone之间存在各种差异。
you may want to look into using crowd-sourcing to supplement your internal testing. 您可能需要研究使用众包来补充内部测试。 This potentially allows you to have a bigger audience to test your apps and any cost of using crowd-sourcing is potentially offset by the fact that you can spend less on devices and potentially less on internal testing staff and at the same time, potentially producing a better product. 这样一来,您可能会有更多的受众来测试您的应用,而使用众包的任何成本都可能因您可以在设备上花费更少,在内部测试人员身上花费更少而同时可能产生更好的产品。 One crowd-sourced test group not mentioned above is uTest.com uTest.com是上面未提及的一个众包测试组
Get all the combinations is the short answer. 获得所有组合是简短的答案。
I started out with just the iPod, but it's 100MHz faster than the previous iPhone model. 我刚开始使用iPod,但是它比以前的iPhone型号快100MHz。 My app's performance sensitive, so I'm gonna have to get an old iPhone. 我的应用程序对性能很敏感,因此我将不得不购买旧的iPhone。 I can hardly ask my beta testers (volunteers?) to run the GL performance tool. 我几乎不能要求我的Beta测试人员(志愿者?)运行GL性能工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.