The Software Testing Approach
We are all aware of the code development needed to deliver a software-based product. At the end, the final outcome is expected to carry specific functionalities and be checked before delivery. But is writing code really enough in the SW development process? Do you wonder why software testing is needed hand-in-hand with coding?
We would worry if the piece of software is critical. Even more, if a failure would risk human lives, we would be very skeptical.
In an ideal world, coding would be perfect. In the real world, making mistakes is human. Here comes the testing part. Its role is to help deliver a properly performing piece of software, providing end-users with the experience they want.
Testing does not claim absence of defects; it helps locate them instead. It reduces the risk of failures occurring during operation. It builds confidence on the product before it goes live. When applied early in the software lifecycle it helps discover failures early, leading to a reduced cost for fixing them.
In order to provide confidence in delivered software, testing must be applied with the necessary rigor. It can save effort and improve time to market. It can enhance quality and positively affect the reputation of the product and the brand. Above all, it can prevent abnormal product behavior, usually with disastrous consequences. According to marketwatch.com, the global Software Testing Services market (end-user, public and private) is valued at ca. $30 billion by the end of 2023, growing at an annual rate of 12% during 2020-2023.
Main Types of Software Testing
There are many ways to classify testing; let’s review the most common categories:
- Functional testing aims to ensuring that SW performs the functionalities it has been designed for, in accordance with requirements; no more, no less. This can apply to either user interface or to API’s. Although functional testing could simply be a set of manually executed steps, it is normally performed in an automated way with the help of tools.
- Performance testing checks the conditions under which the load (from concurrent users or too much data) imposed on a web application can affect its operation and render it slow, unstable, or even unresponsive. Performance & stress testing fall under the load testing umbrella.
There are less familiar categories to consider, such as pure exploratory testing, user experience testing, security, usability, mobile, compatibility or localization testing.
Testing Process & Methodology
You may wonder again, what if specifications are not clear enough. Well, then neither testing can be.
To deliver best results, software testing must follow a path of standardized steps within a plan. Exit criteria (i.e. metrics for when testing is deemed complete and should stop) must also be defined.
Testing starts with analysis of requirements. It continues with design of the planned tests, including users’ roles, actions and expected results. If tools are to be used, they need to be set up and be implemented. Text execution follows. If needed, the latter steps are repeated till exit criteria are met. Reporting and closure take place at the end.
Every phase has a value of its own. For example, in functional testing of an application that is updated often enough, regression is key; testers must check if the newest update really holds the app in place, without spoiling existing functionality.
Testing is not supposed to get involved only after development is over, or just before the product heads out to production. In fact, the earlier it is involved, the greater its value becomes. In agile projects, testing activities are synchronized with development to save time and increase software quality.
Software testing is our thing. iteam is first in class!
iteam is proud to be the first Greek company participating in the ISTQB partner program. ISTQB® (International Software Testing Qualifications Board), founded since 2002, has defined the “ISTQB® Certified Tester” scheme that has become the world-wide leader in the certification of competences in software testing. All our testing engineers are ISTQB-certified.
ISTQB® (International Software Testing Qualifications Board) is a not-for-profit association legally registered in Belgium and has defined the “ISTQB® Certified Tester” scheme that has become the world-wide leader in the certification of competences in software testing. In Greece, the organization is represented by the Greek Software Testing Board (GRTB).
How we can help you #1: Commercial, off-the-shelf Application Lifecycle Management Products
Iteam has traditionally been a provider of licenses for market-leading, state-of-the-art testing solutions. These cover whole software development lifecycle or part of it.
iteam has been a partner of Microfocus (former HP) application delivery management portfolio. The main competence areas here are in application lifecycle management, in functional testing and in performance testing products.
As a Microsoft partner, iteam vigorously uses the company’s solutions for the benefits of customers’ and own use.
“Over 6 million software professionals and 22,000 companies across 194 countries use SmartBear tools.”
“We’re transforming the way businesses go digital by making continuous quality possible.”
Tricentis is recognized for reinventing software testing for DevOps.
Atlassian JIRA is built for software teams to plan, track and release software.
How we can help you #2: Open source solutions
Depending on the level of complexity, or on the customer environment, or other decisions from the business owners, we are also able to utilize open-source solutions.
Examples are Selenium, Soap UI or Protractor (for functional testing), or Apache JMeter (for performance testing).
Selenium is a suite of tools for automating web browsers. Over the last decade, a large ecosystem of open source projects have sprouted up around Selenium.
“The mission of the Apache Software Foundation (ASF) is to provide software for the public good”
Protractor is an end-to-end test framework for Angular and AngularJS applications.
Protractor runs tests against applications running in a real browser, interacting with it as a user would.
The tools can be used with a variety of modern programming languages, such as Java or C#.
How we can help you #3: Testing services expertise
Along with the above tools, the main strength of iteam lies within the human expertise in all phases of the SW testing process, be it requirements analysis, consultancy, execution & reporting, test management, or complete testing project management.
Although the methodology remains the same, every project is unique. The testing service is carried out by experienced professionals and is normally supported by a variety of appropriate issue tracking tools. The whole process is monitored through a test manager.
Iteam is proud to be able to deliver high-quality results even for demanding cases in a cost-efficient way, with a strong customer-oriented attitude
Apart from typical cases, team has successfully implemented projects based on Microsoft Azure DevOps. It provides a platform that helps plan smarter, collaborate better, and ship faster with a set of modern dev services.
Microsoft Azure DevOps
Numerous examples of advanced software collaboration testing from our team is Azure DevOps (formerly known as Team Foundation Server). It is a well-known collaboration tool for software lifecycle management, which enables planning and tracking work across teams. With Azure, the build-test-deploy process makes CI/CD (Continuous Integration / Continuous Deployment) possible.
The environment is used by our teams on a daily basis. In projects of elementary complexity, every test execution cycle redistributes the assignments between Dev and Ops. This creates crystal clear backlogs for both developers and testers.
In advanced projects, Azure DevOps takes automation to a next level. Testing happens automatically, without human intervention, as soon as Dev teams create a new build. This enhances the overall process, minimizes the time lost for bug fixing and takes the product closer to production, easier and faster.
Areas of Practice & indicative cases
In Iteam, we are proud to have been in the software testing business for a long time. There is no limitation to the usefulness of testing in any market.
- Banking (National Bank of Greece, Alpha Bank, Eurobank, Piraeus):
Automated functional testing was required for new retail or corporate banking services, web-banking or mobile banking. Due to the longevity of such web applications, regression testing is vital.
- Large-scale EU-wide projects
Automated functional testing is critical (due to large diversity of stakeholders, of users and of flows). Note the same comment on regression testing as above.
- Telecommunications: OTE Group, Vodafone, Wind, other providers
For functional testing, it could be a website’s functionality from the end-user viewpoint.
For load testing, it could be how a back-end system sustains the provision of new telecoms services via numerous customer care agents.
- Airlines & airports industry
Customer loyalty systems, ground operations, fleet management, cabin crew operations, preflight notifications, code sharing.
- Other business to business
Auctions, corporate intranets, B2B sourcing/purchasing
- Lottery & sports betting
Without underestimating functional testing, the usual suspect here is system behavior under load or stress. Consider a jack pot and think of the reputation (or lost revenue) of a platform unable to serve thousands of concurrent online players.
We ‘d love to hear from you
Summarizing, thorough testing is a most important process in the software development lifecycle. It enhances brand quality. It saves effort, time and costs. At the end of the day, it delivers what we are looking for: quality.
Aristotle once said, “Quality in not an act, it is a habit”. For iteam, quality is a passion.
Please feel free to discuss your challenges with us. We will be glad to help you solve them with confidence. firstname.lastname@example.org