Monday, 23 April 2018

What Are The Ways To A Successful ERP Testing?

The challenges of rising competition and changing technology are forcing companies to optimize their resources. By doing so, they are aiming to improve productivity, reduce operational cost, increase profitability and achieve customer satisfaction. The implementation of an Enterprise Resource Planning (ERP) solution helps in meeting the above mentioned objectives.

What is an ERP?
A business enterprise has many departments, functions and processes where more often than not they work in silos or worse, at cross purposes to each other. This leads to redundancies, loss of efficiency, productivity and waste of precious resources. In an increasingly competitive world with demanding customers, this can mean a deficiency in service and reduced profitability. This calls for the implementation of an ERP solution.

ERP is a suite of integrated software applications that helps to get real time information from various departments, functions and processes of the business. This information can be analysed to help optimize the functions and resources of the business. The software helps the stakeholders to take suitable timebound decisions to achieve business objectives.

The ERP software helps in collecting, storing, managing and interpreting data by using a common database management system. The ERP software takes into account all the hierarchical structures and workflows of each business unit or function and provides a common platform or interface. To prevent the implementation of an ERP solution from failing, suitable ERP QA should be carried out. The ERP testing methodology should ensure the various domain specific functionalities of the ERP software work seamlessly.

Types of ERP testing
Installation testing: A faulty installation of the software can lead to its failure. It can happen when the functions or their sub routines do not work in synchrony or there are some missing files. An ERP testing can identify the glitches and help in the proper installation of the software.

Functional testing: The ERP testing services test and validate the software suite’s ability to meet the operational objectives.

Load testing: Here, the ERP testing services find out if the software is capable of processing data beyond the prescribed limit. This is an important information to know from the perspective of scaling up the functioning of the software, if needed.

Security testing: The growing cyber security threat from viruses, malware, ransomware, trojans etc means organisations have to safeguard their IT resources. Thus, security testing of an ERP software becomes important by validating aspects like user authentication, passwords etc.

Checklist for ERP testing
The testing team should prepare a comprehensive checklist to identify the test areas. Each of the above mentioned tests should have well documented guidelines.
  • Assess the requirements: Assess the project requirements, identify the objectives and delineate the modules to be tested. Find out the various touch points of the business with an aim to enhance the test coverage area and to improve the test quality.
  • Set the test goal: The type, scope and objective of the test are to be identified. This also leads to the identification of resources and the team structure to implement the specific test. Find out the departments, functions and processes to be integrated with the ERP software in order to test them.
  • Identify the test cases/areas: Identify the test cases and areas that are to be managed manually or through test automation. The test cases should validate all the processes that fall within the test coverage area.
  • Set up the test tools effectively: State the quality metrics based on which the testing has to be validated. Ensure that the systems to be used for testing are working to their optimum capacity. This precludes any performance issues during the testing phase.
  • Simple testing: Begin the testing phase with a simple test, namely, creating a customer account or processing a customer payment. Record each and every step of the test process for training and for conducting the retest. The ERP testing methodology should adopt the best practices to optimize productivity and improve efficiency.
  • Complex testing: Conduct a slew of tests as a part of the overall ERP testing exercise such as usability, performance, integration and security.
  • Create a recording mechanism: Prepare a reporting mechanism to collect the test reports for further analysis. As the test generates various reports related to its success or failure, they should be properly documented to identify the vulnerabilities (areas of failure) and process defects.
Conclusion
Maintaining a checklist helps to seamlessly execute a suitable ERP testing methodology. The validation of an ERP software helps in its proper implementation. This helps organizations to streamline operations and optimize resources for better functioning and performance. Efficiency and cost-effectiveness can be assured when teams maintain a checklist.

Michael works for Cigniti Technologies, Global leaders in Software Testing services, appraised at CMMI-SVC v1.3, Maturity Level 5, and an ISO 9001:2008 & ISO 27001:2013 certified organization.

Tuesday, 17 April 2018

How Can Software Product Testing Mitigate The Cybersecurity Threats?

 

The growing competition, especially in the digital world, has meant that businesses are looking at strategies to not only beat the competition blues, but also secure their ROI as well. The evolving business strategies are forcing companies to adopt new technologies and generate quality software applications to bring about business transformation. This is especially done in the domains of social media, mobility, cloud computing, big data analytics and the Internet of Things (IoT).
However, parallel to the growth in the number of innovative software products and the volume of data, there is a growing cybersecurity threat as well. The bad news is that the threat is ever growing and is causing severe disruptions and financial losses to individuals, businesses, institutions and governments. Hence, to meet the growing challenge, businesses need to invest more in carrying out software product testing.

What is a cybersecurity threat?
As the world gets increasingly interconnected through the internet, there are individuals, groups, organizations and even governments trying to exploit the vulnerabilities of the systems, networks and applications. The cyber criminals are literally prowling the internet to target vulnerable systems. They do so to carry out espionage, money laundering, fund terror and narcotics trade, get monetary gains or seek revenge. These threats come in the form of viruses, ransomware, botnets, malware, and trojans that can wreak havoc on the systems, networks and applications.

Impact of cybersecurity threats
Financial loss: The cyber criminals are known for maliciously draining funds from the bank accounts of individuals, groups, and organizations. These funds run into billions of dollars. According to a study, the economic cost of cybercrime has risen to 0.8% of the global GDP or $600 billion a year (Source: http://www.computerweekly.com/news/252435439/Economic-impact-of-cyber-crime-is-significant-and-rising). Moreover, given the scale of under reporting of cybercrimes, the above figure is quite conservative. A major segment of the financial losses is attributed to the theft of intellectual property and confidential business information. Besides, financial loss can take place from denial or disruption of services as well. For example, the recent cases of ransomware attacks had caused severe disruption of services leading to a huge financial cost for the individuals and entities.

Loss of brand equity: Inadequate cyber security can result in criminals taking away confidential personal and business information held by entities such as banks, ecommerce firms, even individual accounts, and so on. When the customers of such entities end up facing financial losses, their implicit trust gets irretrievably broken. This leads to the loss of brand equity, a loss more severe than financial loss.

Costly legal suits: An inevitable consequence of personal data or money being siphoned off from companies is the filing of legal suits. Resultantly, the company targeted by cyber criminals can end up paying substantial sums of money as compensation. This can even lead to financial losses.

Falling foul of regulatory bodies: If companies are lax in implementing mandatory security protocols (exploited to the hilt by cyber criminals), they can face severe strictures and penalties.

Growing awareness about cybersecurity threats
Even though a lot of ground needs to be covered by the companies to secure themselves against cybersecurity threats, there is a growing awareness as well. According to a Gartner forecast, enterprises are likely to spend around $96.3 on cyber security in 2018 (Source: https://www.gartner.com/newsroom/id/3836563)

Improving product security
The growing threat of cybersecurity and its dire implications signifies that it is no longer about merely reacting to the security breaches. The crying need is to strengthen the security defences of networks, systems, web and mobile applications. This intensifies the need for comprehensive software product testing services to validate software products. In addition to executing software application testing, there is a greater need to educate the users about such products.
No matter how strong the security architecture is, it can be easily broken into by the cyber criminals. This can be done by manipulating the users through social engineering, wherein individuals inadvertently end up giving their login/password details.

As businesses have become more aware of securing their assets — systems and networks, cyber criminals have started to target the applications. According to a Gartner report, around 80% of cyber attacks are at the application level. Hence, securing access to enterprise applications become the business imperative.

Areas of focus for software product testing
  • To identify and eliminate the vulnerabilities in the product (application) that can provide access to an unauthorised person/device
  • Incorporate or strengthen the security features such as encryption of data and authentication. Establish security protocols that involve the conduct of periodic or sudden audits
  • Keep the security firewalls updated to monitor any new cyber-attack attempts
Software product testing methods
Product access: By incorporating ‘roles and rights management’, the access to a software product can be tested through authentication and authorization. Some of the software product testing methods to form a part of this segment are password test, default login, test for logout, password change, recovery, security question and Captcha.
Protection of data: Again, going by the ‘roles and rights management’ the type of data to be accessed by a person should be established. For example, the person at the enquiry should not be able to view the encrypted passwords or sensitive product data.
Static application security testing (SAST) or white box testing: Through automation, a SAST model identifies the vulnerabilities an application can possess while dealing with users or data. The vulnerabilities could be in the form of SQL injection and Cross site scripting (XSS).

Conclusion
Cybersecurity threats can exploit the vulnerabilities of software products leading to severe consequences. These have increased the need for software product testing services. The services are not only to secure the product, but also help it comply with regulations such as PCI, SOX, HIPAA, MITRE and GDPR.


Thursday, 5 April 2018

How can Independent Testing services add value for Digital Transformation?


Digital Transformation implies leveraging digital technologies for application development with complete focus on achieving customer satisfaction. The term ‘quality’ is of significance here, for it brings about efficiency and a faster turnaround time. Additionally, there are benefits such as increase in productivity and reduction in the operating cost, and the objectives of digital transformation seem to attain a full circle.

 The development of software especially in an Agile and DevOps environment requires simultaneous testing of codes. The more stringent the testing process is, better is the quality of the software. A quality software without bugs or glitches means bringing about digital transformation both in letter and spirit. The role of an independent testing services company is of great significance, especially for Digital Transformation.

 What is independent testing and why is it needed?
 

 Quality assurance or testing of software can either be done in-house or by an independent testing services company. Independent testers do not belong to the company or the team developing the software nor are they related to the consumers. Thus, they are neutral in assessing the quality of a software. They can take a holistic view of testing and are not influenced by the ‘skills’ or ‘expertise’ of the developers.

 The latter factor often plays a role in an in-house QA set up where developers and testers often exchange their roles. In other words, developers often end up testing the product they have created. This approach is inherently flawed as the development cum testing team will be prejudiced towards the product. Hence, the necessity of engaging an independent testing services company arises.

 Why can ad-hoc or in-house testers prove to be counterproductive?

 In response to the competition, businesses are under pressure to come up with new software applications but at cost effective rates. Also, the need to carry out digital transformation in an organisation necessitates the development and deployment of quality software. To meet such demands, the ad-hoc hiring of testers can be undertaken but with mixed results. The reason being, ad-hoc testers are employed for a specific period and on a fixed budget.
However, the software to be tested can receive client feedback based on the changing market dynamics from time to time. This would mean the software can undergo many changes in its code to meet the organization’s mandate. The ad-hoc testing services company or individuals may not stick to such a state of flux, as it would be beyond its/their contract. This would result in the delivery of a poor quality software application with bugs, which ultimately harms the business.

 Maintaining a team of in-house QA testers can be costly and its testing approach can often favour the developers. Also, should the developers belong to the upper echelons of an organisation, it often becomes difficult for the testers to point out the glitches. The end result of this hierarchical power play in an organization can manifest itself in the form of a software with bugs.

 Benefits of using an independent testing mechanism
 

 Existing challenges of a competitive digital landscape have brought about the need for engaging independent QA testers. The benefits of doing so can be manifold.

 Better quality of software: The primary objective of engaging a testing services company is to find out if the software is fit to be released into the market or to be deployed for immediate use. Independent QA testers belonging to the software testing services company are expected to be unbiased in checking for hidden glitches in the software. They can look at the software from a customer’s perspective.
The testers can ensure that the software meets QA parameters like usability, navigability and functionality. Also, the independent software QA testing company will see to it that the software complies with all regulations. The end result will be the delivery of better quality software that meets the criteria for digital transformation.


Read more at Medium.com : Why Are Independent Testing Services Important for Digital Transformation?

Monday, 2 April 2018

How can you successfully implement Selenium Automation Testing?


Developing and executing test automation scripts have become an important part of the total quality assurance process. An automated test script does the job of manual testing, but with the built-in advantages of speed, coverage of a large test area, and repetition. Considering the benefits of test automation, writing test scripts that suit each and every development environment can be tricky and time consuming.  
This challenge can increase further while integrating the test scripts with some widely used programming languages. As a result, testers have found Selenium to be the perfect platform to undo all the niggling issues related to test automation. In other words, Selenium automation testing has become the new buzzword for the QA team.   
Let us first understand why Selenium is one of the most preferred platforms for Test Automation.  
  • It is an open source and free to use platform that is backed by a team of active developers.
  • It is highly portable. In other words, test scripts can be written for any platform (OS & browser).
  • There is no specific test script to be used for Selenium automation framework. For example, a tester can write the test script by using any of the programming languages such as Java, C#, Ruby, Perl, PHP, etc.
  • Selenium automation testing entails an easy integration of various processes, functions and their functionalities in a web application. This fulfils the criteria of CI in an Agile testing environment, where development and code testing takes place simultaneously.
  • It is highly resilient, flexible, and provides an excellent test automation platform for Web Application testing that is very much scalable.

Given the immense benefits of using a Selenium automation framework, the process of implementing the same is listed below.  

#Know the web application 
While writing the test scripts for Selenium automation testing, the test team should focus on the browsers that are likely to be used to access and run the web application. The test strategy should be formulated to check if the browsers are compatible with the web application.  

#Get in sync with the tool 
Among the many reasons justifying the use of a Selenium automation framework, quicker testing of web application arguably stays at the top. Hence, the team of testers should be updated with the entire range of Selenium features. The aim should be to minimize the learning curve and instead speed up the testing process.  

#Create the test environment 
The following ways can be utilized to create a test environment. 
  • Choose a browser like Chrome or Firefox
  • Choose a programming language and IDE to write the test script
  • Choose a GUI testing tool like Selenium WebDriver
  • Create the test scripts to check end to end flow of the application
 #Divide testing tasks based on expertise 
Writing test scripts for Selenium automation testing can be a complex exercise. In other words, given that each member of the testing team has a different level of expertise, it should be made use of while carrying out Selenium test automation. This can be done by assigning the task of writing the test script to someone who is adept at it. And follow it up by assigning the task of performing the actual test to another expert.   

#Identify good test data 
To get the best test outcomes in carrying out Selenium test automation, selecting the right set of test data is crucial. The test data should be able to check each and every functionality and process of a web application. The task before the QA team is to retrieve the right test data and validate the same by running the test scripts.  

#Get reports 
Selenium automation testing can generate a host of reports highlighting issues in the web application. These reports can be made use of by the testing team to figure out the next step of action and to ensure a quicker test outcome.  

Conclusion 
Selenium automation testing can be used effectively by the QA team to achieve higher test coverage, meet the CI requirement as far as Agile is concerned, faster turnaround time, and ease of running it against any browser. These can be some key highlights of using Selenium. Ultimately, it is important to shorten the testing cycle, but by ensuring quality of the software/application. 

Michael works for Cigniti Technologies, which is one of the top Independent Software Testing Services company in the world to be appraised at CMMI-SVC Level 5, and an ISO 9001:2008 & ISO 27001:2013 certified organization.