This is the first of a series that will explore basic concepts, strategies, and practices that are in use today, to ensure systems and software applications meet the needs and expectations of business stakeholders, partners and end users.
There are time-proven software application test strategies available today that provide a high degree of stakeholder and end user satisfaction. Successful software development project deliveries are associated with quality documented Software Requirements Specifications (SRS) and orientation and training programs.
SRS documents drive the development of test cases. Incomplete requirements result in missed defects during software application testing.
When developing custom software applications or selecting COTS applications, functional application orientation and training is required for the test team and end users alike. Simply put, you cannot test and use application software when you do not understand how it has been configured to function.
With respect to orientation and training materials for COTS applications, these resources must reflect the behavior of the configured customer application, not the stock off-the-shelf application. In production, application users will need to quickly determine how to do something based on how their application has been configured to function.
Poorly specified SRS's orientation and training programs for test teams and end users are the primary causes of failed projects and unusable software applications.
One aspect that successful system and software development projects have in common is a quality software testing program.
Typically managed by Software Quality Assurance (SQA) professionals, these team members are responsible for ensuring system and software application deliverables meet business requirements and industry standards prior to production implementation.
Several types of software testing occur during various phases of a software development project. Once a software product deliverable transitions to production, testing continues by SQA professionals, beta program customer/user SMEs, customers, and stakeholders.
Unit Testing
Before releasing a software application to SQA professionals for testing, application developers run a series of Unit tests. Unit Testing (UT) helps ensure that developers have met the System or Software Requirement Specification (SRS), prior to releasing the product to the QA team for validation.
SQA professionals work in concert with application developers, performing software validation activities that can include walk-throughs of requirements, desk checks of code, evaluating implementation of best practices and feedback from mentors, training programs, etc.
Understanding when the process of software verification and validation occurs in a software development project's life cycle, is key to communicating with SQA professionals.
Pre-Production and Go-Live Testing
When a product deliverable is certified by the development and QA team managers as being ready for QA Validation testing, SQA professionals begin running the following types of software tests: Smoke, Functional, Integration, Regression and Performance tests.
Integrated Validation Testing is the process of testing internal, external interfaces and data exchanges between integrated functional applications, to ensure an information systems application platform meets the overall Systems Requirements Specifications (SRS).
User Acceptance Testing (UAT) is vitally important to the successful adoption of new software deliverables. The quality and integrity of a UAT testing program can make or break a software development project.
Key to a software implementation's overall success is developing and integrating foundational QA standards, practices, procedures, and guidelines during the project planning phase.
When a software deliverable product transitions to production via a Go-live event, members of the SQA team continue validating the software through a series of performance and functional audit checks.
Team members also monitor anomaly and findings reports to determine if a software application is meeting the needs of business executives, operational managers, end users, and other stakeholders.