Software Engineering undergraduate at University of Kelaniya.
Image for post
Image for post

Software testing is analyzing a system or a component by providing defined inputs and comparing them with the desired outputs to check the discrepancies between the desired and actual outputs and correct them.

Basically, software testing can be divided into two categories.

Manual testing

Manual testing is a testing process that is carried out manually in order to find defects without the usage of tools or automation scripting. A test plan document is prepared that acts as a guide to the testing process in order to have the complete test coverage.


Image for post
Image for post

Universal design is about a designing system so they can be used by anyone in any circumstance.

Multi-modal systems use more than one human input channel.

Universal design means designing for diversity

Universal Design

Practical?

May not be able to design everything to be accessible to everyone so they the same experience, but we try to provide equivalent experience.

Does not have to be complex or costly.

Many examples take into account diversity

Lowered curb with different textures at…


Human-Computer Interaction

Image for post
Image for post
Photo by Scott Graham on Unsplash

What is the evaluation?

Evaluation is a systematic determination of a subject’s merit, worth and significance, using criteria governed by a set of standards.

• Evaluation

– tests usability and functionality of system

– occurs in laboratory, field and/or in collaboration with users

– evaluates both design and implementation

– should be considered at all stages in the design life cycle

Goals of evaluation

• assess the extent of system functionality

• assess the effect of interface on the user

Evaluation through expert analysis

Cognitive walkthrough

Proposed by Polson et al.

– evaluates design on how well it supports the user in a learning task

– usually performed by an expert in cognitive…


Human-computer interaction

Image for post
Image for post
Photo by Daniel Korpai on Unsplash

Principles of Learnability


Before moving to the topic we should have a clear idea about SDLC. So that I thought to explain what is SDLC and why we need SDLC.

What is SDLC?

SDLC is a process followed by a software project, within a software organization. Contains a detailed description of how you can improve, maintain, modify and modify or improve a particular software. The life cycle describes how to improve software quality and the overall development process.

Why we need SDLC?

A model of anything allows its user to explain what is happening and predict what could be the possible outcomes, with the consequences that you can predict what is happening before it is committed to an expensive real project. …


Image for post
Image for post

Software build tools are used to automate the creation of executable applications from source code (e.g. .apk for an Android app). Basically build automation is the act of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities like:

They can be triggered through the command line, inside an IDE, or by continuous integration tools after checking the code out of a repository and onto a build machine. Different build systems exist for different languages. Usually, build systems use either a domain-specific language or XML to specify a build. …


Image for post
Image for post

If you’re an android developer or work multi-OS without dual boot, you have heard emulator. If you are IOs developer you have heard simulators.

But what is an emulator and what is a simulator?

Simulators and emulators are similar in many ways, and also have differences between them. If you want to make the very most of each type of software testing tool, it’s important to understand what makes simulators different from emulators, and why you’d choose to use one or the other. Fist of all we should have a clear idea about emulation and simulation.

⭕ Emulation refers to the ability of a computer program in an electronic device to emulate (or imitate) another program or device.
⭕ A simulation is an approximate imitation of the operation of a process or system; that represents its operation over time. Simulation is used in many contexts, such as simulation of technology for performance tuning or optimizing, safety engineering, testing, training, education, Andrew video games. — https://en.wikipedia.org/wiki/Simulation


Image for post
Image for post

AndroidX is the open-source project that the Android team uses to develop, test, package, version and release libraries within Jetpack.

AndroidX is a major improvement to the original Android Support Library, which is no longer maintained. androidx packages fully replace the Support Library by providing feature parity and new libraries.

AndroidX includes the following features:


dp or dip (just use dp in your code if you’re cool) stands for density-independent pixels. A virtual pixel unit that you should use when defining UI layout, (define dimensions of shapes), to express layout dimensions or position in a density-independent way. The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a “medium” density screen. At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use. Android translates this value to the appropriate number of real pixels for each other density. …


Image for post
Image for post

Different programming languages prefer different naming conventions and different letter case styles. In computer programming, a naming convention is a set of rules for choosing the character sequence to be used for identifiers which denote variables, types, functions, and other entities in source code and documentation.

Reasons for using a naming convention

⭕ To reduce the effort needed to read and understand source code.
⭕ To enable code reviews to focus on more important issues than arguing over syntax and naming standards.
⭕ To enable code quality review tools to focus their reporting mainly on significant issues other than syntax and style preferences.

Why removing spaces between words?

In programming, we often remove the spaces between words because programs of different sorts reserve the space character for special purposes. Because the space character is reserved, we cannot use it to represent a concept that we express in our human language with multiple words.
If simply say, we can’t use more than single word for a variable name. (space separated). We can use single words and single letters. But its readability and understandability are very low. Compare the following three ways of calculating gross pay in coding.
z = x / y
pay = salary / structure
gross_pay = annual_salary /…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store