TutorChase logo
Login
AQA A-Level Computer Science

3.1.5 Evaluation of solutions

Evaluation is a key stage in software development, ensuring the final solution meets expectations and performs well across usability, efficiency, and maintainability.

Correctness

Correctness is the foundational criterion in software evaluation. It refers to whether the completed system works as intended and satisfies all the functional requirements outlined at the start of the development process. This means that the system should be able to produce the correct output for every valid input, operate without crashing, and follow the logical steps defined in the problem’s specifications.

Importance of correctness

  • Ensures trust in the system from users and stakeholders.

  • Prevents unexpected behaviour and bugs during use.

  • Forms the basis for other evaluation criteria—if a system is not correct, efficiency or usability are meaningless.

Methods for evaluating correctness

  • Requirement traceability: Check that each requirement in the specification has been implemented and works as expected.

  • Unit testing: Individual functions or modules are tested to ensure they perform correctly in isolation.

  • System testing: The entire system is tested to verify the integration of components.

  • Regression testing: Ensures that new updates or features do not break existing functionality.

  • Manual testing with expected results: Inputs are tested and compared with expected outputs.

Key questions to ask

  • Does the system fully satisfy the original problem requirements?

  • Are all features functioning correctly under normal and edge cases?

Take your grades to the next level!

UPGRADING TO PREMIUM UNLOCKS
AI Tutor
AI-powered study assistant
instant feedback and guidance
Predicted Papers
Examiner-style predicted papers
based on recent exam trends
Practice Questions
All exam practice questions
by topic for each subject
Study Notes
All detailed revision notes
written by expert teachers
Cheat Sheets
Quick revision summaries
perfect for last-minute review
Past Papers
Complete collection
of practice and past exam papers
Email
Password
Confirm Password
Already have an account?

Practice Questions

FAQ

Evaluation and testing are both essential stages in software development, but they serve different purposes and occur at different times. Testing focuses on identifying bugs, errors, and failures in the software. It involves running the program under controlled conditions to check whether it behaves as expected. Testing is typically systematic, using techniques like unit testing, system testing, and acceptance testing to ensure each part of the system is functioning correctly.

Evaluation, on the other hand, is a broader and more holistic process carried out after the system has passed most of its testing stages. It goes beyond whether the program works to examine how well it works in practice. It considers the effectiveness of the solution in meeting user needs, resource consumption, usability, long-term maintainability, and scalability. Evaluation asks, "Is this the best possible solution for the problem?" rather than "Does it work?" This process often involves collecting user feedback, assessing performance under real conditions, and identifying areas for improvement. It ensures the system is not only technically correct but also useful, efficient, and ready for long-term deployment.

Considering evaluation criteria from the beginning of a project ensures that the final solution is designed with quality, adaptability, and user satisfaction in mind. If developers only start thinking about maintainability, usability, or scalability at the end of development, they may discover that the architecture or code structure is unsuitable for improvement or expansion, leading to costly refactoring or even starting over.

For example, designing for scalability early on might influence decisions about database architecture, code modularity, and server-side processing. If scalability is overlooked, the system may struggle when demand increases. Similarly, early focus on usability ensures that interface design decisions consider real user needs and behaviours, reducing the risk of creating a confusing or inaccessible system.

Embedding evaluation criteria into initial design discussions aligns development with long-term goals and avoids short-sighted choices. It promotes strategic thinking, better planning, and a system that performs well not just during testing, but in real-world, evolving conditions. It also helps developers justify their design decisions in evaluations by showing how they anticipated challenges from the outset.

Benchmarking is a performance evaluation technique where the software is tested under controlled, measurable conditions and compared against either predefined standards or similar systems. It is especially useful for assessing efficiency and scalability, but can also indirectly support evaluation of other criteria like correctness and usability when used alongside user testing.

In benchmarking, developers measure factors such as response time, throughput, memory usage, and CPU load while the system performs common tasks. These metrics provide objective data that reveal how the system behaves under expected and extreme conditions. For instance, benchmarking may involve testing how quickly a system can retrieve data from a large database, or how performance degrades when hundreds of users log in simultaneously.

The results help identify bottlenecks and inefficient components. By comparing benchmark data with either industry standards or competitor systems, developers gain insights into how well their solution performs relative to expectations. This data-driven approach ensures the system is optimised and helps prioritise improvements in areas with the greatest performance impact.

Evaluation plays a crucial role in determining how sustainable a software system will be over its full lifecycle, from initial deployment through maintenance and eventual replacement or upgrading. It provides the basis for making informed decisions about how a system can evolve without incurring excessive costs or creating technical debt.

By assessing maintainability, developers understand whether the system can be updated efficiently. If the system is modular, well-documented, and clearly coded, it is easier to fix bugs or add features in the future. Evaluation also helps in determining if the current design supports scalability—whether the system can grow as user numbers or data volumes increase.

Furthermore, by using evaluation to identify potential points of failure or areas requiring frequent updates, development teams can plan for ongoing support, such as patch schedules, upgrade cycles, or cloud migration strategies. This ensures the software remains secure, performant, and compatible with evolving user and business needs. Evaluation effectively becomes the bridge between a successful launch and sustainable long-term use, providing insight and direction for the system's ongoing evolution.

Skipping or poorly conducting the evaluation phase can lead to significant short-term and long-term problems in software projects. Without proper evaluation, developers may release a system that technically works but is inefficient, hard to use, or unable to adapt to future demands. This often leads to user dissatisfaction, frequent complaints, or even system rejection by its intended users.

One major risk is the failure to identify hidden performance issues, which may not be evident in isolated tests but emerge when the system is used in real conditions. For example, inefficient algorithms might pass testing but cause slowdowns with real-world data sizes. Likewise, usability flaws can go unnoticed if user feedback is not collected, leading to systems that are confusing, inconsistent, or inaccessible.

In the long run, poor evaluation can result in increased maintenance costs, as developers must fix issues that could have been prevented. It may also compromise system scalability, making it hard to accommodate new users or data. Most critically, it undermines confidence in the development process, causing trust issues with stakeholders. Thorough evaluation ensures the system delivers value and continues to perform effectively over time.

Hire a tutor

Please fill out the form and we'll find a tutor for you.

1/2
Your details
Alternatively contact us via
WhatsApp, Phone Call, or Email