<<

Functional testing

The purpose of functional testing Functional testing ensures that the acceptance criteria, whether they are specific to , middleware, or hardware are met to the satisfaction of the product owner or project sponsor. It is the responsibility of the testing team and covers user interactions, data input fields and validations, integration work, workflows, screen design, business process, and dynamic display for mobility devices. Validating that the acceptance criteria are met ensures that not only is the application stable and working as designed, but also that the clients, customers, and end users are able to use the application. Thus, the product owner can accept the functionality developed. Functional testing is completed in a variety of manners, all of which are aimed at confirming that the delivered functionality meets the holistic needs of the end user at both the case type and case stage level. Subsequently, the application is ready for the next level of testing; user , e2e testing, performance testing etc Because testers know the entire system goals, it ensures that the true functionality as a whole is performing as the user requires. This is starkly different from testing completed by the developments team – testing code that each individual constructed, element by element. Despite how flawless the various individual code components may be, if the overall application does not function as a well-orchestrated symphony when all components are combined, then the flawlessness of the code becomes a moot point.

Best Practices 1. Ensure that the team’s Definition of Done (DoD) are communicated to all project team members and stakeholders. 2. Ensure that the DoD is complete, comprehensive, measurable, and met with every user story 3. Begin testing as early in the sprint or project lifecycle as possible. 4. Maintain traceability from user stories to tasks to test cases and to bugs. 5. Automate as much of the testing as possible so that retesting and are scalable and easily executed throughout the project.

Non-functional testing Whereas functional testing is focused on the business for an application, non- functional testing is aimed at determining whether or not an application is designed in a way that is effective and useful for end users. Non-functional testing covers scenarios including, but not

Functional testing 1

Functional testing

limited to, security and authentication elements, performance testing, browser compatibility, stress testing, and localization.

Testing execution: automated vs. manual When automating testing, test cases and scenarios are managed and run via software applications and set scripts and commands. may be supported with or managed through a software application, but the testing of the scripts thereof is performed by a person that is reading and interpreting a test case. While it is imperative for businesses that want to scale both their applications and efficiencies in order to increase their ROI in parallel to automate as much of their testing activities as possible, there are still practical and valid reasons why automating testing to 100% is unrealistic and, in some cases, even detrimental to project success.

Automated Testing Pros and Cons

Due to its very nature as a structured set of repeatable tasks/commands, automated testing is the more reliable approach.

With automated testing being run by software and with limited human interactions or dependencies the completion of the tests is much faster.

Initial investment and setup for automated testing tools, software setup, and initial test script conversions and uploads can be significant.

Automated testing is most effective for repetitive test scenarios and steps.

Automated testing cannot effectively execute testing for scenarios on usability, screen look and feel or overall aesthetics of screens, forms, and the display as a whole.

Risks of missed test elements or mistaken results are negated by automation.

Automated tests provide a higher test accuracy rate and will identify defects quicker.

Functional testing 2

Functional testing

Manual Testing Pros and Cons

Because it is executed by a human, manual test cases targeted at , layout, screen design, and UI elements can be successfully tested.

It is not a scalable approach and test cases that need to be run multiple times (such as regression testing) are not cost effective if done by a human resource.

Test resources require training and development and the ramp up time to be effective and efficient may be very long for a geed tester.

Manual testing can be a time intensive endeavour and require many resources.

Manual testing lends itself to interpretation of the tester and may not always be accurate or consistent across testers.

Manual testing is a more effective approach for applications that are under heavy development and may be changing radically thus rendering automated scripts defunct each sprint.

Reporting on manual test execution may be more labour intensive and less accurate in its results.

Functional testing readiness checklist Once a test approach and strategy have been determined, test readiness must also be coordinated and completed. In order to ensure the success of the functional testing of any project, regardless of whether the testing is to be executed manually or automated, the following should be completed: • Test cases are created and approved. • QA plan is created and reviewed by all development and testing resources. It should include, at a minimum, resource plans, deployment schedules, environment downtimes, and any integration dependencies should be surfaced. • The testing scope must be clearly defined. • Peer and Lead resource reviews of the proposed test scripts are complete.

Functional testing 3

Functional testing

• All test data requirements are clearly defined, with test inputs and outputs mapped. • Test environment configurations are complete and appropriate roles and access setup and granted. • Risk assessment process and procedures for any failed tests are defined with the Governance team. • Back out or rollback plans are established in the event of catastrophic defect introduction.

Functional testing 4