Software and Hardware Integration testing (integration and testing, I&T) is the phase in which software modules are combined and tested as a group instead of in isolation. The purpose of which is to group or ‘block’ test previously analyzed individual components as a whole or part system. Just because components perform perfectly in isolation, it does not follow that they will work in a system. This ‘building block’ methodology verifies the software ecosystem, over a variety of parameters as specified in the project requirements. Integration testing is performed after isolation and module testing, as part of the SDLC (Software Development Life Cycle).
During most stages of testing, Regression Testing is periodically performed to ensure that changes made to components do not have a cascading or ‘Knock-On’ effect to previously tested and functioning components. This should be considered an integral part of every Software Development process and is performed after correcting a reported bug, defect, or alteration.
In most cases, the front-end of your software will be the only way in which the end-user interacts with your product. From the perspective of your clients, customers or employees, this is the primary point to judge the intuitive and effective usability of your software. Any menu, button, action point, dialog box or control, should correctly serve the purpose. This does not just mean that the input action equals the output action according to a test script. That is important of course, but logic also needs to be applied. Just because testing ensures a button works, it does not automatically follow that it was logical, or that the functionality remained across multiple browsers, OS’s or hardware. This is why a combination of Automated and Manual Testing is applied. This is the precursor to full Usability Testing.
Consider Smoke Testing to be the start-up test to any system. This is the preliminary testing that is done the to a full system to determine its current status and readiness to proceed with specific and in-depth testing. If a project fails the initial Smoke Test, then all testing will be halted as proceeding further would yield no benefit and serve to waste resources. Smoke Tests are repeated over time with additions to software as it matures, and help to identify integration issues.
One of the final stages, Acceptance Testing helps to ensure the overall systems performance before making the product available. A formal stage that determines the business needs and criteria are met by the end-user. Bottom-Up testing would normally follow the outline of; Various unit testing processes, followed by integration testing of assembled ‘Blocks’, followed by System and Usability Testing. Once this is all completed, Acceptance Testing is performed, commonly in two stages; Internal and External. The aim here is to gain true insight into an unbiased usability test.
Internal Acceptance Testing (Alpha Testing) is normally performed by personnel within the organization that developed the project. Members of Product Management, Sales and/or Customer Support work best as they are not directly involved with the development.
External Acceptance Testing (Beta Testing) is performed by people who are end-users but not employees of the organization. Again, in order to produce unbiased feedback.