1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Подсчитаем баги в калькуляторе Windows

Подсчитаем баги в калькуляторе Windows

На днях компания Microsoft открыла исходный код калькулятора. Это приложение входило во все версии операционной системы Windows. Исходный код разных проектов Microsoft достаточно часто открывался за последние годы, но новость о калькуляторе в первый же день просочилась даже в нетехнологические средства массовой информации. Что ж, это популярная, но очень маленькая программа на языке C++. Тем не менее, статический анализ кода с помощью PVS-Studio выявил подозрительные места в проекте.

Y2K — проблемы тысячелетия

Проблема Y2K ещё известна как «проблема 2000 года». Разработчики ПО в XX веке часто использовали для обозначения года в датах две последние цифры вместо привычных четырёх. Например, 7 апреля 1994 года представлялось как «07.04.94».

Так информация хранилась более эффективно — ведь в то время каждый байт был на счету, а базы данных могли хранить тысячи дат. В таком случае сокращение было разумным решением. Или нет?

1 января 2000 по всему миру начали происходить локальные конфликты и сбои в системах. В некоторых городах даже начало пропадать электричество, отопление, часть вычислительных центров просто зависала. Всё это произошло из-за сокращения формата года. После 1999 года наступил 2000, но для машин этот год воспринимался как 1900 (у некоторых даже как 19100). Такая ошибка послужила причиной зависаний во многих системах.

Электронное табло, неправильно отображающее год

Однако никакой масштабной мировой катастрофы не произошло благодаря тому, что разработчики начали задумываться об этой проблеме заранее. По некоторым оценкам, на подготовку к 2000 году общие мировые затраты составили 300 млрд. долларов.

Пробую на калькуляторе онлайн вычислить простой пример 2+2×2, в ответе получаю 8. Может быть калькулятор неправильно считает ?

Калькулятор считает правильно !

Просто при вводе каждого математического действия калькулятор производит промежуточный расчет (подытог). Посмотрите на дисплее текущих действий.

Считаем: 2 + 2 = 4, 4 × 2 = 8. Правильный ответ 8.

Получить в ответе 6 можно используя Математический режим калькулятора. Этот режим поддерживает работу с выражениями и не делает подытог. Настройте математический режим, используя меню под корпусом калькулятора.

Баг калькулятора Windows 7

Вопрос

Не правильно выполняется преобразование бинарной величины в десятичную в калькуляторе программиста Windows 7, Windows 8, MServer 2008R2. В Windows XP, MServer 2003R2 все работает прекрасно. Хотелось-бы, чтобы разработчики исправили баг в следующих обновлениях.

Ответы

Это представление в двоичной системе счисления чисел со знаком, для знака используется старший бит, не важно чего — байта, слова, двойного слова, если все биты будут равны 1 то результат всегда -1. Таким образом, для примера, байт может принимать значения от

  • Помечено в качестве ответа Ocela 19 марта 2013 г. 18:08

во-первых, причем тут серверные системы?
во-вторых, это не баг, это фича, читаем матчасть http://en.wikipedia.org/wiki/Two’s_complement , если хочешь получить 255 то можно переключить в word (2 байта)
в-третьих, это вроде форум, а не баг репортинг )

  • Помечено в качестве ответа Ocela 19 марта 2013 г. 16:37

Все ответы

во-первых, причем тут серверные системы?
во-вторых, это не баг, это фича, читаем матчасть http://en.wikipedia.org/wiki/Two’s_complement , если хочешь получить 255 то можно переключить в word (2 байта)
в-третьих, это вроде форум, а не баг репортинг )

  • Помечено в качестве ответа Ocela 19 марта 2013 г. 16:37

По первому ответу — по тому, что этот глюк происходит и в серверной среде
По второму — хорошая фича, а кому она нужна? В шестнадцатиричной все прекрасно работает и в восьмеричной, но надо было выпендриться с десятичной системой счисления. Все не как у людей. Лишний головняк, зато красиво звучит — фича! В XP калькулятор лучше, а тут проверяй, вдруг фича сработала 🙁

С третьим ответом я согласен, но меня сюда переправила телефонная служба поддержки Майкрософт, типа если на форуме согласятся с багом, то передадут заявку далее.

А вообще, конечно спасибо за быстрый и конкретный ответ.

ли проверить работу программы «Microsoft Калькулятор» полностью?

#1 junior QA

  • Members
  • 1 сообщений
    • ФИО: Кшт ТГО ЛЛЛ
    • Наверх

    #2 Freiman

  • Members
  • 1 567 сообщений
    • ФИО: Андрей Адеркин
    • Город: Йошкар-Ола

    Устраиваюсь на работу, выслали тестовое задание с вопросом: «Как вы считаете, можно ли проверить работу программы «Microsoft Калькулятор» полностью, и почему?». Если кто знает ответ, просьба написать, т.к. в голову ничего не приходит и опыта в тестировании нет.

    • Наверх

    #3 Atanvarno

  • Members
  • 27 сообщений
    • ФИО: Alexander Shestov

    Сразу скажу, что как и ТС, не обладаю опытом в тестировании.
    Однако попытаюсь порассуждать, опираясь только на свои теоретические познания и здравый смысл.
    Было бы приятно, если бы опытные люди указали на нестыковки в моих рассуждениях.

    Есть у моей мамы, учительницы английского языка, ученица.
    Регулярно она задает ей такой вопрос: «Скажите, а как мне выучить весь английский язык».
    Когда мама мне о ней рассказала, я, давясь от смеха, посоветовал ей велеть этой одаренной девочке учить по сто слов из словаря в день. И может быть тогда. она всё равно останется просто недалекой девочкой, которая выучила много слов.

    Читать еще:  Свёрнутое окно программы долго разворачиваетс?

    Это к тому, что «полностью» для каждого пользователя калькулятора будет свое.
    Но естественно, в первую очередь нужно протестировать
    — простейшие арифметические операции
    — тригонометрию
    — корни и степени
    — деление на ноль
    — наибольшее и наименьшее значение, с которым калькулятор может работать.

    Далее, у калькулятора windows есть несколько режимов работы. И похоже, что для этого либо придётся самому разбираться в каждом, либо привлекать сторонних специалистов-«консультантов».

    Естественно, наверное стоит протестировать и системные требования, пользовательский интерфейс. Просто пустить кота гулять по клавиатуре и посмотреть, как будет реагировать программа. Запустить сразу несколько сотен/тысяч экземпляров программы, и посмотреть, что станет с ней/ОС.

    В общем, надо убедиться, что калькулятор соответствует спецификациям, которые были написаны до его разработки (а у нас они есть?)
    И что результаты вычисления калькулятора такие же, как ожидаемые (полученные с какого-то сферического калькулятора в вакууме)- ведь это основное его назначение.
    Короче, убедиться, что калькулятор нормально отрабатывает для каждой «группы пользователей» для стандартных задач, решаемых этими пользователями.
    После этого мы должны постараться выпустить калькулятор в свет, но всё-таки, не советовать физикам-ядерщикам и конструкторам атомных реакторов использовать калькулятор для работы.

    P.P.S. http://software-test. um/topic/16682/

    • Наверх

    #4 Freiman

  • Members
  • 1 567 сообщений
    • ФИО: Андрей Адеркин
    • Город: Йошкар-Ола

    Для Microsoft перевод ПК на базе сборок 1809 и 1903 до версии 2004 не будет первым опытом по принудительному апдейту компьютеров пользователей. Подобный способ она применяла в середине 2019 г., заставив пользователей версий 1709 и 1803 обновить Windows 10 до 1903.

    В целом, принудительное обновление Microsoft использует практически с момента появления первой стабильной версии Windows 10 в конце июля 2015 г. Как сообщал CNews, в октябре 2015 г. пользователи Windows 7 и 8 стали массово жаловаться на несанкционированное обновление до Windows 10. По их словам, установка операционной системы началась самопроизвольно, при этом они ничего не делали для этого специально.

    Microsoft не только без спроса загружала на компьютеры пользователей установочные файлы Windows 10, но и без разрешения исполняла их, запуская, таким образом, процесс обновления до Windows 10. Так происходило потому, что в центре обновления Windows запуск загруженных установочных файлов этой ОС выбран по умолчанию.

    Вследствие этого, соглашаясь с обновлением текущей версии Windows 7 или 8 (например, с установкой патчей для устранения уязвимостей), пользователь непреднамеренно соглашался и с обновлением до Windows 10, так как он не был в курсе о том, что в разделе опциональных обновлений этот пункт выбран по умолчанию.

    Позже Microsoft призналась, что ее сотрудники допустили ошибку, настроив запуск установочных файлов Windows 10 по умолчанию.

    Документирование ошибок

    Отчет об ошибке (Bug Report) — это документ, описывающий ситуацию или последовательность действий, приведшую к некорректной работе объекта тестирования, с указанием причин и ожидаемого результата.

    «Следующий этап заключается в документировании ошибок», — могли бы подумать вы, но оказались бы неправы.

    Нельзя просто взять и задокументировать найденный дефект. Прежде всего, важно выполнить локализацию.

    Например, если дефект может затрагивать другие части системы, то это обязательно нужно отобразить в баг-репорте, предварительно проверив эту гипотезу. Также необходимо очень подробно описать все условия и шаги, чтобы разработчик смог этот баг проверить и в него поверить .
    Как же искать ошибки в системе таким образом, чтобы разработчикам было предельно понятно, откуда эти дефекты взялись и как их исправлять? Следует придерживаться определенного плана действий, который мы опишем далее.

    Перепроверка дефекта

    Нужно проверить себя еще раз: воспроизвести баг снова при тех же условиях. Если ошибка не повторилась при очередном тестировании, то нужно разобраться, точно ли были соблюдены все действия и шаги воспроизведения, приведшие к этому результату. Возможно, дефект появляется только при первоначальной загрузке системы (при первом использовании). Для того, чтобы более точно определить условия воспроизведения ошибки, необходимо эту ошибку локализовать.

    Локализация дефекта

    Чтобы локализовать баг, необходимо собрать максимальное количество информации о его воспроизведении:

    • Выявить причины возникновения дефекта

    Например, не проходит восстановление пароля. Необходимо выявить, откуда приходит запрос на сервер в неверном формате — от backend либо frontend.

    • Проанализировать возможность влияния найденного дефекта на другие области

    Например, в одной из форм, которую редко используют, возникает ошибка при нажатии на кнопку «Редактировать». Если в качестве временного варианта решения проблемы скрыть кнопку, это может повлиять на аналогичную форму в другом окне/вкладке, к которой пользователи обращаются чаще. Для качественного анализа необходимо знать, как работает приложение и какие зависимости могут быть между его частями.

    • Отклонение от ожидаемого результата

    Нужно проверить, соответствует ли результат тестирования ожидаемому результату. Справиться с этой задачей помогает техническое задание (в частности, требования к продукту), где должна быть задокументирована информация о тестируемом ПО и его функционировании. Пропускать этот шаг при тестировании не следует: если специалист недостаточно опытен, не зная требований, он может ошибаться и неправильно понимать, что относится к багам, а что нет. Внимательное изучение документации позволяет избежать таких ошибок.

    • Исследовать окружение

    Необходимо воспроизвести баг в разных операционных системах (iOS, Android, Windows и т.д.) и браузерах (Google Chrome, Mozilla, Internet Explorer и др.). При этом нужно проверить требования к продукту, чтобы выяснить, какие системы должны поддерживаться. Некоторые приложения работают только в определенных ОС или браузерах, поэтому проверять другие варианты не нужно.

    • Проверить на разных устройствах
    Читать еще:  Сжатие в Windows: что нужно знать, и как избежать ошибок сжати?

    Например, desktop-приложение предназначено для использования на компьютерах, поэтому зачастую нет необходимости тестировать его на мобильных устройствах. Для смартфонов в идеале должна быть разработана отдельная мобильная версия, которую, в свою очередь, нет смысла тестировать на компьютерах. Кроме того, есть web-приложения, которые могут работать и на компьютерах, и на мобильных устройствах, а тестировать их нужно на всех типах устройств. Для тестирования можно использовать эмулятор той или иной среды, но в рамках статьи мы не будем затрагивать этот вопрос.
    Мобильную версию приложения нужно тестировать на нескольких устройствах с разной диагональю экрана. При этом можно руководствоваться требованиями к ПО, в которых должно быть указано, с какими устройствами это ПО совместимо.

    • Проверить в разных версиях ПО

    Для того, чтобы не запутаться в реализованных задачах, в разработке используют версионность ПО. Иногда тот или иной баг воспроизводится в одной версии продукта, но не воспроизводится в другой. Этот атрибут обязательно необходимо указывать в баг-репорте, чтобы программист понимал, в какой ветке нужно искать проблему.

    • Проанализировать ресурсы системы

    Возможно, дефект был найден при нехватке внутренней или оперативной памяти устройства. В таком случае баг может воспроизводиться на идентичных устройствах по-разному.
    Для того, чтобы оптимизировать сроки тестирования, мы рекомендуем использовать техники тест-дизайна.

    Фиксирование доказательств

    Доказательства воспроизведения бага нужно фиксировать при помощи логов, скринов или записи экрана.

    • Логи (лог-файлы или журнал) — это файлы, содержащие системную информацию работы сервера или компьютера, в них хранят информацию об определенных действиях пользователя или программы. Опытному разработчику бывает достаточно посмотреть в логи, чтобы понять, в чем заключается ошибка. Обычно логи прикрепляют к баг-репорту в виде .txt-файла.

    Live-логирование – это снятие системных логов в режиме реального времени. Для этого можно использовать следующие программы: Fiddler, Visual Studio для Windows, iTools, Xcode для iOS, Android Debug Monitor, Android Studio для Android и др.

    • Скрин (снимок) экрана. При ошибках в интерфейсе снимок помогает быстрее разобраться в проблеме. Программ для снятия скриншотов очень много, каждый QA-специалист может использовать те, которые ему наиболее удобны: Jing, ShareX, Lightshot и др.
    • Скринкаст (англ. screen – экран, broadcasting – трансляция) – это запись видеоизображения с экрана компьютера или другого цифрового устройства. Это один из самых эффективных способов поделиться тем, что происходит на экране монитора. Таким способом QA-специалисту легко наглядно показать ошибки в работе любого программного продукта. Сделать запись с экрана помогут незаменимые инструменты любого QA-специалиста: Snagit, Monosnap, Movavi Screen Capture, Jing, Reflector, ADB Shell Screenrecord, AZ Screen Recorder и др.
    • Рекордер действий. Программные средства дают возможность воспроизвести все записанные движения мышки и действия, производимые на клавиатуре компьютера. Примеры программ – Advanced Key and Mouse Recorder для desktop-платформ.

    Оформление баг-репорта

    Все найденные дефекты обязательно нужно документировать, чтобы каждый задействованный на проекте специалист мог получить инструкции по воспроизведению обнаруженного дефекта и понять, насколько это критично. Если в команде принято устно передавать разработчику информацию о найденных дефектах, есть риск упустить что-то из вида.

    Дефект, который не задокументирован – не найден!

    Когда вся необходимая информация собрана, а баг локализован, можно приступать к оформлению баг-репорта в таск-трекере. Чем точнее описание бага, тем меньше времени нужно для его исправления. Список атрибутов для каждого проекта индивидуален, но некоторые из них – например, шаги воспроизведения, ожидаемый результат, фактический результат – присутствуют практически всегда.

    Атрибуты баг-репорта:

    • Название

    Баг должен быть описан кратко и ёмко, иметь понятное название. Это поможет разработчику разобраться в сути ошибки и в том, может ли он взять этот случай в работу, если занимается соответствующим разделом системы. Также это позволяет упростить подключение новых специалистов на проект, особенно если разработка ведется много лет подряд, а запоминать баги и отслеживать их в таск-трекере становится все сложнее. Название проекта можно составлять по принципу «Где? Что? Когда?» или «Что? Где? Когда?», в зависимости от внутренних правил команды.
    Например:
    Где происходит? — В карточке клиента (в каком разделе системы).
    Что именно происходит? — Не сохраняются данные.
    Когда происходит? — При сохранении изменений.

    • Проект (название проекта)
    • Компонент приложения

    В какой части функциональности тестируемого продукта найден баг.

    • Номер версии

    Версия продукта, ветка разработки, в которой воспроизводится ошибка.

    • Критичность

    Этот атрибут показывает влияние дефекта на функциональность системы, например:
    · Blocker — дефект, блокирующий использование системы.
    · Critical — ошибка, которая нарушает основную бизнес-логику работы системы.
    · Major — ошибка, которая нарушает работу определенной функции, но не всей системы.
    · Minor — незначительная ошибка, не нарушающая бизнес-логику приложения, например, ошибка пользовательского интерфейса.
    · Trivial — малозаметная, неочевидная ошибка. Это может быть опечатка, неправильная иконка и т.п.

    • Приоритет

    Приоритет определяет, насколько срочно нужно исправить ошибку. Обычно выделяют следующие виды приоритетов:

    • High — ошибка должна быть исправлена как можно скорее, является критичной для проекта.
    • Medium — ошибка должна быть исправлена, но её наличие не является критичным для проекта.
    • Low — ошибка должна быть исправлена, но не требует срочного решения.

    Статус указывает стадию жизненного цикла бага, взят он в работу или уже решен. Примеры: to do, in progress, in testing (on QA), done. В зависимости от особенностей проекта возможны дополнительные статусы (например, аналитика).

    • Автор баг-репорта
    • На кого назначен
    Читать еще:  ТОП-15 Программ для Очистки Компьютера от Мусора

    Баг-репорт отправляют тимлиду проекта или разработчику, который будет заниматься исправлением дефекта, в зависимости от принятых в команде договоренностей.

    Где найден баг: операционная система, наименование и версия браузера.

    • Предусловие (если необходимо)

    Необходимо для описания действий, которые предшествовали воспроизведению бага. Например, клиент авторизован в системе, создана заявка с параметрами ABC и т.д. Баг-репорт может не содержать предусловие, но иногда оно бывает необходимо для того, чтобы проще описать шаги воспроизведения.

    • Шаги воспроизведения

    Один из самых важных атрибутов — описание шагов, которые привели к нахождению бага. Оптимально использовать 5-7 понятных и кратких шагов для описания бага, например:
    1. Открыть (. )
    2. Кликнуть (…)
    3. Ввести в поле А значение N1
    4. Ввести в поле B значение N2
    5. Кликнуть кнопку «Calculate»

    • Фактический результат

    Что произошло после воспроизведения указанных выше шагов.

    • Ожидаемый результат

    Что должно произойти после воспроизведения шагов тестирования, согласно требованиям.

    • Прикрепленный файл

    Логи, скриншоты, видеозапись экрана — всё, что поможет разработчику понять суть ошибки и исправить ее.
    После составления баг-репорта обязательно нужно проверить его, чтобы избежать ошибок или опечаток.

    Локализация и оформление багов — необходимые составляющие работы QA-специалиста с программным продуктом. Приглашаем подробнее ознакомиться с услугами тестирования и обеспечения качества в SimbirSoft.

    Баг «починят» в виде исключения, но позже

    Есть одна хорошая новость: как стало известно из официальных источников, Microsoft официально заявил, что эта ошибка будет исправлена, и не только у клиентов с расширенной поддержкой.

    Компания Microsoft изменила мнение и обновление, для исправления ошибки черных обоев появится для всех пользователей Windows 7. Как обычно, фикс прибудет в Центр обновлений Windows, как только он будет готов.

    Surface Pro

    На прошлой неделе Microsoft выпустила новый превью-билд Windows 10 для инсайдеров. Версия под номером 19546 включает в себя стандартные исправления багов и улучшения производительности. Что делает этот релиз особенным, так это обновление калькулятора — появился режим графиков.

    В новом режиме построения графиков доступна куда более продвинутая функциональность, чем раньше — теперь можно добавлять в график более одного уравнения, добавлять уравнения с переменными и анализировать их, наводя курсор на точки графика.

    Ниже мы приводим полный список обновлений и улучшений в версии 19546.

    Что нового?

    Представляем режим графиков в калькуляторе Windows: с сегодняшнего дня инсайдерам будет доступно обновление калькулятора — мы добавили превью режима построения графиков. О такой функции в Feedback Hub нас просили чаще всего, и мы рады наконец представить ее нашим пользователям. Возможность построения графиков в первую очередь пригодится учащимся, которые только начинают свое знакомство с линейной алгеброй. Благодаря новой функции они смогут пользоваться более наглядными средствами при обучении математике.

    Представляем приложение Indexer Diagnostics: сейчас оно уже доступно в Microsoft Store в бета-версии. Это приложение создано для более полного понимания возможностей поиска, также оно позволит улучшить возможности устранения неисправностей и техподдержки поиска Windows. Этот инструмент будет разрабатываться и дальше, позже мы добавим больше функций. От вас мы, как всегда, с нетерпением ждем отзывов! Программа доступна для версии Windows 10 1809 и выше.

    Общие обновления и улучшения для ПК:

    • Мы устранили неисправность, из-за которой Временная шкала не отображала активность.
    • Мы устранили неисправность, из-за которой у некоторых не работал поиск в Outlook.
    • Мы устранили неисправность, которая значительно понизила надежность Просмотра задач.
    • Мы устранили неисправность с отключением пространственного звука, из-за которого зависал Explorer.exe.

    Обнаруженные неисправности:

    • Была обнаружена несовместимость некоторых версий программного обеспечения для защиты игр от взломов BattlEye и определенных инсайдерских версий Microsoft из-за изменений в операционной системе. Для инсайдеров, у которых установлены конкретные версии BattlEye, мы добавили защиту совместимости — затронутые версии Windows Insider Preview не будут предлагаться им для установки.
    • Нам стало известно, что пользователи Narrator и NVDA, установившие последнюю версию Microsoft Edge на базе Chromium, столкнулись с проблемами с навигацией и отображением определенного веб-контента. Разработчики Narrator, NVDA и Edge в курсе данных неисправностей. Пользователей старой версии Microsoft Edge проблема не коснется.
    • В данной версии Windows восстановление из облака при возврате компьютера в исходное состояние не работает — воспользуйтесь опцией локальной переустановки при сбросе настроек.
    • Мы находимся в процессе ознакомления с отчетами о замедленной установке новой версии Windows.
    • Мы разбираем отчеты о проблеме с установкой обновления у некоторых инсайдеров; номер ошибки — 0x8007042b.
    • Мы ознакомляемся с отчетами о невозможности запуска некоторых носителей USB 3.0, код 10.
    • В приложении Оптимизация дисков на некоторых устройствах высвечивается неверное уведомление о том, что оптимизация проведена не была — это лишь ошибка в интерфейсе, оптимизация проходит успешно.
    • Раздел Документов в настройках Конфиденциальности отображается некорректной иконкой — просто прямоугольником.
    • Работа удаленного подключения к рабочему столу прекращается при попытке подключения нескольких сессий.
    • Ножницы не работают на дополнительных мониторах.
    • Редактор метода ввода для восточно-азиатских методов ввода — упрощенного китайского, традиционного китайского и японского — может не открываться. Мы работаем с отчетами. Если вы с этим столкнетесь, переключитесь на поле ввода в любом другом приложении, а затем обратно, и попробуйте снова. Также вы можете завершить работу TextInputHost.exe в Диспетчере задач в разделе Подробности. После этого работа должна возобновляться успешно.Если вы входите в круг инсайдеров Windows, вы можете скачать версию 19546 уже сейчас через центр обновлений Windows.

    Добавить комментарий Отменить ответ

    Для отправки комментария вам необходимо авторизоваться.

    Ссылка на основную публикацию
    Статьи c упоминанием слов:

    Adblock
    detector