Latest News

Showing posts with label Application Testing. Show all posts
Showing posts with label Application Testing. Show all posts

Wednesday, April 25, 2018

Unit Testing? Consider Taking a Rain Check


Unit testing is a great way to verify software at an early stage and to ensure that modified functions are still working as specified. Unit tests can also help drive development, essentially working as a specification-by-example technique. Unit tests usually work for individual methods in a class, and for each execution of a unit, test a set up and tear down of an instance of the class of which the methods are members.
However, unit tests are not a magic wand. Many of them will typically be low-level routine tests, calling function (method) and checking the result of that function. However, if the function under test has complex dependencies, it will take more effort to create tests for it. The dependencies can be on other functions or even on other components or external services. It can also require certain values in a database and/or modifying them. The effort to establish the proper pre-conditions for a test at unit level might not be worth it.
Rather than making such a big effort, consider taking "rain checks" for certain tests. Test the aspect that can be tested immediately, but save some of thecomplex testing for later. Achieve the testinggoals by higher level tests at the level of components, services, or even the UI.
In this approach, you would analyze for a function what test situations are needed to test it. Then, you would establish the closest higher level at which those situations can be created more easily. This might often be the component level, but it could also be the UI level or in interoperability testing. In the test design for the chosen level, you make sure that the test situations for the units have been covered. This will ensure that the function at unit level has been exposed to the situations necessary to test it.
Making sure the needed situations are covered at a certain test level does not necessarily mean each function gets its own test case there. The verification can also be part of a larger comprehensive scenario. This is probably even better in most situations, so tests don't get too granular.
A major advantage of unit tests is their ability to verify code changes. They are closely related to the code and get executed whenever there are changes to that code. In a rain check approach, this link with the code must be kept intact. In the Action Based Testing method, this can be done via an entity called "test objective". Test objectives are natural language statements that can link the test cases to other items—in this case code files or functions.

Unit tests are a beneficial part of system development processes. They allow the teams to build automated verification that keeps up with the code. With a rain check approach, the advantages of unit testing can be supported by the levels of tests where it is most economical to do so. It is up to the team to decide in which cases, if any, this can make sense.
Source: Techwell

Sunday, November 26, 2017

What is the mobile web application development?

The internet revolution is unstoppable. It touches almost all aspects of our life. A new form of web technologies is being implemented. Web developers over the world are discovering latest methods of improving web technologies for websites and web application development.

We are living in the best of phases of the web. It’s everywhere and is accessed not only through desktop computers but also through mobile phones.
But things designed for desktop web does not perfectly work on mobile devices and thus there is need of mobile web and web application development.
While designing and developing websites and web applications, these things must be kept in mind:
  • First understand the need of users. It could be anything. People are using mobile web for a number of purposes; from entertainment to education, to social media, to data share, to ecommerce, to book ticket.  So here web developers need to understand the type of services to be offered through the application. The services offered by the web apps can be of 3 types:
1.      Business services.
2.      User services.
3.      Data services.
  • Developers also need to understand the budget of the application. There may be different segments of designing an app and thus budget should be planned accordingly.
  • The application should be designed, developed and deployed with the optimum use of technology and is supposed to be better than its previous versions.
  • Security is prime concern in the world of web and thus web based apps are also expected to provide utmost level of security to the data and device of end users. People want more security when they spend money in buying anything online.  Transactions have to be absolutely secured in taking care of credentials.
Here are the levels of a web application development process:
1.      Project layout preparation. It includes direction, features and the focus.
2.      Planning of the project with considering aspects like budget and customer expectations.
3.      Developing of the project.
4.      Testing app for aspects like productivity, performance, scalability, and stability.  After the testing of the project, it will be available for the user.
Above mentioned were the four basic stages of for any web application development.
A website or web application is not user-ready if does not goes through all these stages. Undergoing these stages ensures a web serving the purpose it’s made for.
This information is brought to you by experts in website and web application development. 

Source : whatech

Friday, November 17, 2017

Securing the smart and connected home

Billions of smart devices have at least one external connectivity interface which potentially becomes the entry point for cyber attackers to bring down the entire system.

Smart devices including mobile terminals, wearables and all kinds of sensors, smart nodes and platforms with connectivity and critical information processing capabilities are fast growing into billions of pieces. (File Photo)

Smart devices including mobile terminals, wearables and all kinds of sensors, smart nodes and platforms with connectivity and critical information processing capabilities are fast growing into billions of pieces. These billions of smart devices have at least one external connectivity interface which potentially becomes the entry point for attackers to bring down the entire system. Smart home is one such example of a connected system with intelligence.
To prevent attacks, a robust, market proven and certifiable hardware security solution becomes a key ingredient of such systems that communicate and process critical or sensitive information. Here we look into the various security threats in connected smart home devices and discuss the necessary security measures that should be utilised, in particular leveraging on the values of hardware trust anchors. We will also present specific use cases on Smart home environment as a good reference for the audience to gain a better understanding.
With the fast growth of IoT applications, our home network environment has changed dramatically in recent years. A typical home network setup five years ago consists of a wireless/wired router with ADSL/cable connection to the internet, and the devices are connected to the router are mainly desktop computers, laptops and smartphones. These devices have one commonality, which is that they are operated by human beings, and they are not powered up 24/7 in many cases except the smartphone.
Today, the home network setup is undergoing a complete revolution. A typical home network environment can be described as in below diagram:
Today, the home network setup is undergoing a complete revolution. (File Photo)

There are a few important new characteristics of a smart home network environment
First, there are more devices in the home today that are becoming smarter and connected. For instance, smart sensors like thermostats need to be connected to the internet for data logging and remote control. IP cameras need to be connected to internet for real time monitoring. Even door locks have evolved to include connectivity options to allow remote monitoring and to allow opening of the door remotely.
The dramatic increase of smart devices in the network increases the potential entry point of attacks from a security point of view. And all these smart devices have very minimal direct human operations. They all have built-in intelligence to collect data and information, make decisions based on the programmed algorithms and in many cases they need to have data communication capability with either the home gateway or the cloud server. End users mainly control or monitor these devices via external consoles or smart phones. Therefore in case of an occurrence of a security breach, end users have very minimum way to detect, prevent the issue and make corrective actions because these devices operate on their own.
Major security threats in smart home
We can broadly categorise security threats for smart home applications into 4 main categories. These security threats are identified and discussed as follows:
1.      Fake Identity of Devices: Most of the smart home devices possess some form of device identifiers as a unique ID or certificate. However, unique identifier without cryptographic protection can be easily cloned as soon as the attackers gain the knowledge of the generation process. Once the unique identifier can be cloned without authorization, the attacker is able to gain immediate access to the network via the cloned device, and from there subsequent attacks can be deployed. E.g. critical information can be stolen, bandwidth of the network can be misused, or malware and virus can be injected. On the other hand, validation of the server identity is equally important. If a home device is connected to a malicious server, critical user data can be stolen or in a very worst case, entire home network can be attacked.
2.      Eavesdropping of Data: Most of the communication interfaces used in smart home environment are based on wireless technologies, e.g. Bluetooth, ZigBee, Wi-Fi etc. Although most of the wireless technologies have some form of security protection mechanisms, they are not robust enough due to the constraints of the use cases. For instance, Bluetooth typically relies on simple passphrase to do pairing. It increases the risk of eavesdropping of the critical and sensitive user data over the communication interfaces. It is also common to employ encryption of the communication data using cryptographic keys to protect the confidentiality and integrity, however, the protection of the cryptographic keys against stealing and extraction are then of great importance.
As an illustration of a real life attack, three years ago, experts from Context Security demonstrated the security weaknesses of certain smart-bulbs. These LED bulbs were connected to a Wi-Fi___33 enabled circuit board and the experts found that when the bulbs “talked” to each other across a mesh network (6LoWPAN powered), the messages contained a username and password. As the underlying pre-shared key was never changed, all the white-hat guys had to do to gain access was to set up a similar circuit board simulating one of the smart bulbs asking to join the network. That allowed them to steal credentials and eventually gain control of all the lights on the network. They reported that a potential attacker could have easily gained access in private homes or businesses if they could have gotten as close as 30 meters to the bulbs. Even worse they note also that such a attack would have gone undetected by the owner of the network.
3.      Manipulation of Data: Besides the risk of eavesdropping, there is possibility of critical data being manipulated/changed by malicious attacks, therefore data integrity protection is another important aspect of security in Smart home environments. Critical information like billing information, sensitive configuration data or resource usage cannot be communicated and stored as manipulated value.
4.      Malware Infection: One typical attack after gaining access to the network is to install malware so that the affected device becomes the source of next level attack. The recent cases happened in some of the major telecommunication networks are typical examples of such attacks. Once the connected home devices are breached with malware installed, such devices could be added to a botnet and start issuing DDoS attack. As a result many smart home devices – not only computers – become potential source of DDoS attacks. The amount of such smart home devices (e.g. smart cameras, home routers etc.) is much more than the amount of computers connected to the net, therefore the scale and speed of damage due to botnet DDoS attack can be also much more significant.
Secondly, wireless connectivity solutions are not only limited to Wi-Fi in today’s smart home environment. Connectivity solutions, such as Bluetooth, ZigBee and Z-Wave have evolved and are adopted quickly. With the increase of the connected devices via different wireless connectivity solutions, the attack surfaces of smart home devices have greatly increased and the number of attacks has been rising steadily. Additional protection at system level is thus strongly needed.
Last but not least, most of these smart devices run on various microcontrollers with proprietary Real-Time Operating System (RTOS). The security level of such implementations can vary from vendor to vendor. Also, very often there is a need for field firmware upgrade for these devices which opens up another highly potential attacking entry point because malware can be injected during firmware upgrade without sufficient protection mechanisms in place. The recent distributed denial of service (DDoS) attack from connected devices in US and Germany are very good examples of the importance of firmware protection in connected home devices.
Basic Security Cornerstones
The above mentioned security threats in the smart home environment can be addressed by 3 basic security aspects: “Confidentiality” by encrypting the sensitive data; “Integrity” by protecting data with cryptographic Message Authentication Code function or digital signature; “Authenticity” by using strong cryptographic authentication schemes.
At the center of these 3 security cornerstones are the cryptographic keys which are used for the encryption/decryption, calculation of the CMACs and supporting the strong cryptographic authentication schemes. If an attacker manages to steal or clone these cryptographic keys, then these security cornerstones (“Confidentiality”, “Integrity” and “Authenticity”) can no longer be enforced since the attacker is now able to successfully eavesdrop and/or modify the communication data and fake itself as the real device. Therefore, it is of paramount importance to protect these cryptographic keys by using a tamper-resistant hardware trust anchors.
Hardware based trust anchors for Smart Home Security
Secured identities are established using secret keys and cryptographic processes that utilize secret keys. Secret keys are fundamental root of trust for the entire chain of security measures required to protect smart home systems. Hardware-based security solutions provide the robust levels of security required to protect secured identities and deliver a greater level of trust than pure software based implementation.
Software-only solutions often have common weaknesses such as software bugs or malware attack. Typically, it is also relatively simple to read and overwrite software, which, in turn, makes it easy for attackers to extract secret keys. In contrast, hardware based security solutions can be used to store access data and keys on the same level as a safe is used to store confidential documents.
Software-only solutions often have common weaknesses such as software bugs or malware attack. (File Photo)
There is no one-size-fits all solution when it comes to cyber-security and very often the effective approach is to adopt a defense-in-depth approach where the security countermeasures are built into various layers such as devices, software and application, processes and user education.
On the device and hardware level, the best-of-both-worlds can be achieved by adopting tamper-resistant hardware trust anchors to complement the software security implementations. The hardware trust anchors can be used to provide a secured storage of cryptographic keys and provide a strong level of trust to support the software implementations. By achieving the spatial separation of the software applications and cryptographic keys, this provides a cost-efficient and highly effective barrier against the leakage of the keys and certificates in the event of malware infections.
With the advent of the Internet of Things and Smart Home technology, more and more devices are becoming connected. (File Photo)

Conclusion
With the advent of the
Internet of Things and Smart Home technology, more and more devices are becoming connected. Attacks are made possible as these smart devices are able to run source codes for applications and that they are mostly connected to the internet without any secured connection. These can potentially become entry points for malicious hackers to break into the system to steal, manipulate confidential information (e.g. passwords) or even to inject malware.
In most of these cases, the users are unaware of the vulnerabilities and potential security exposure (e.g. ref the DDOS attack) of the products they purchase. Hence it is imperative that device makers include security measures from the design of their products.
In addition to other security measures in the operating system or software, a hardware trust anchor provides the secured basis for the system. By relying on such a specialized device, the manufacturers of embedded devices can reduce their efforts for creating a secured basis while still getting a strongly secured system.

Source : indianexpress

Sunday, July 16, 2017

How To Make Developers More Efficient: Software Development in the Cloud

The software development cycle is changing. The traditional cycle of software development ranged from tasks like requirements gathering, analysis, implementation, QA, build-fix-build iterations and then, finally, application deployment. From start to finish, software development typically took many months or even years. Those individual tasks aren’t going away, but the development cycle is changing.  It is shortening
Agile development, for one, has had a tremendous influence on the development cycle. The morphing of long development cycles into frequent loops of development and redeployment followed by feedback from customers, end users and other stakeholders has enabled more frequent updates and more targeted releases.
The packaging of software as apps that can access collections of microservices and as containers also means that it’s now possible to introduce updates more easily and frequently by swapping out newer versions of self-contained services.
But, above all, the cloud-first development philosophy has become a part of almost all new software is affecting how software is created.
Some of the reasons why software development is done more efficiently in the cloud include:
1. Typically software developers are already using the cloud for some part of their current process.
2. Software developers want to work with new technologies, most of which are cloud centric.
3. New software development tools, like for DevOps and Continuous Delivery, are based on cloud services.

Source: Formtek

Wednesday, April 27, 2016

Importance of Testing Application for Compatibility Issues


With the constant increase in the demand for quality Operating Systems and versions, companies frequently release enhanced Operating Systems and versions. The platforms with new features and improved performance always attract customers. Since most of the customers are already using mobile, the customers would want to access the preferred application in a specific platform. In order to offer a fully compatible application that fits with different platforms, compatibility testing is imperative. Developers are always skeptical about their application compatibility with new platforms, whenever any new version of the platform is available for use. Identifying which application can fit with new platforms significantly reduces the delays and user disruption Companies that relied on custom applications always look forward to simplify their operations and improve productivity.

At the same time, these companies would like to have better platforms to address their activities. Because, increased productivity and effective operation is being the main business intention, and adapting to the changing technologies is becoming very difficult. Easily adapting to changing platforms would help companies to deal with huge business demands and drive results that provide improved business value. This suggests, companies need to deeply analyze compatibility issues and make reliable decisions which helps to make necessary changes to make the application compatible with the desired platform. Companies might need to prepare an effective test strategy and gather appropriate testing tools to test the application. Companies might also need to have an experienced and technically expert testing team to rigorously test the application on different platforms to find defects. All these things might be time consuming and expensive if companies want to initiate at their places. Companies that outsource all their testing activities also should look out testing on all available platforms and versions for compatibility.

The major problem is that many applications might not readily work well in new platforms. Identifying a platform on which an application will work easily, identifying an application needs to be improved in order to make it work, on which platforms the application cannot work at all will not only helps to save time and money. An effective testing can help you know upfront what all changes you need to make. Testing provides an insight on whether an application works on a new platform. Companies need to identify a right testing vendor who can help in determining which of your current applications can fit with the new platform, which ones need to be enhanced further to be able to work on the new platform and which ones cannot work with the new platform. Identifying application function on different platforms would help in improving it.

One can automate the process of application compatibility testing to determine any problem that may evolve from upgrading to a newer version in a short time. A rigorous platform compatibility testing will help you identify how your application will look and behave in a range of platforms. Cross platform testing might be time consuming. Identifying a cloud-based cross platform testing provider can help in assuring the compatibility of the application in a wide range of platforms. It enables a company to start testing within a short notice. They might also provide “pay for what you test model”. A cloud based cross platform compatibility testing can help in reducing a large amount of time and money.

Source: https://www.clictest.com/2015/12/

Friday, November 27, 2015

Manual vs. Automated Testing – What’s the Right Mix?

Automation is ideal for continuously running sanity checks to verify that the development crew didn’t unintentionally break something. The problem with automation is one of resource availability. Placing heavy emphasis on test automation means allocating highly skilled resources to it and, even if they are initially available, the odds are that they will be drained away by the press of code development. That leaves the question of test script maintenance up in the air. An alternative approach is to maintain a script library that operates and verifies all the features at a fairly shallow level. The tests exercise the code without stressing it in any way. This ensure nothing was severely damaged by a change such that a feature stops operating or does something unintended.
The requirement for new features to be tested in detail can be filled by manual testing where a test tech explores the new feature the same way a user would. This places a strong focus on carefully testing the newest code, which is most likely to harbor new bugs.
Resource tug of warThe make-or-break for test automation coverage is resource allocation. How many skilled developers is your organization willing to task with automated script creation and maintenance? Writing test scripts requires the same skill set as code generation in an individual who has a proper understanding of the product’s intentions and a tester’s approach to verifying  implementation. Assigning the necessary staff to maintain full coverage of a system can quickly approach the same cost level as creating it in the first place.
Failure to maintain the script libraries and update them alongside the release of new features risks their becoming obsolete and reporting false failures that eventually discredit the entire automation process.
BalanceMost companies work to strike a balance between automation for repetitive, predictable tests and manual, exploratory testing for newly coded features. This allows a sanity check to catch collateral damage and detailed verification to get the new code just right.
Successful test automation hinges on allocating sufficient resources to script maintenance. A winning strategy is to backstop your automation effort with manual testing where it makes more economic and skill application sense to do so. An external test services company can provide flexible test techs and engineers who can come up to speed quickly to get new code and features verified while the in-house team is putting test scripts in place for sanity checks and regression testing.
Check out the white paper for a full discussion of manual versus automated testing and where each excels.

Source: https://www.qualitylogic.com/community/index.php/manual-vs-automated-testing-whats-the-right-mix/

The Top 5 Skills for Future Software Testers

The software field grows every year, and so do all of the individual facets it contains. We can personally attest that software testing companies are expanding, looking for talented folks interested in pursuing a career in testing and QA. That’s why we just published a QA jobs website , to help guide those who are interested in joining us here at the US’s largest software testing company. Careers in this industry are satisfying and fast-paced, but they aren’t for everyone; here on the QualiTest Blog we decided to look at the top 5 skills for future software testers today.
A software tester’s biggest job is to mentally get inside a system, figure out what makes it work, and come up with interesting ways to “break” it.


  1. Logic and analytics – any career in the tech field will need this one; figuring out how things work correctly and independently is a godsend to software-related teamwork, as it means you’re likely to come to the right conclusions with little to no handholding.
  2. Communication – It’s by far the most important skill for software testers old and new, as without it, testers have no idea what they’re supposed to be doing, and stakeholders have no idea what’s going on with their project.
  3. Creativity/ability to think outside the box – a software tester’s biggest job is to mentally get inside a system, figure out what makes it work, and come up with interesting ways to “break” it.
  4. Understanding of business processes – similar to the above, this skill allows you to better understand a system, and how can you test the functionality of a system you don’t understand?
  5. Some amount of technical understanding – your employer won’t expect you to be their new IT admin, but you should have some basic understanding of how the program you’re testing works, and how the hardware you’re using to do so works as well.
If you have these five skills, congratulations! You’ll probably be an awesome software tester (and you’d also be great at a bunch of other careers in IT/technology). If you don’t, you’ll definitely be at a slight disadvantage, but most of them can be picked up with a bit of hard work. The best thing about these skills is that they don’t necessarily require prior hands-on experience in software development or testing; sure, the only real way to learn to test is by actually testing, but the above skills can be sharped from just about anything – college schoolwork, part time jobs, or experimenting with technology in your own free time. Software testing is great like that.

Source: http://www.qualitestgroup.com/blog/test-methodologies-and-philosophies/top-5-skills-future-software-testers/

How to Write Test Documents

When beginning a Software Testing project, several documents must be prepared as part of the process. These documents include a Test Plan, Test Scenarios and Test Cases.
It can be difficult to start these documents from scratch each time that you begin a new software testing project. Knowing where to begin is one of the greatest challenges in writing these plans. Using a template that has a detailed outline of required information can assist in this process.



Creating a Test Plan

A Software Test Plan (STP) documents the requirements that will be used to verify that a product or system meets its design specifications and other requirements.
The STP prescribes the objectives, approach, resources and schedule of all testing activities. The plan must identify the items to be tested, the features to be tested, the types of testing to be performed, the personnel responsible for testing, the resources and schedule required to complete testing, and the risks associated with the plan. The Test Plan should also discuss any deliverables for testing, including references to test scenarios.
A test plan is usually prepared by a team lead or test engineer, with significant input from developers.
For an example of a Test Plan template that has been assembled by QualiTest, please refer to the link above.

Creating a Test Scenario

A Scenario, also known as a Test Condition or Test Possibility, identifies the functionality to be tested. A Scenario includes a set of test cases to ensure that the business process flows are tested from end to end. They may be independent tests, or a series of succeeding tests, each dependent on the output of the previous one. Any connection to the test plan should be referenced in the test scenario.
For an example of a Test Scenario template that has been assembled by QualiTest, please refer to the link above.

Creating a Test Case

A test case is a set of conditions or variables from which a software tester will determine whether an application, software system or a feature is working as it was intended. It may take many test cases to determine that a software program or system has been sufficiently scrutinized before released. Test cases are often referred to as test scripts after being written and collected into test suites.
The characteristics of a good test case are:
  • Accurate: Expressly articulates the purpose.
  • Economical: No unnecessary steps or words.
  • Traceable: Capable of being traced to requirements.
  • Repeatable: Can be used to perform the test as many times as necessary.
  • Reusable: Can be reused if necessary.
  • Independent: Each test case should be executable in any order, without any dependency on other test cases.
  • Concise: The description of a test case should be simple and clear. A tester should be able to understand it by reading it once.
For an example of a Test Case template that has been assembled by QualiTest, please refer to the link above.

Tips For Templates

  • Before writing any test cases, one should concentrate on the various scenarios which the product will face at a customer’s site.
  • Because plans, scenarios and cases form the base for future test cases and testing, you should designate sufficient writing time, followed by a thorough review process.
  • Scenarios should be brief and succinct. The purpose of a test scenario is not to provide details, but to convey a specific idea about testing a particular case.
Source: http://www.qualitestgroup.com/blog/testing-tools/write-test-documents/

Thursday, November 26, 2015

Tech trends that have changed the way we test software

We are witnessing the rapid influx of new technologies and a continuously evolving industry which is always moving forward. Year on year, we are seeing new trends in technology such as ‘cloud computing’, ‘enterprise mobility’ and the ‘IoT’ that have changed the way we test software.






trends1

*The graphs show the popularity trends vs other search terms. The numbers that appear show total searches for a term relative to the total number of searches done on Google over time. A line trending downward means that a search term’s relative popularity is decreasing. But that doesn’t necessarily mean the total number of searches for that term is decreasing. It just means its popularity is decreasing compared to other searches.

In 2015 Big Data, the Internet of Things, Cloud Computing and 3D printing appear to be current trends that dominate the IT industry. While the popularity of “information technology” has declined, we see a rise in many specific technologies. As reflected in the graph above, as the diversity of technology continues, people are moving from the general search term to more specific ones. For example, living in this connected world, we can see a growth in “internet of things” which is likely to continue. Cisco predicts there will be 25 billion connected devices, which will double to 50 billion by 2020 (Information Age).
With these new trends in technology, companies are required to adopt new ways of development, essentially requiring new methods for testing. Therefore, we can presume that testing trends consistently follow those of development.

Using Google trends can inform us of numerous details about the various up/down trends that are occurring, as well as the predicted forecast for the near future. Google trends delivers both timely and accurate information which can educate us in regards to the current testing space. For this particular article we have focused on the rise of Agile Software Development and DevOps which has led to the demand for Test Automation and the attractiveness of open source vs paid test tools.

Agile Software Development

Test teams are having to keep up with the pace of current development trends. With that said, we see more and more enterprises breaking away from traditional approaches to development as they need to remain competitive. With high pressure to reduce the time-to-market, where projects are being driven by fast paced and responsive testing solutions, organisations are moving towards being integrated in agile development methods.


trends2

The above Google Trends graph identifies that the term “agile software development” is trending upward in search popularity with some small dips over the years. The worldwide interest over time increased by 28.95% in August 2015 compared with August 2010. Agile will continue its progressive journey and will receive increased worldwide interest, leading us to assume that more organisations will continue to apply agile to their test process.

Additionally, with the ability to develop faster and the more recent emergence of cloud computing, we are seeing a cultural shift towards DevOps. With benefits including continuous delivery, cloud providers and technology companies are adopting DevOps culture into their organisations. Google Trends reveals that the term “DevOps” has been growing since 2011, seeing its greatest growth in the past two years. DevOps average search popularity has increased by 50% in 2015 from 2014. According to Gartner, in 2016 about 25% of 2000 global IT companies will adopt DevOps.

In this Agile and DevOps driven environment with the demand for shorter timeframes, there is a greater emphasis on test teams to embrace test automation wherever possible to reduce times, costs and improve efficiency. The role of test automation is considered fundamentally important to the continuous integration and continuous delivery of a project and is more important than ever before. As a result, the trend for test automation has also increased over the years as automation is a critical component to maintaining agility.

According to the World Quality Report 2015-2016 the average percentage of test case automation has increased from 28% to 45% in the last year. Furthermore, as suggested in InfoQ, we can agree that the complexity of testing will increase with IoT, having a vast impact on the testing community and with this there is likely to be a strong push to more automation.

Open Source vs Paid Tools

Suppliers are now offering more tools and services and the availability of a variety of tools is driving the increased adoption of automation across the development cycle. For automation to be successful, selecting the right tool is important. You must critically assess your own need and choose a tool accordingly, whether choosing to adopt a commercial or open source tool.

There appears to have been significant adoption of open source tools over the years compared with commercial tool investment. Open source tools enable early code driven tests and continuous integration mechanisms, which are key to the success of agile projects. In addition, 45% of organisations cite a lack of supplier dependency as a reason for choosing open-source software (InformationAge 2015). Gartner has identified that the most widely used open source tools include Geb, Selenium, SoapUI, Sahi, Watir, Bugzilla and JMeter.

trends3

*Selenium and QTP/UFT interest over 5 years
Vendor tools like HP’s test tool suite (QTP/UFT) have been on a downhill path and we are not sure that vendor-based tools will necessarily make a comeback anytime soon. There is no doubt that Selenium is the winner here, as it has advanced and is rapidly growing as one of the most widely used test automation tools, having almost doubled in search popularity in 2010 compared with 2015.

trends4

Open source tool SoapUI has risen in search popularity and interestingly, more recently has become even more popular than Smartbear’s TestComplete. TestComplete has received the least number of searches in comparison to the other tools and its forecast has little/no data to show its estimated popularity for 2016. However, more test tool vendors are beginning to embrace open-source tools like Selenium e.g. Smartbear’s TestComplete can now run a Selenium test (Smartbear 2015). So here we can see that open source tools are continuing to make progress as they are practical alternatives to these commercial applications.

Considering the above statistics and projections, we can validate that as technological innovations continue to grow and with the emergence of new trends in the technology space, the trends in testing continue to be influenced.

Over the last decade the software industry has evolved considerably. We can see how the demand for faster time to market has seen the rise in popularity of agile development and the cultural shift towards DevOps, which in turn has stressed emphasis on businesses to embrace automation to reduce costs and improve efficiency. As test automation is continually adopted, we can realise first-hand the shift from commercial test tools as the search for cost effective solutions has encouraged enterprises to seek open source solutions and to date they have become an integral part of testing. Going forward we can continue to use google trends to inform us of how various software testing trends have altered over the years as well as helping us to predict the future of testing.

Source: http://www.qualitestgroup.com/blog/testing-as-a-lifestyle/tech-trends-that-have-changed-the-way-we-test-software/

Thursday, October 29, 2015

Recent Post