News from the World of QA — May 2016

Here is this month’s look at the goings-on in the wide world of software development and testing. Hopefully, these interesting stories inspire a few ideas to help your team deploy bug-free software into production. If you want to check out last month’s edition, simply click on this link.

JFrog’s Software Release Solution for a DevOps World

Companies following a DevOps organizational structure for their IT department understand the importance of a streamlined software release process. The rate of enhancements is nearly continuous, with additional time spent on collaboration between software engineers, QA personnel, and network operations. This places additional onus on having the right tools to get more done with fewer resources.

JFrog recently introduced a new Cloud-based solution in concert with Atlassian that promises to seamlessly manage the software release process for organizations relying on DevOps. Bitbucket, Atlassian’s popular Git repository management tool for the Cloud, now integrates with JFrog’s Artifactory repository manager and its Bintray distribution tool. Together, the three products offer a complete solution for companies trying to handle a continuous integration or deployment scenario for software.

Shlomi Ben Haim, CEO of JFrog commented on the new tool. “With the new Bitbucket Connect add-on, release managers are now able to view the entire ‘chain of custody’ of an artifact directly within the Bitbucket user interface. This includes the entire workflow from Bitbucket, the continuous integration server, JFrog Artifactory and JFrog Bintray. Many of our existing JFrog Artifactory customers are already Bitbucket users. Delivering one unified solution demonstrates our commitment to working together to respond to customer demand,” said Ben Haim.

Information Age offers Insight for Implementing DevOps at the Enterprise

Speaking of DevOps, companies are increasingly looking at the methodology in the hopes of streamlining the process of software development, but still with a same level of quality. Making the leap to DevOps from an older software methodology can be a daunting task, requiring buy-in from everyone throughout the organization. Information Age recently published a guide to help companies on the path to DevOps.

This collection of tips offers useful insight on the importance of collaboration, providing visibility to the entire development process, and the interesting concept of treating company infrastructure and its documentation as living code, managed in a repository. Providing enough time for the disparate teams to adjust to the changes is another key factor in the successful implementation of DevOps.

Docker supercharging Software Development

We recently talked about Docker and its use of software “containers” to make the software development and QA processes more efficient. Earlier in May, Linux.com offered three reasons why Docker and containers in general are supercharging the world of software engineering. 

Accessibility from the command line, general portability, and the software tool’s open source nature were their three reasons. The last point on openness relates to the additional functionality offered by using plug-ins developed by the robust community supporting Docker. If you enjoy learning new ways to write and test software, this is definitely a great time to be in the industry.

Stay tuned next month for more newsworthy dispatches from the worlds of software development and quality assurance here at the Betica Blog.

PostgreSQL — an Enterprise Database Alternative to Oracle

Many enterprises still rely on Oracle as their relational database of choice. This decision largely makes sense, considering Oracle’s robust feature set and excellent performance handling huge amounts of data. However, with the rise in popularity of open source software solutions, many firms are now looking for an alternative to a proprietary RDMBS, like Oracle. Enter PostgreSQL.

One of the most popular open source relational database systems, PostgreSQL (or simply Postgre) boasts many of the same features as Oracle, most importantly enterprise-level performance. Companies are able to save significant money leveraging Postgre instead of the proprietary Oracle. While MySQL is another worthy open source option, it works better when used on smaller projects or for developers first learning relational database design and programming.

Let’s look more closely at PostgreSQL and see if it makes sense as another tool on your next open source development project.

PostgreSQL — Features and Functionality

PostgreSQL offers support for most of the core SQL:2011 standard and includes most SQL:2008 data types. The open source database provides many of the standard SQL features familiar to programmers, including foreign keys, views, triggers, joins, and stored procedures. Large data objects in the BLOB format are handled, so you can store rich media data (video, audio, etc.) within a relational database.

The database also supports a variety of enterprise level features, making it worthy of consideration as an alternative to Oracle. Multi-version Concurrency Control is vital for databases with heavy traffic, as is full ACID compliance. Online backups, asynchronous replication, and nested savepoints are other functionality in-demand from a high-end database.

Most popular operating systems run Postgre; most notably Linux, UNIX, Mac OS X and Windows. Programming interfaces exist for a variety of languages — Java, C/C++, the .NET Framework languages, Perl, Python, Ruby, and more. PostgreSQL regularly wins the Linux Journal Editors’ Choice Award for best RDBMS.

If you need to extend the database’s functionality, Postgre includes its own PL/SQL similar to Oracle. You are also able to write stored procedures and triggers in C for an added flexibility boost. Its continued status as an open source project means a robust and helpful community exists whenever questions or issues arise.

Is Postgre truly an Enterprise Replacement for Oracle?

Upon its first release in the mid to late 90s, Postgre’s performance wasn’t anything to write home about. Even the other major open source RDBMS option, MySQL, was faster, let alone Oracle and SQL Server. Over time and with programming skills of the open source community, the tables have turned. More recent benchmarks now show Postgre rivaling Oracle in query performance and surpassing MySQL as well.

When considering all the costs incurred on any large development project, proprietary database licensing definitely stands out. This is one reason many companies are now using PostgreSQL on projects instead of Oracle or Microsoft SQL Server. ROI happens much faster when leveraging open source software, like Postgre, compared to proprietary alternatives.

With Oracle no longer able to claim significant advantages in performance or functionality compared to PostgreSQL, businesses of all sizes need to consider going the open source route for the RDBMS on their next database project.

Check out the next edition of the Betica Blog for additional insights into the world of software development and quality assurance.

The V-Model Software Development Methodology extends the Waterfall Process

Even with the popularity of modern software development methodologies like DevOps and Agile, those processes don’t work best for all project scenarios. Some mature organizations still prefer the venerable Waterfall method with its sharply defined phases occurring in a sequential flow. Still, a design or requirements mistake in an earlier phase can be extra costly to fix, as we’ve previously noted.

What if there was a software development process combining the phases of the Waterfall method with the interactivity of Agile? The V-Model methodology provides well-defined phases, as validation and verification occurs each step of the way. With superior software products in mind, let’s take a closer look at the V-Model.

Giving Equal Weight to Design and Validation

V-Model-Development

While the Waterfall methodology follows a linear path from requirements gathering through implementation and finally to testing and validation, the V-Model features two pathways. The descending path is where the project gets defined while the ascending path focuses on the validation phases. The coding or implementation phase happens at the bottom of the two paths.

This “V” shape nicely illustrates the relationship between each phase in the project definition path and its partner in the testing and integration path. Validation and interaction between the development, QA, and business stakeholder teams is expected to occur during each phase as the project gets defined. This helps ensure nothing gets missed that ends up being a costly fix after the fact; an event happening far too often in projects following the Waterfall methodology.

This model emphasizes the creation of testing plans and operational implementation strategies at the beginning of a project, so they are able to be modified as the scope of a project changes during its lifecycle. It truly gives equal weight to the entire validation of any software project.

Enhancing Waterfall with a DevOps Approach?

Considering the interaction occurring during every phase of a V-Model software project, some observers see it as a version of the Waterfall methodology appropriate for today’s highly-collaborative DevOps era. Test plans are continuously developed from the beginning of the project, as QA engineers work closely with their software engineering counterparts ensuring every scenario is handled. The same interaction happens with the network and operations personnel responsible for the application in production.

Some companies still prefer the flexibility offered by a complete Agile approach, where incremental parts of application are developed to completion, but it is obvious that methodology still doesn’t work for all software development scenarios. Other firms require the formality of the phases within the Waterfall methodology, but still need a more versatile approach to better handle sudden changes in scope. The V-Model allows this freedom while placing emphasis on collaboration between all teams; something valued as a strength of DevOps.

For software development shops looking for a nice mixture of a formal software methodology with a focus on flexibility and testing throughout a project’s lifecycle, the V-Model is worthy of further exploration. Stay tuned to the Betica Blog for additional insights on the world of software engineering and QA.