Category: continuous-integration-deployment-development

Quick Guide: Angular 10 vs Older Versions
Nov 02, 2020 6 min read

On 24th June 2020, Angular 10 was launched but this time, with the beta version. It’s a big release; nevertheless, this most recent angular version will highly focus on the quality tools and ecosystem instead of launching new features.   In case you are a web app developer, who uses Angular for every project, you should be seeking the basic features and value additions of the latest Angular version 10. Let’s take a look at the key features and value offerings of Angular 10! TypeScript v3.9 Support - TypeScript 3.9 has performance improvements, which means faster Angular builds, especially in larger projects. Second, all the latest TypeScript fixes and features are available to Angular developers. Last, but not least, Angular developers will be using a more elaborate TypeScript configuration. Angular Language Service - Angular Language Service is an analysis engine that integrates into your code editor and provides it with a way to get completions, tracing of references, errors, hints, and navigation inside Angular templates.  It’s available as an extension for Visual Studio Code, WebStorm, and Sublime Text. You can install it by using the following command: npm install --save-dev @angular/language-service A compiler interface has been added that wraps the actual ngtsc compiler. The language-service-specific compiler manages multiple typecheck files using the project interface, creating ScriptInfos as necessary. Remove HTML entities’ autocompletion. Autocompletion is being removed from HTML entities, such as &, <, etc., because it’s outside the core functionality of Angular LS, and it has questionable value and a performance cost.   Compiler - Angular offers 2 ways to compile your application: Just-in-Time (JIT) - It compiles your app in the browser at runtime. This was the default until “Angular 8”. Ahead-of-Time (AOT) - It compiles your app and libraries at build time. This was the default until “Angular 9”. Ivy is a Compiler that is complete rewrite of the compiler (and runtime) in order to: Reach better build times (With a more incremental compilation). Reach better build sizes (With a generated code more compatible with tree shaking). Unlock new potential features(metaprogramming or higher-order components, lazy loading of the component instead of modules, a new change detection system not based on Zone.js).   The 2 new Compiler Entry Points - Angular has introduced 2 new Compiler Entry Points: ngtsc and ngcc. Ngtsc - It compiles Ivy-compatible code. It’s a TypeScript-to-JavaScript transpiler that looks for Angular decorators like  @Component and substitutes them with their specific Angular runtime instructions/counterparts, like eedefineComponent. It’s a minimal wrapper around tsc. The ngc operates as ngtsc when the angularCompilerOption enableIvy flag is set to true. Compilation Flow - When ngtsc starts running, it first parses the tsconfig.json and then creates a ts.Program. Several things need to happen before the transforms described above can run and that is: Metadata must be collected for input source files which contain decorators. Resource files listed in @Component decorators must be resolved asynchronously. The CLI, For example, may wish to run Webpack to produce .css input to the styleUrls property of a @Component. Diagnostics must be run. Which creates the TypeChecker and touches every node in the program. Ngcc - It stands for Angular Compatibility Compiler. It converts pre-Ivy modules (old style) to Ivy-compatible code. It processes code coming from npm and produces the equivalent Ivy version as if the code was compiled with ngtsc. Ngcc can also be run as part of a code loader like webpack to have packages from node_modules transpiled on the fly.   More-strict Project Setup - Optional stricter settings offer a more-strict project setup when creating a new workspace with ng new, via ng new -- strict. Enabling this flag initializes a new project with new settings to improve maintainability, help catch bugs, and allow the CLI to do advanced optimizations on an app.   Router - For the router, the CanLoad guard now can return Urltree. A CanLoad guard returning Urltree cancels the current navigation and redirects. This matches current behavior available to CanActivate guards that also has been added. This doesn’t affect preloading. A CanLoad guard blocks any preloading; any routes with a CanLoad guard won’t be preloaded, and the guards won’t be executed as part of preloading.   Angular Material - Angular Material now includes a new date range picker. To use the new date range picker, you can use the mat-date-range-input and mat-date-range-picker components.   TSlib - The runtime library for TypeScript containing helper functions, has been updated to V2.0.   TSLint - The TSLint static analysis tool for TypeScript has been updated to v6.   Angular Package Format -  Angular Package Format no longer includes ESM5 or FESM5 bundles, saving download and install time when running yarn or npm install for Angular packages and libraries.    Browser Support - The browser configuration for new projects has been updated to exclude older, less-used browsers. Support is deprecated for Internet Explorer 9, Internet Explorer 10, and Internet Explorer Mobile.    Core - Warnings about unknown elements are now logged as errors. This won’t break your app, but it may trip up tools that expect nothing to be logged via console.error. Generic has been made mandatory for ModuleWithProviders.A generic type parameter has been required for the ModuleWithProviders pattern to work with the Ivy compilation and rendering pipeline, but before this commit, View Engine allowed the generic type to be omitted.If a developer is using ModuleWithProviders without a generic type in your application code, a version 10 migration will update the code for you.   Async Locking Timeout - Async Locking Timeout’s configuration is still probable, which may include assistance in the ngcc.config.js file,  adjusting the retry delays and retry attempts in the AsyncLocker.  An examination has been combined for monitoring for the timeout, using the ngcc.config.js file to lower the timeout and prevent the more maximized application of the test.        14. Bug Fixes: Router: UrlMatcher is now allowed to return null. Core: undecorated-classes-with-decorated-fields migration doesn’t decorate derived classes. Service Workers: Prevent Service Worker strategies from affecting App stabilization. A number of bug fixes have been made, including the compiler avoiding undefined expressions in a holey array and the core avoiding a migration error when a nonexistent symbol is imported. Another bug fix properly identifies modules affected by overrides in TestBed. minLength and maxLength validators will validate only if the value has a numeric length property. Reactive forms had a bug which caused valueChanges for controls bound to input fields with number type will fire twice.The listed event is changed from “change” to “input” to fix this.

Micro-Environmental Factors Importance
Oct 26, 2020 5 min read

In the previous blog, we saw how Macro-Environmental Factors affect the business and why it is important for your business. Today we’re going to see that along with  Macro-Environmental Factors, Micro-Environmental Factors are also important for your business.   What are Micro-Environmental Factors? Micro-Environmental means the environment that has a direct effect on your business. It is connected to the specific region where your company operates and can influence any of your business processes directly. In other words, it consists of all the considerations that concern the company in particular. They have the capacity to influence the company's regular proceedings and general results. However, the influence that they have is not a long-lasting one.   Now, let's dig deeper and understand what are those factors that make up the Micro Environment: Customers - Customers play a key role for a business as they help to attract and retain the majority of customers to generate sales; regardless of what industry you are in or what products or services your business offers. Organizations must also follow a marketing strategy that attracts new customers and retain current customers by taking into account consumer needs and preferences and by offering after-sales and value-added services. Nowadays, for a business to be successful, it must find customers for your products/services. Thus, customers become the most important factor in the Micro-Environment of business.    This is the reason why nowadays business companies are giving more importance to “Customer Satisfaction Reviews”. Now, every business firm is setting up systems to track Customer Attitude and Customer Satisfaction on a regular basis as now it is widely agreed that Customer Satisfaction is the basis for any Business’ success.    Competitors - Competitors can directly influence your business strategies. Thus,  business companies must consider how to do a strategic analysis of competitors and have a competitive advantage. A company must consider what value-added services does the competitor offers or try to know the competitor’s USP. What advantages your business can offer to customers that your competitors do not offer.  A business company must realize that the lack of knowledge of competitors will make it difficult to beat them and lead the market. A business company must consider how competitors respond when there is a shift in the business climate, such as Political and Legal changes, Technological changes, changes in Customer Behaviours that can affect their company. They should also evaluate how their competitors react to market changes and what methods they use to better prepare for these changes. By doing so, your business company can gain an edge over them.    Suppliers - Suppliers are an integral part of the Micro Environment. They control the price structure of the industry through their own bargaining power. They constitute a significant force in the industry that shapes competition. Depending on this Supplier Environment, companies must also make a big Marketing Environment Decision on "Outsourcing" or "In-house Production".  As Suppliers provide the production materials, their activities can also affect the business strategy. For example, if their services are not fair and timely, it can impact the time of production and sales because of the delayed production process.  Therefore it becomes very important for business companies to keep a strong relation with Suppliers as they can help your business in getting an edge over Competitors.   Marketing Intermediaries - Market Intermediaries are either individuals or business houses that support the business companies to advertise, sell, and deliver the items to the final customers. They are Middlemen (wholesalers, retailers, and agents), distribution companies, consumer service companies, and financial institutions. Sometimes, it becomes too difficult for business companies to meet customers. In such situations, agents and distribution companies help to reach out to the customer with the commodity. Any form of Intermediary that the business takes into account must take the following aspects into consideration: The business companies can regularly review the output of all intermediaries as well as those who occasionally assist their efforts. If necessary, business companies can also replace those who are no longer performing at the expected level. Instead of creating one and thus going for experiments, working through the existing Marketing Channels is advantageous and also effective. In order to reach the products/services to the customer, the Supplier has to determine the most cost-effective method of Intermediaries that will help increase the profit.   Public - The term 'Public' simply applies to individuals in general.  Of course, it is in the best interest of each business company to appease(satisfy) the general public. Each move you take also needs to be seen from their viewpoint. How your acts influence others is incredibly important because their opinion can be the one thing that either drives you towards success or takes you down from the pedestal. The manner in which Public acts can make or break an organization. The company should be able to maintain a good relationship with the  Public since whatever it shows would directly impact the business of the organization. If the Public shows a positive response, this would improve the organization's business and vice versa. Some companies maintain a PR Team (Public Relations Team) that oversees activities and handles publicity on behalf of the corporation in order to maintain good relations with the Public.  Companies must bring their primary resources into the successful management of their consumer, dealer, and supplier relationships. Their overall performance would be influenced by how other people in the Society view their actions.  In this new Business World, the Public has acquired an important role and their involvement in the Micro Business Environment.   Conclusion:  Both Macro and Micro Environmental Factors have a powerful impact on how effective the company is. Any decision you make needs to take these two environments into account. If you really want them to be lucrative and hold a respectable marketplace, your marketing strategy must also be focused on them.   RELATED BLOGS: Why PESTLE Analysis is important for your Business?

PESTLE Analysis for Business Growth | MagnusMinds Blog
Oct 16, 2020 5 min read

Marketing is an important aspect for an Organization's products and services. The right Marketing Strategy allows Organizations to achieve their respective goals and also helps to have an upper-hand in this Competitive Market. Enterprises worldwide conduct various short-term and long-term analysis to assess their business environment. One such analysis is PESTLE Analysis.   What is PESTLE Analysis (Macro-Environmental Factors)? It is a framework/tool used to examine and monitor the “Macro-Environmental Factors” that may have an extreme impact on an Organization’s performance. This tool is very useful when starting a new business or expanding your business Globally.   Now, let’s dive deeper and understand which are those factors that makes the PESTLE Analysis:   Political Factor - All the influences that a Government has on your business could be classified here. This can include Government Policy, Political Stability or Instability, Corruption, Foreign Trade Policy, Tax Policy, Labor Law, Environmental Law and Trade Restrictions, etc… Political factors have an effect on Organization to a huge extent as any decisions made by Government regarding Laws and Policies will have an direct impact on the business. Political and Government intervention (interference) is not feasible for the business and can hurt the business setup in the long run. Similarly, Trade Regulations imposed by the State Government might impact an Organization’s cost of labor and their ability to target an Overseas Market.  Example - Let’s say, currently “Govt. A” is in the ruling power and Govt. A has made the decision for “Globalization”. So naturally, Overseas Companies will be eager to invest. Now due to Globalization, they will invest as much as they can to expand their business and will leave no stone unturned to make their Company's Name a trusted one. Now, to sell their products, they will open Factories and Stores in various states. But now what if in the next Elections “Govt. A” lose the elections and new “Govt. B” becomes the ruling power and denies Globalization? Just imagine to what extent that Overseas Companies who invested so much in the country have to suffer? So, Political Factor is The Most Important Factor for your Business. PERIOD.   Economical Factor - Marketing is directly proportional with the Economic Factors. Organizations won’t be able to launch or promote their product and service appropriately if the Economy isn't steady and progressing. Economic Factors have a direct or indirect long term impact on an Organization, since it affects the purchasing power of consumers and can possibly change the demand/supply models within the Economy. However,  it also affects the way Companies price their products and services. Economical Factors includes GDP, Economic Growth, Exchange Rates, Inflation Rates, Interest Rates, Disposable Income of Consumers and Unemployment Rates.    Social Factor - Social Factor includes Demographic, Customs, Norms, Culture and Population within which the Organization operates.  This also includes Population Trends such as the Population Growth Rate, Age Distribution, Income Distribution, Career Choices, Safety Importance, Health Consciousness, Lifestyle Trends and Cultural Barriers. These factors are especially important for marketers when targeting niche customers. Example - Social Factor is the reason why Youth-Centric Start-ups, Companies, Products and Services are doing very well in many countries, especially INDIA.   Technology - It refers to the Innovations in Technology that may affect the operations of an Organization, favorably or unfavorably. In today’s era, the impact of Technology is enormous and multifaceted. Marketing Strategies must focus on the constant changing Technology as Technology strengthens the business structure.  Technology includes Technology Incentives, Level of Innovation, Automation, Research and Development (R&D) Activity, Technological Change and the amount of Technological Awareness that a market possesses. These factors influence the decisions whether to enter into certain industries or not, whether to launch certain products or to outsource production activities abroad or not. By knowing what is going on in the current technology-market, you may be able to prevent your company from spending a lot of money on developing a technology that would become outdated very soon.   Legal Factor - When it comes to the Legal Factor, Organizations need to be crystal clear about what is legal and what is not in order to trade successfully and ethically.  This situation (Legal Factor) becomes even more tricky when an Organization is trading globally because every country has its own Rules and Regulations. However, you also need to be aware of the possible changes in legalization rules by the Government which may affect your business in the future. In such situations, having a “Legal Advisor” could prove very beneficial.   Environmental Factor - Organizations cannot survive if the Environment is not suitable or favorable. However, Environmental Factors are not in control of the Organizations but Organizations need to be clear about whether the products/services they offer are suitable to the respective Environment or not, before setting up the business . Location impacts the Organization’s marketing plans since changes in climate and consumers’ desire for a particular offering can be an issue. Weather, Climate, Environmental Policies, Natural Disasters, Air and Water Pollution, Recycling Standards, Support for Renewable Energy all these affect the long-term planning of an Organization.   Conclusion - PESTLE Analysis provides a vast study of the external and internal factors that pose a challenge to the Organization’s Marketing Strategy. To successfully achieve marketing goals, Organizations must use PESTLE Analysis to assess the market conditions so that they can plan and strategize accordingly.   RELATED BLOGS: Why Micro-Environmental Factors are Important for your Business?

Quick Guide: Exploring Mobile App Testing
Oct 07, 2020 3 min read

There are so many mobile applications launch in the market every day but there are few successors, Mobile app testing is a process that finds bugs, issue and glitches into mobile application. In such high competency ratio, you have to be sure that apart from offering something innovative and interesting to your customers your application should also be free from any glitches. And hence, mobile app testing is becoming very important. Your application must also be free from flaws. And therefore mobile app testing is becoming very important.   What is Mobile Application Testing..? Mobile Application testing is a process by which application software developed for portable mobile devices is tested for functionality, usability, and consistency. Mobile Application Testing can be either automated or manual.   Why Mobile Application Testing is necessary? Turning on/off GPS Different devices Use different OS Use different Screen resolution Testing in different Screen orientation (landscape, portrait), Others…   Types of Mobile Application Mobile web Application Hybrid Application Native Application   Mobile Web Applications: Mobile web applications refer to applications for mobile devices that only require the installation of a web browser on the device. Simple mobile web applications limit the use of RIA technologies and are designed to present information in a readable and action-oriented format.   Native Application: A Native Application is a software program that is developed for use on a particular platform or device like Windows 10, Android app, IOS app, Blackberry.   Hybrid Application: A (hybrid application) is a software application that combines elements of native applications and web applications. Hybrid applications are essential web applications that have been placed in a native application shell.   5 Major Types of Mobile application Testing: Usability Testing: It checks how friendly the app is in terms of use and intuitiveness. Mobile apps need to be tested early and very often. User experience requirements include clarity of navigation, intuitive interface, the appearance of application design, error messages, and handling.   Function Testing: This type of test results if the application is working correctly or not. It focuses on the main purpose and flow of the application, ensuring that all of its functions are responsive and within specification. Performance Testing: Performance testing is a key element in the mobile app testing process. You will be able to track and predict performance changes for spikes in connection quality (3G, 4G, LTE), change in a user's location, increased traffic, etc… When it comes to mobile applications, you should also test the product on different devices to see if performance is affected by the change in screen dimensions.   Installation Testing: The Application Installation Test tests the successful installation of your mobile application on various mobile devices, models, and operating systems.   Mobile Device Testing: Mobile Device Testing function ensures the quality of mobile devices, such as mobile phones, PDAs, etc. The tests will be carried out on both hardware and software.   Conclusion: Mobile Application Testing has become a critical part of mobile app development. Most of the problems faced by an app could be solved by a successful mobile app test. This also increases time to market and ensures the success of the application. There are so many mobile applications launch in the market every day but there are few successors. Mobile Application Testing is a process that finds bugs, issue, and glitches into mobile application.   RELATED BLOGS: Why Software Testing is Important in software development life cycle?

Learn SSIS: Key Concepts Explained
Sep 14, 2020 7 min read

What is SSIS ? SSIS is a platform for data integration and workflow applications. It features a data warehousing tool used for data extraction, transformation, and loading (ETL). The tool may also be used to automate maintenance of SQL Server databases and updates to multidimensional cube data. SQL Server Integration Service (SSIS) is a component of the Microsoft SQL Server database software that can be used to execute a wide range of data migration tasks. SSIS is a fast & flexible data warehousing tool used for data extraction, loading and transformation like cleaning, aggregating, merging data, etc. It makes it easy to move data from one database to another database. SSIS can extract data from a wide variety of sources like SQL Server databases, Excel files, Oracle and DB2 databases, etc. SSIS also includes graphical tools & wizards for performing workflow functions like sending email messages, FTP operations, data sources, and destinations. Features of SSIS: Organized and lookup transformations Tight integration with other Microsoft SQL family Provides rich Studio Environments Provides a lot of data integration functions for better transformations High-speed data connectivity   Why SSIS? Extract, Transform, and Load (ETL) data from SQL Server to a file and also from file to SQL. Sending an email. Download the File from FTP. Rename ,Delete , Move File From Defined Path. It allows you to join tables from different databases (SQL, Oracle, etc...) and from potentially different servers.   How SSIS Works? SSIS consists of three major components, mainly: Operational Data: A database created to combine data from several sources for further actions on the data is known as an operational data store (ODS). This is the place where most of the data used in the current operation is housed before it’s transferred to the data warehouse for longer-term storage or archiving. ETL process: ETL is a process to Extract, Transform and Load the data. The process of gathering data from multiple sources, modifying it to fit your needs, and then loading it into a target data warehouse is known as extract, transform, and load, or ETL. ETL offers a ONE STOP Solution that can solve all of these issues. Extract: Extraction is the process of extracting the data from various homogeneous or heterogeneous data sources based on different validation points. Transformation: In transformation, entire data is analyzed and various functions are applied on it in order to load the data to the target database in a cleaned and general format. Load: Loading is the process of loading the processed data to a target data repository using minimal resources. Data Warehouse Data Warehouse captures the data from diverse sources for useful analysis and access. Data warehousing is a large set of data accumulated which is used for assembling and managing data from various sources for the purpose of answering business questions. Hence, helps in making decisions.   How to install SSDT(Sql Server Data Tools)? Prerequisite and environment Setup for SSIS Project For Starting SSIS we need 2 Studios SQL Server Data Tools (SSDT) for developing the Integration Services packages that a business solution requires. SQL Server Data Tools (SSDT) provides the Integration Services project in which you create packages. Installation Steps: Download SSDT setup from Microsoft website.   URL: https://docs.microsoft.com/en-us/sql/ssdt/previous-releases-of-sql-server-data-tools-ssdt-and-ssdt-bi?view=sql-server-ver15 When you open the .exe file, you will be asked to restart the system before installation. So, restart first and Run Setup. And press Next. It will show the tools required and the features such as SQL Server Database, SSAS(SQL Server Analysis Services), SSRS(SQL Server Reporting Services) and SSIS(SQL Server Integration Services). Make sure you check SSIS and click the “install” button. Refer the below screenshot for the same.   We will see following contents In SSIS: Variables Connection Manager SSIS Toolbox Container Tasks Data Flow Task   Variable: Variables store values that a SSIS package and its containers, tasks, and event handlers can use at runtime.   System variables : Defined by Integration Services SSIS provides a set of system variables that store information about the running package and its objects. These variables can be used in expressions and property expressions to customize packages, containers, tasks, and event handlers.   User-Defined variables : Defined by Package Developers   How to create user - define  variable?   How to set expression for variable   Connection Manager: SSIS provides different types of connection managers that enable packages to connect to a variety of data sources and servers: There are built-in connection managers that Setup installs when you install Integration Services. There are connection managers that are available for download from the Microsoft website. You can create your own custom connection manager if the existing connection managers do not meet your needs.   Let's see how we can add Connection Manager. 1)Solution Explorer > Connection Managers > New Connection Manager . You can see the list of connection managers for different type of connections.   2)Add connection manager.   After adding your connection. you can see the all connection here.   SSIS Toolbox: Steps: Menu bar > SSIS > select SSIS Toolbox. now, you can see SSIS Toolbox on the left side. SSIS Toolbox have list of tasks and containers that you can perform.   List of Containers: For each Loop Container : Runs a control flow repeatedly by using an enumerator. For Loop Container : Runs a control flow repeatedly by testing a condition. Sequence Container : Groups tasks and containers into control flows that are subsets of the package control flow.   List of Task: Data Flow Task The task that runs data flows to extract data, apply column level transformations, and load data.   Data Preparation Tasks These tasks do the following processes: copy files and directories; download files and data; run Web methods; apply operations to XML documents; and profile data for cleansing.   Workflow Tasks The tasks that communicate with other processes to run packages, run programs or batch files, send and receive messages between packages, send e-mail messages, read Windows Management Instrumentation (WMI) data, and watch for WMI events.   SQL Server Tasks The tasks that access, copy, insert, delete, and modify SQL Server objects and data.   Scripting Tasks The tasks that extend package functionality by using scripts.   Analysis Services Tasks The tasks that create, modify, delete, and process Analysis Services objects.   Maintenance Tasks The tasks that perform administrative functions such as backing up and shrinking SQL Server databases, rebuilding and reorganizing indexes, and running SQL Server Agent jobs. You can add task/container by dragging the task/container from SSIS toolbox to design area.   Data Flow Task : Drag the Data Flow task from SSIS Toolbox to design area and double click on it. You are now in Data flow tab. Now you can see that SSIS Toolbox has different components.   Type: Source : from where you want your data. Destination : it is where you want to move your data. Transformation : It is Operation that perform ETL(Extract, Transform, Load)   Conclusion: SQL Server Integration Services offer tasks to insert data into your destination and to alter and validate data during the load process.It's helpful to understand the various SSIS tasks and how to use them instead of using TReplace:SQL to develop a stored procedure to validate or modify data.   RELATED BLOGS: Create SSIS Data Flow Task Package Programmatically 

Test Automation using Robot Framework
Aug 31, 2020 2 min read

In this article, I will explain how we can prepare and manage automation test cases in a better way with Robot Framework. As an example, let’s look at below list of test cases. In the above image, first column is Test Case Number Second column is Page name and Third column is actual test case that we need to automate. So we need to write automation scripts for Payer - Order details page The very first step that we need to take is to prepare page wise resource file in Robot Framework.   For our example, Order.robot In this file, we will define different keywords based on different functionalities of Order page. For example, there will be one keyword defined to open Order menu item i.e. Open Order Menu – Payer We can define one more keyword to search order number with the use of filter. Similarly, we can define other keywords like opening of any order based on search results etc. See the below image:   This way we can define various keywords based on page object model for different pages. Now, for our actual test cases, we simply need to call these keywords as and when required after importing its respective resource files.   As you can see in the above image, we can simply convert manual test steps into automation steps. We can add verification points in our test cases based on test case requirement and group all these test cases under one test suite. We can run the test suit and on successful completion of test run, we will get report similar to below image.   This is the fastest way to implement test automation using Robot Framework. Hope this information will be useful to you if you are starting a new automation project and analyzing how to manage automation scripts in a better way.

Importance of Software Testing in SDLC
Aug 24, 2020 4 min read

Testing is important as it discovers defects/errors before delivery to the customer, ensuring the quality of the software. It makes the software more reliable and easier to use. Thoroughly tested software ensures reliable, high-performance software operation. For example, assume you are using an Online Shopping application to Place any order and Pay the amount of order using any online platform. So, you initiate the transaction, get a successful transaction message, and the amount also deducts from your account. However, your Order is not placed yet. Likewise, your account is also not reflecting the reversed transaction. This will surely make you upset and leave you as an unsatisfied customer.   Software testing contributes to the overall success of the project While requirement review and creating project timeline testers involvement - while review project requirement tester help to identification of some of the requirement defects even before their implementation. this help in Project cost and timeline. While the Design phase tester works with the system designers - it will increase the quality of design. it will help in reducing design flaws and make it user friendly. While Project Developments tester works with developers - Testers are aware of areas that are considered risky by the developer so they can adjust their preferences accordingly. In addition, the developers also get the tester's insights. Helps to recreate errors there and then, without going through a lengthy defect management process. Before the Software release testers verifying and validating the software - This helps detect errors that might otherwise go unnoticed, and supports the process of removing the defects that caused the failures. Running tests at multiple levels increase the likelihood that the software will have fewer bugs and also meet customer needs.   Reasons Why Software Testing is Important 1. Identification of Bugs and Defects Testing phase is one phase that determines the bugs and errors in the application. These bugs can be at the unit level or system level. With so many testing phases, you get to keep away from any kind of bugs that may be affecting your application.   2. Improvement in Product Quality As testing is a phase that helps in knowing the actual outcome and the expected outcome. Surely, it can help you to improve your product quality. With proper testing done, you come out of errors and develop perfect software applications for the users.   3. Technical Importance In any SDLC lifecycle, the testing phase is important for the technical aspect, as it has to come out with the best technically sound application.   4. Improved Quality Properly tested software gives you more confidence in coming up with great software. Secondly, it improves the quality of your software application as continuous and all kinds of testing modes have made a secure and safe application that can be used by the end-users.   5. Verification and validation One of the main aims of the testing phase in SDLC is for verification and validation. Testing is a phase that can serve as metrics as it is used heavily in the V&V method. Based on the result, you could come out with a comparison between qualities amongst different products.   6. Reliability Estimation  This is yet another important factor that is determined by the testing phase. If your software application has gone through all small levels like unit testing and major testing like regression testing and all, then surely it is a reliable application. Hence testing determines the reliability of your software application. Testing may serve as the best statistical method that defines operational testing on application resulting in a reliable software product.   7. Prove Usability and Operability One very important aim of software testing is to prove the software is both usable and operable. Usability testing is where the software is released to a select group of users and their working with the product is observed. All aspects of a user's interaction with the software, like the ease of use and where users are facing problems, are recorded and analyzed   Conclusion: To conclude, the importance of software testing is imperative. Software testing is a crucial component of software product development because it improves consistency and performance. The main benefit of testing is the identification and subsequent removal of the errors. However, testing also helps developers and testers to compare actual and expected results in order to improve quality. If the software production happens without testing it, it could be useless or sometimes dangerous for customers. So, a tester should wear a unique hat that protects the reliability of the software and makes it safe to use in real-life scenarios.   RELATED BLOGS: What is Mobile App Testing?  

Quick Setup: Kafka with ELK Integration
Aug 17, 2020 5 min read

Apache Kafka is the numerous common buffer solution deployed together with the ELK Stack. Kafka is deployed within the logs delivery and the indexing units, acting as a segregation unit for the data being collected: In this blog, we’ll see how to deploy all the components required to set up a resilient logs pipeline with Apache Kafka and ELK Stack: Filebeat – collects logs and forwards them to a Kafka topic. Kafka – brokers the data flow and queues it. Logstash – aggregates the data from the Kafka topic, processes it and ships to Elasticsearch. Elasticsearch – indexes the data. Kibana – for analyzing the data.   My environment: To perform the steps below, I set up a single Ubuntu 18.04 VM machine on AWS EC2 using local storage. In real-life scenarios, you will probably have all these components running on separate machines. I started the instance in the public subnet of a VPC and then set up a security group to enable access from anywhere using SSH and TCP 5601 (for Kibana). Using Apache Access Logs for the pipeline, you can use VPC Flow Logs, ALB Access logs etc. We will start by installing the main component in the stack — Elasticsearch. Login to your Ubuntu system using sudo privileges. For the remote Ubuntu server using ssh to access it. Windows users can use putty or Powershell to log in to Ubuntu system. Elasticsearch requires Java to run on any system. Make sure your system has Java installed by running the following command. This command will show you the current Java version. sudo apt install openjdk-11-jdk-headless Check the installation is successful or not by the below command ~$ java — versionopenjdk 11.0.3 2019–04–16OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing) Finally, I added a new elastic IP address and associated it with the running instance. The example logs used for the tutorial are Apache access logs.   Step 1: Installing Elasticsearch We will start by installing the main component in the stack — Elasticsearch. Since version 7.x, Elasticsearch is bundled with Java so we can jump right ahead with adding Elastic’s signing key: Download and install the public signing key: wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - Now you may need to install the apt-transport-https package on Debian before proceeding: sudo apt-get install apt-transport-https echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list Our next step is to add the repository definition to our system: echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list You can install the Elasticsearch Debian package with: sudo apt-get update && sudo apt-get install elasticsearch Before we bootstrap Elasticsearch, we need to apply some basic configurations using the Elasticsearch configuration file at: /etc/elasticsearch/elasticsearch.yml: sudo su nano /etc/elasticsearch/elasticsearch.yml Since we are installing Elasticsearch on AWS, we will bind Elasticsearch to the localhost. Also, we need to define the private IP of our EC2 instance as a master-eligible node: network.host: "localhost" http.port:9200 cluster.initial_master_nodes: ["<InstancePrivateIP"] Save the file and run Elasticsearch with: sudo service elasticsearch start To confirm that everything is working as expected, point curl to: http://localhost:9200, and you should see something like the following output (give Elasticsearch a minute or two before you start to worry about not seeing any response): {   "name" : "elasticsearch",   "cluster_name" : "elasticsearch",   "cluster_uuid" : "W_Ky1DL3QL2vgu3sdafyag",   "version" : {     "number" : "7.2.0",     "build_flavor" : "default",     "build_type" : "deb",     "build_hash" : "508c38a",     "build_date" : "2019-06-20T15:54:18.811730Z",     "build_snapshot" : false,     "lucene_version" : "8.0.0",     "minimum_wire_compatibility_version" : "6.8.0",     "minimum_index_compatibility_version" : "6.0.0-beta1"   },   "tagline" : "You Know, for Search" }   Step 2: Installing Logstash Next up, the “L” in ELK — Logstash. Logstash and installing it is easy. Just type the following command. sudo apt-get install logstash -y Next, we will configure a Logstash pipeline that pulls our logs from a Kafka topic, processes these logs and ships them on to Elasticsearch for indexing. Verify Java is installed: java -version openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode) Let’s create a new config file: Since we already defined the repository in the system, all we have to do to install Logstash is run: sudo nano /etc/logstash/conf.d/apache.conf Next, we will configure a Logstash pipeline that pulls our logs from a Kafka topic, processes these logs, and ships them on to Elasticsearch for indexing. Let’s create a new config file: input {   kafka {     bootstrap_servers => "localhost:9092"     topics => "apache"     } } filter {     grok {       match => { "message" => "%{COMBINEDAPACHELOG}" }     }     date {     match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]     }   geoip {       source => "clientip"     } } output {   elasticsearch {     hosts => ["localhost:9200"]   } } As you can see — we’re using the Logstash Kafka input plugin to define the Kafka host and the topic we want Logstash to pull from. We’re applying some filtering to the logs and we’re shipping the data to our local Elasticsearch instance.   Step 3: Installing Kibana Let’s move on to the next component in the ELK Stack — Kibana. As before, we will use a simple apt command to install Kibana: sudo apt-get install kibana We will then open up the Kibana configuration file at: /etc/kibana/kibana.yml, and make sure we have the correct configurations defined: server.port: 5601 server.host: "<INSTANCE_PRIVATE_IP>" elasticsearch.hosts: ["http://<INSTANCE_PRIVATE_IP>:9200"] Then enable and start the Kibana service: sudo systemctl enable kibana sudo systemctl start kibana We would need to install Firebeat. Use: sudo apt install filebeat   Open up Kibana in your browser with http://<PUBLIC_IP>:5601. You will be presented with the Kibana home page.

Mastering jQuery: Simple Tricks for Success
Aug 10, 2020 6 min read

1. Back to top button $('a.top').click(function() { $(document.body).animate({scrollTop : 0},800); return false; }); //Create an anchor tag <a class=”top” href=”#”>Back to top</a> As you can see using the animate and scrollTop functions in jQuery we don’t need a plugin to create a simple scroll to top animation. By changing the scrollTop value we can change where we want the scrollbar to land, in my case I used a value of 0 because I want it to go to the very top of our page, but if I wanted an offset of 100px I could just type 100px in the function. So all we are really doing is animating the body of our document throughout the course of 800ms until it scrolls all the way to the top of the document. 2. Checking if images are loaded $(‘img’).load(function() { console.log(‘image load successful’); }); Sometimes you need to check if your images are fully loaded in order to continue with your scripts, this three line jQuery snippet can do that for you easily. You can also check if one particular image has loaded by replacing the img tag with an ID or class.   3. Fix broken images automatically $('img').error(function(){ $(this).attr('src', ‘img/broken.png’); }); Occasionally we have times when we have broken image links on our website and replacing them one by one isn’t easy, so adding this simple piece of code can save you a lot of headaches. Even if you don’t have any broken links adding this doesn’t do any harm.   4. Toggle class on hover $(‘.btn').hover(function(){ $(this).addClass(‘hover’); }, function(){ $(this).removeClass(‘hover’); }); We usually want to change the visual of a clickable element on our page when the user hovers over and this jQuery snippet does just that, it adds a class to your element when the user is hovering and when the user stops it removes the class, so all you need to do is add the necessary styles in your CSS file.   5. Disabling input fields $('input[type="submit"]').attr("disabled", true); On occasion you may want the submit button of a form or even one of its text inputs to be disabled until the user has performed a certain action (checking the “I’ve read the terms” checkbox for example) and this line of code accomplishes that; it adds the disabled attribute to your input so you can enable it when you want to. To do that all you need to do is run the removeAttr function on the input with disabled as the parameter: $('input[type="submit"]').removeAttr("disabled”);   6. Stop the loading of links $(‘a.no-link').click(function(e){ e.preventDefault(); }); Sometimes we don’t want links to go to a certain page or even reload it, we want them to do something else like trigger some other script and in that case this piece of code will do the trick of preventing the default action.   7. Toggle fade/slide // Fade $( “.btn" ).click(function() { $( “.element" ).fadeToggle("slow"); }); // Toggle $( “.btn" ).click(function() { $( “.element" ).slideToggle("slow"); }); Slides and Fades are something we use plenty in our animations using jQuery, sometimes we just want to show an element when we click something and for that the fadeIn and slideDown methods are perfect, but if we want that element to appear on the first click and then disappear on the second this piece of code will work just fine.   8. Make two divs the same height $(‘.div').css('min-height', $(‘.main-div').height());   9. Self-closing elements When inserting empty elements into the DOM, you can use self-closing tags: $('#el1').append('<table class="holly" />'); $('#el2').before('<p class="user-message note" />');   10. Inserting content —Before, after, prepend or append? When inserting elements into an element, use .prepend() or .append(). The difference is that prepend inserts the new element into the start (i.e. insert element as the first child), while append does the exact opposite, inserting the element as the last child: $('div').prepend('<p>Hello!</p>').append('<p>Goodbye!</p>');   11. Loopy doopy do! Very often people wonder how to loop through each element individually, and then target the current element. For this purpose, we can use .each() and $(this). Let’s say we want to add a class to all paragraphs, based on their index. If you are working on a static page, you might be tempted to hardcode it: $('p').each(function (i) {     $(this).addClass('para-' + (i+1)); } Remember that i is a zero-based index, i.e. it starts from 0 for the first encountered element.   12. Automatic vendor prefixes jQuery automatically adds vendor prefixes when it sees fit — therefore saving you the headache of adding vendor prefixes yourself: $('.box').css({ 'transform': 'translate(100,100) scale(2)' }); 13. Selectors As previously mentioned, one of the core concepts of jQuery is to select elements and perform an action. jQuery has done a great job of making the task of selecting an element, or elements, extremely easy by mimicking that of CSS. On top of the general CSS selectors, jQuery has support for all of the unique CSS3 selectors, which work regardless of which browser is being used. $('.feature');           // Class selector $('li strong');          // Descendant selector $('em, i');              // Multiple selector $('a[target="_blank"]'); // Attribute selector $('p:nth-child(2)');     // Pseudo-class selector 14. 'this' Selection Keyword When working inside of a jQuery function you may want to select the element in which was referenced inside of the original selector. In this event the this keyword may be used to refer to the element selected in the current handler. $('div').click(function(event){    $(this); });   15. jQuery Selection Filters Should CSS selectors not be enough there are also custom filters built into jQuery to help out. These filters are an extension to CSS3 and provide more control over selecting an element or its relatives. $('div:has(strong)');   16. Slide Demo //HTML <div class="panel">   <div class="panel-stage"></div>   <a href="#" class="panel-tab">Open <span>&#9660;</span></a> </div>   //Function $('.panel-tab').on('click', function(event){   event.preventDefault();   $('.panel-stage').slideToggle('slow', function(event){     if($(this).is(':visible')){       $('.panel-tab').html('Close <span>&#9650;</span>');     } else {       $('.panel-tab').html('Open <span>&#9660;</span>');     }   }); });   17. Tabs Demo //HTML <ul class="tabs-nav">   <li><a href="#tab-1">Features</a></li>   <li><a href="#tab-2">Details</a></li> </ul> <div class="tabs-stage">   <div id="tab-1">...</div>   <div id="tab-2">...</div> </div> // Show the first tab by default $('.tabs-stage div').hide(); $('.tabs-stage div:first').show(); $('.tabs-nav li:first').addClass('tab-active'); // Change tab class and display content $('.tabs-nav a').on('click', function(event){   event.preventDefault();   $('.tabs-nav li').removeClass('tab-active');   $(this).parent().addClass('tab-active');   $('.tabs-stage div').hide();   $($(this).attr('href')).show(); });   RELATED BLOGS: New Features and Highlights of Bootstrap 5