Living in Switzerland, Franco Martinig has always tried to conciliate his interest for software development and literature. In parallel with its consulting activities, he created in 1993 the Methods & Tools magazine, a free PDF publication that covers all aspects of software development, and in 2009 the web site SoftwareTestingMagazine.com that presents software testing knowledge, resources and news.
a1qa: Franco, today you are editing several reputable software development magazines and web sites. This role allows you to have a “helicopter view” to everything happening in the world of software development and software quality assurance. What comes to your mind first being asked about tendencies & trends in software testing? Where are we going today?
Franco Martinig (F.M.): I mostly worked in teams where people performed multiple activities: requirements, development, testing. This fosters the knowledge of the business by the developer, which I think is an important asset. It is also an organization that limits the loss of information that occurs when you have business analyst talking to the end users and then transmitting information to a developer and a tester. I recognize however that it could be sometimes difficult for developers to “break” their own code. Tests performed by other people are important to get an external view on your application, website QA testing just needs to be done by other people to avoid bias. I am however always surprised when people argue that unit testing your own code is useless. It is always easier and cheaper to catch a mistake on freshly produced code than to discover what went wrong later in the development cycle.
One of the current trends in software is the adoption of Agile approaches that should improve team collaboration and responsibility. The frequent delivery of working software is a challenge for software development teams and a true Agile “behavior” can be difficult to implement. Agile software testing techniques are helping to improve the quality of developed software and the visibility of software testing. Test-Driven Development (TDD) and Behavior-Driven Development (BDD) are two techniques that use tests as a support and validation for the coding and requirements activities. The adoption of these techniques is also made easier by the development of solid open source software testing tools for unit testing (the xUnit family or various mock frameworks) and functional testing (Selenium, Cucumber, etc.).
a1qa: We know you were deeply involved in development process in the past working for banks. So, what do you think of developer testing practice specific to the financial industry?
F.M.: In Switzerland there has been an important shift from solutions developed internally to the implementation of packaged software banking solutions. In most of the banks, the main package rarely covers all the functional requirements, so banks are dealing with multiple suppliers and need to integrate their products. The increased number of stakeholders in this type of projects and the fact that the testers have now to adopt a black box approach create important issues as it could be more difficult to determine where some bugs come from. Suppliers have a natural tendency to blame other people for the problems… just like we often do it as software developers ;O). Another trend I notice is the increased difficulty to have access to actual customer data when you try to understand production bugs. I understand the fear of seeing personal data leaking to the outside world, but this situation makes it harder and longer to understand which specific customer configuration was at the origin of the bug and how to it.
a1qa: How do you see the role of independent testing companies (like a1qa) on this overall software testing map? In other words, what is your bid in the competition like internal testing versus independent QA?
F.M.: In the beginning of my careers, software was targeting mainly “internal” end-user and intimate knowledge of system and business is an advantage to test this type of applications. Now software is used by “external” users through web sites or mobile apps. I think that this is where providers of software testing services have a major role as they can propose a structured testing of these systems with a “neutral” customer vision, something more difficult to find inside the organization. If you are providing products or services on a global basis, you also need people that could assess your product from different parts of the world. Does your application work the same in Moscow, Dubai, Bombay or Rio? Finally, these companies can also provide expertise for software testing techniques and tools that could improve the execution of testing by internal teams.
Thanks for being our guest and for sharing your viewpoint. We will be glad to see you and talk to you again.