Research from the Software Improvement Group has shown that 1 in every 12 applications behaves incorrectly when confronted with a dual-stack IPv4+IPv6 environment. How does Quality Assurance usually deal with this to make sure that:

  1. applications are compatible with both IPv4 and IPv6?
  2. applications correctly handle dual-stack environments?

You didn't mention platform. On the process side for windows apps, you can strive to create IP agnostic applications See here or here for some more ideas / elaboration.

For other platforms, I would imagine there is an equally limited number of networking functions that can tie an application to IP versions - a simple script could help identify exactly where code reviews or refactor work would need to be done.

  • I have found that it is unfortunately too easy to make software IP version dependent by making the wrong assumptions. Regular expressions for input validation that only accept IPv4 addresses, IP address input boxes in the user interface that consist of four integer fields, etc. But thank you for your help. It is at least a first step! – Sander Steffann Mar 2 '12 at 11:11

I'd suggest setting up a ipv6 only network (you'll need an ipv6 router and a DNS server - more if you want to test across subnets). Dual Stack can be a challenge to test, as fallback to v4 may mask v6 issues. An app (assuming it uses the network) should behave the same running on ipv4 or ipv6 networks.

You can also simply review the code to see if/where ip address are manipulated, or if if ther are low level socket commands that could cause a problem. If the networking calls are all high level (or non-protocol specific), you shouldn't have (m)any problems.

If you need to test ipv6 interet traffic, ipv6.com has several resources that should help (also search 'ipv6 tunnel broker' if you need to ensure ipv6 only traffic).

  • Testing is important, but it is not QA. Reviewing the code is possible, but in my experience it is very difficult for large projects to cover all the code, external libraries, external software dependencies etc. Do you have any suggestions on a strategy to really make sure that code behaves correctly? – Sander Steffann Mar 1 '12 at 11:56
  • So many people use the terms interchangeably that I often fail to recognize the difference. I'll post a QA answer too. – Alan Mar 1 '12 at 22:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.