Software Audits: What Reviewers Look For When Testing Your Code

Software Audits: What Reviewers Look For When Testing Your Code

## Introduction: Why Software Review Matters in Auditing

Software is a crucial component of many business processes and financial reporting systems today. As such, auditors need to understand and test software controls as part of the audit process.

Software review involves evaluating the controls around software that impact financial transactions and reporting. This allows auditors to identify risks from system errors, security weaknesses, or data integrity issues. Properly reviewing software improves audit quality and assures that the financial statements are free from material misstatements.

There are several key reasons why software review is important in auditing:

Software controls automated business processes and controls. Auditors need to test that the software is functioning as intended.

Errors or fraud could be embedded in software code, algorithms, or scripts. Reviewing software can detect risks.
Access controls, edit checks, and other preventative controls may be programmed into software. Auditors must evaluate these controls.

Software may be used to process or store sensitive financial data. Auditors have to assess information security risks.

New software is often implemented to improve efficiency. However, auditors need to confirm it is working correctly.
Outdated, unsupported, or poorly designed software can introduce control weaknesses. A review identifies improvement opportunities.

In summary, software impacts many aspects of accounting and financial reporting. Performing software reviews allows auditors to obtain sufficient evidence that risks are mitigated through effective software controls. The next sections will explore the steps involved in conducting software reviews during an audit.

## Planning

The planning phase is critical for ensuring an effective software review during an audit. Auditors need to determine the scope, risks, controls, and timing to properly prepare.

The first step is defining the scope. Auditors must identify which software applications and systems will be reviewed. This includes financial reporting systems, databases, enterprise resource planning systems, and any other technology that supports financial processes. Auditors should get an understanding of how data flows between systems and the core processes each system supports.

Next, auditors need to assess the risks associated with the in-scope software. This includes risks related to access controls, change management, backups and continuity, input/processing/output controls, and more. High-risk areas may require more testing. Understanding the risks allows auditors to focus efforts on mitigating those risks.

Auditors also need to gain an understanding of the controls in the software. This includes both IT general controls like access, security, and change management as well as application controls embedded within the software itself. Assessing if controls are designed effectively and identifying any control gaps is key.

Finally, auditors should develop a timeline for review and testing. Testing controls at certain times may provide more assurance than others. Planning should balance obtaining sufficient evidence with minimizing disruption to business processes.

Thorough planning is indispensable for an efficient, targeted software review during an audit engagement. Auditors who invest adequate time in determining scope, risks, controls, and timing set themselves up for an effective review.

## Understand the Software

Auditors need to gain a thorough understanding of the software application being reviewed. This involves studying the architecture, code, interfaces, data flows, and how the application works.

Some key areas for auditors to focus on include:

Architecture: Review application diagrams, maps, schemas, etc. to understand the high-level design. This provides insight into the different application components and how they interact.

Code: Dig into the source code to analyze application logic, inputs, outputs, data handling, etc. This requires technical expertise but is crucial to fully understanding software behavior.

Interfaces: Examine the interfaces between the application and other systems and users. Assess how data enters and exits the application through these touchpoints.

Data Flows: Trace how data moves through the system. Follow the input data from its source to processing and storage. Understand how output data is generated and where it goes. 

Functionality: Analyze the key functions and processes of the application. Get a hands-on feel for how users interact with the system and how activities are handled end-to-end. 

This in-depth understanding sets the foundation for auditors to effectively analyze controls, risks, and outputs later in the software review process. There are no shortcuts here; auditors must dedicate sufficient time upfront to studying how the software works at a technical level.

## Assess Controls

The auditor needs to assess the controls around the software to determine if they are designed and operating effectively. This involves reviewing input, processing, and output controls.

**Input Controls**

Input controls are critical to ensuring the integrity of data entered into the system. Auditors will examine controls like:

Edit checks to validate that data fields follow expected formats, ranges, or codes.

  • Access controls to limit input to authorized personnel
  • batch total reconciliations to ensure all data is processed
  • Exception reports for items needing correction or review

**Processing Controls**

Processing controls help guarantee that data is processed accurately and completely by the software. Auditors will evaluate controls like:

Transaction logging to create an audit trail of processing activities
Validation of calculations, processing logic, or configurations
System edit checks, like programmed error routines
Anti-virus software and access controls

**Output Controls**

Output controls are key to ensuring outputs are complete and accurate. Auditors will inspect controls such as:

Reconciling report totals to input totals
Distribution controls for outputs, like verification of recipients
Access controls around report storage and distribution
Report maintenance for accuracy reviews and version control.

By thoroughly assessing input, processing, and output controls around the software, auditors obtain reasonable assurance that the system is functioning as intended. This critical step enables auditors to rely on system-generated data and reports during substantive testing.

## Analyze Risks

Analyzing risks is a critical step in reviewing software controls during an audit. Auditors need to identify key control gaps and data integrity risks that could impact the reliability of the financial statements.

Some common risks to analyze include:

Access controls: Are there adequate controls restricting access to sensitive data and software? Are privileges granted on a need-to-know basis?

Change management: Are changes to software applications properly tested, authorized, and documented?

Data integrity: Are there controls preventing unauthorized changes to data? How is data protected from accidental changes? 

Segregation of duties: Are there conflicts that could allow fraud, such as developers also moving code changes to production?

Computer operations: Are there procedures for backup, recovery, and continuity of IT operations?

When analyzing risks, auditors should focus on identifying control gaps where control does not exist or is not properly designed or implemented. This increases the risk of material misstatements in the financial statements.

Data integrity is a key risk area. Without proper controls, unauthorized changes can be made to applications or data that affect the financial statements. Auditors need to assess controls around data input, processing, storage, and output to ensure the completeness, accuracy, and validity of the data.

By analyzing risks and identifying high-priority control gaps related to data integrity, auditors can provide recommendations to improve internal controls over financial reporting. This is a valuable part of the software review process.

## Test Controls

Testing software controls is a critical part of the audit process. Auditors will employ various techniques to ensure that controls are functioning as intended. Some key steps include:

### Perform code reviews

Auditors will often inspect the actual code to analyze program logic and ensure the code is compliant with company policies and relevant regulations. Code reviews allow auditors to check that proper input, processing, and output controls exist. For example, they may review code related to login procedures to ensure proper authentication controls are in place.

### Test data flows

By using test data and transactions, auditors can verify the accuracy of data inputs, processing logic, and outputs. They will set up test cases to emulate real-life scenarios the software handles. For instance, auditors may enter test payroll data to confirm calculations are computing wages, taxes, and deductions properly. Or they may submit simulated online orders to check the integration between the payment system and inventory system. Analyzing live outputs proves the software works as intended when fed realistic data.

### Examine error handling

Auditors will investigate how the software behaves when invalid, extreme, or unusual data is entered. This evaluates the error handling routines and exception management. Issues like software crashes, incomplete processing, incorrect outputs, or lost transactions may indicate poor controls. Rigorous error testing assures that the software remains stable and secure under a variety of conditions.

### Check access controls

Proper controls around access, roles, and permissions are important. Auditors will verify that users can only access data or functions they should have privilege to. For example, they may attempt to log in with an unauthorized user account to confirm access is denied. Or auditors could check that administrative settings can only be changed by an admin user. Reviewing authentication controls, activity logs, and access matrices helps avoid data leakage or misuse.

Thorough testing across program logic, data flows, errors, and access provides auditors with evidence that software controls are functioning correctly. They can then make an informed assessment of the control risk.

## Examine Outputs

Reviewing the outputs produced by the software system is a critical part of the audit process. Auditors will examine key reports, data extracts, and other outputs to verify their accuracy and completeness.

Some areas auditors will focus on include:

Reviewing system reports: Auditors will verify key system reports are complete, accurate, and comply with regulations and controls. This includes reports for financial reporting, regulatory compliance, customer statements, and management reporting. Auditors will trace report data back to the source transactions and outputs.

**Examining interfaces and data feeds**: The auditor will check that key interfaces and data feeds are operating correctly. This involves tracing samples of interface data back to the source system and validating the completeness and accuracy of the data transmitted.

**Testing data extracts**: Data extracts and electronic files provided to outside parties are reviewed. Auditors will verify the extraction process is complete and accurate by reconciling the data back to the system. They also check that proper data validation and controls are in place.

**Sampling outputs**: Where possible, auditors will select samples of system outputs and reports and verify them back to source transactions and inputs. Statistical sampling techniques may be used to select a representative sample size. 

Assessing output security: access and controls around reporting and extract processes will be reviewed. Auditors ensure that only authorized users can generate system outputs.

By thoroughly examining key system outputs, auditors can verify that the software is processing data correctly and producing accurate results. This testing assures the reliability of system-generated information used by the business.

## Follow Up

Once the software review is complete, auditors will want to follow up to ensure any issues identified have been addressed. It's important to track outstanding issues and verify they have been resolved according to an agreed-upon timeline. Auditors may recommend improvements to processes, controls, or configurations based on findings during the review.

Some key aspects of the follow-up process include:

maintaining an issue log to keep track of identified problems or risks. This should note the issue description, severity, owner, and status.
periodically contacting owners to get status updates on open issues. Following up at least weekly is recommended for high-severity items.
Verifying resolution steps have been completed by requesting evidence like screenshots, logs, or updated documentation.

  • testing fixes and improvements to validate that they work as intended.
  • identifying common trends or recurring issues that may require more robust solutions.
  • providing suggestions on ways to improve software and processes to prevent similar issues going forward.
  • evaluating control gaps and opportunities to implement stronger controls.
  • assessing if additional user training would be beneficial based on the types of issues observed.
  • scheduling a follow-up audit a few months after the initial review to spot-check high-risk areas.

The follow-up process is key to ensuring the value of the software audit is fully realized through the remediation of identified weaknesses and risks. Tracking issues to completion and providing guidance to owners gives auditors confidence that problems were addressed adequately. It also informs future audits by highlighting where continued focus is required.

##Reporting

A large part of software review is documenting findings and conclusions from the audit. The audit report on software review should detail:

  • The scope and objectives of the review
    The procedures performed and evidence obtained
    The assessment of risks and controls
    Any findings or exceptions noted during testing
    The overall conclusion on whether controls are operating effectively and risks are mitigated

Documenting the audit evidence, analysis, and conclusions in a clear, concise report is crucial. The report provides transparency on the audit work done and supports the opinions reached. It also highlights any issues or deficiencies that require management attention.

Key elements to include in the audit report section on software review:

  • Description of the system and processes reviewed
    control objectives relating to the software
    Details of test procedures performed
    Results of tests and sample findings
    Assessment of control risk
    Recommendations for improvement

The reporting should be tailored to the intended audience, such as management, the board, auditors, or regulators. The use of data, charts, and diagrams can aid understanding. The tone should be constructive and solutions-focused.

## Conclusion

Software is an integral part of many businesses and organizations today. As technology continues to advance rapidly, software systems are becoming increasingly complex. Performing a proper software review as part of an audit is crucial to ensuring that systems function as intended and to identifying any weaknesses, errors, or fraud risks.

Through careful planning, understanding the software, assessing controls, analyzing risks, testing controls, examining outputs, and following up on issues, auditors can gain assurance that software produces reliable data and transactions.

While software introduces risks, a diligent auditor can detect problems before they lead to material misstatements or business disruptions. Auditors must stay vigilant as new threats emerge and as businesses adopt more sophisticated technologies.

In summary, software audits require expertise, diligence, and focus. However, the effort pays dividends in the quality and integrity of financial information, operational effectiveness, and stakeholder trust. As software permeates more aspects of business, performing comprehensive software reviews must remain a priority for auditors. With vigilance and care, auditors can continue to provide the vital assurance needed in the age of digital transformation.